ALIYUN::EDAS::K8sApplication is used to create an application in a Kubernetes cluster.

Syntax

{
  "Type": "ALIYUN::EDAS::K8sApplication",
  "Properties": {
    "LogicalRegionId": String,
    "NasId": String,
    "Liveness": Map,
    "IntranetSlbId": String,
    "WebContainer": String,
    "LimitCpu": Integer,
    "SlsConfigs": List,
    "IntranetSlbProtocol": String,
    "PackageVersion": String,
    "WebContainerConfig": Map,
    "AppName": String,
    "JDK": String,
    "InternetSlbId": String,
    "PreStop": Map,
    "Readiness": Map,
    "InternetSlbPort": Integer,
    "DeployAcrossNodes": Boolean,
    "RequestsMem": Integer,
    "PackageType": String,
    "UseBodyEncoding": Boolean,
    "JavaStartUpConfig": Map,
    "IsMultilingualApp": Boolean,
    "RequestsCpu": Integer,
    "CommandArgs": List,
    "StorageType": String,
    "ClusterId": String,
    "Timeout": Integer,
    "Envs": List,
    "ImageUrl": String,
    "DeployAcrossZones": Boolean,
    "PostStart": Map,
    "InternetTargetPort": Integer,
    "Replicas": Integer,
    "Namespace": String,
    "ApplicationDescription": String,
    "UriEncoding": String,
    "IntranetTargetPort": Integer,
    "MountDescs": List,
    "LocalVolume": List,
    "RuntimeClassName": String,
    "Command": String,
    "InternetSlbProtocol": String,
    "EdasContainerVersion": String,
    "PackageUrl": String,
    "IntranetSlbPort": Integer,
    "RepoId": String,
    "EnableAhas": Boolean,
    "LimitMem": Integer
  }
}

Properties

Property Type Required Editable Description Constraint
LogicalRegionId String No No The ID of the Enterprise Distributed Application Service (EDAS) namespace. You must set this property for non-default namespaces.
NasId String No No The ID of the Apsara File Storage NAS file system that is mounted to the container in which the application is running. The NAS file system must be in the same region as the cluster. The NAS file system must have an available mount target, or have a mount target on the vSwitch in the virtual private cloud (VPC) in which the application is located.

If you do not set this property but you set the MountDescs property, a NAS file system is automatically purchased and mounted to the vSwitch in the VPC.

Liveness Map No No The script that is used to check whether the container is alive. Set the property in the {"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} format.

If you set this property to "" or {}, the configurations are deleted. If you leave this property empty, the property is ignored.

For more information, see Liveness properties.

IntranetSlbId String No No The ID of the internal-facing Server Load Balancer (SLB) instance. If you do not set this property, EDAS purchases a new SLB instance for you.
WebContainer String No No The version of the Tomcat container on which the deployment package of the application depends. This property is supported for Spring Cloud and Apache Dubbo applications that are deployed by using WAR packages. This property is not supported if you use an image to deploy the application.
LimitCpu Integer No No The maximum number of vCPUs allowed for each application instance when the application is running. None
SlsConfigs List No No The Logstore configurations. If you set this property to "" or "{}", the configurations are deleted.

For more information, see SlsConfigs properties.

IntranetSlbProtocol String No No The protocol of the internal-facing SLB instance. Valid values:
  • TCP
  • HTTP
  • HTTPS
PackageVersion String No No The version of the deployment package. You must set this property if the PackageType property is set to War or FatJar.

The version of EDAS POP API SDK for Java or Python must be 2.44.0 or later.

WebContainerConfig Map No No The Tomcat container configurations. If you set this property to "" or "{}", the configurations are deleted.

For more information, see WebContainerConfig properties.

AppName String Yes No The name of the application. The name can be up to 36 characters in length and can contain digits, letters, and hyphens (-). The name must start with a letter.
JDK String No No The version of the Java development kit (JDK) on which the deployment package of the application depends. Valid values:
  • Open JDK 7
  • Open JDK 8

This property is not supported if you use an image to deploy the application.

InternetSlbId String No No The ID of the Internet-facing SLB instance. If you do not set this property, EDAS purchases a new SLB instance for you.
PreStop Map No No The pre-stop script. Set the property in the {"tcpSocket":{"host":"", "port":8080}} format.

If you set this property to "" or {}, the configurations are deleted. If you leave this property empty, the property is ignored.

For more information, see PreStop properties.

Readiness Map No No The script that is used to check the service status of the container for the application. For more information, see Readiness properties.
InternetSlbPort Integer No No The frontend port of the Internet-facing SLB instance. Valid values: 1 to 65535.
DeployAcrossNodes Boolean No No Specifies whether to distribute application instances to multiple nodes. Valid values:
  • true
  • false
RequestsMem Integer No No The maximum size of memory allowed for each application instance when the application is created. Unit: MB.

0 specifies that there is no upper limit on memory size.

PackageType String No No The type of the application deployment package. Valid values:
  • FatJar
  • WAR
  • Image
UseBodyEncoding Boolean No No Specifies whether to use encoding configured for the request body when the URL is decoded. Default value: false. Valid values:
  • true
  • false
JavaStartUpConfig Map No No The configurations of startup parameters for a Java application. If you set this property to "" or "{}", the configurations are deleted.

For more information, see JavaStartUpConfig properties.

IsMultilingualApp Boolean No No Specifies whether the application is a multi-language application. Default value: false. Valid values:
  • true
  • false
RequestsCpu Integer No No The maximum number of vCPUs allowed for each application instance when the application is created. None

0 specifies that there is no upper limit on the number of vCPUs.

CommandArgs List No No The collection of command arguments. An example of the value is [{“ argument”:“-c”}, {“ argument”:“ test”}]], in which -c and test are two arguments that can be specified.

For more information, see CommandArgs properties.

StorageType String No No The type of the storage. Set the value to SSD.
ClusterId String Yes No The ID of the cluster. You can call the ListCluster API operation to query the ID of the cluster.
Timeout Integer No No The timeout interval of the change process. Unit: seconds.
Envs List No No The collection of deployment environment variables. Set the property in the [{"Name":"x","Value":"y"},{"Name":"x2","Value":"y2"}] format.

For more information, see Envs properties.

ImageUrl String No No The URL of the image. You must set this property if the PackageType property is set to Image.
DeployAcrossZones Boolean No No Specifies whether to distribute application instances across zones. Valid values:
  • true
  • false
PostStart Map No No The post-start script. Set the property in the {"Exec": {"Command": ["ls", "/"]}} format.

If you set this property to "" or {}, the configurations are deleted. If you leave this property empty, the property is ignored.

For more information, see PostStart properties.

InternetTargetPort Integer No No The backend port of the Internet-facing SLB instance, which is also the service port of the application. Valid values: 1 to 65535.
Replicas Integer No No The number of application instances. Default value: 1.

Namespace String No No The namespace of the Kubernetes cluster in which the application is deployed. Default value: default.
ApplicationDescription String No Yes The description of the application. None
UriEncoding String No No The Uniform Resource Identifier (URI) encoding scheme. Valid values:
  • ISO-8859-1
  • GBK
  • GB2312
  • UTF-8
Note If you do not set this property in the application configurations, the default URI encoding scheme in the Tomcat container is applied.
IntranetTargetPort Integer No No The backend port of the internal-facing SLB instance, which is also the service port of the application. Valid values: 1 to 65535.
MountDescs List No No The description of the NAS mounting configurations. Set the property in the [{"NasPath": "/k8s","MountPath": "/mnt"}, {"NasPath": "/files", "MountPath": "/app/files"}] format. The NasPath property specifies the file storage path, and the MountPath property specifies the path to mount the file system to the container on which the application is running.

For more information, see MountDescs properties.

LocalVolume List No No The configurations that are used when the host files are mounted to the container on which the application is running. Set the property in the [{"type":"", "nodePath":"/localfiles", "mountPath":"/app/files"}, {"type":"Directory", "nodePath":"/mnt", "mountPath":"/app/storage"}] format. The nodePath property specifies the host path, the mountPath property specifies the path in the container, and the type property specifies the file system type to be mounted.

For more information, see LocalVolume properties.

RuntimeClassName String No No The type of the container runtime. This property is applicable only to clusters that run sandboxed containers.
Command String No No The command that you want to run. If you set this property, this property replaces the startup command in the image when the image is started.
InternetSlbProtocol String No No The protocol of the Internet-facing SLB instance. Valid values:
  • TCP
  • HTTP
  • HTTPS
EdasContainerVersion String No No The version of the EDAS container on which the deployment package of the application depends. This property is not supported if you use an image to deploy the application.
PackageUrl String No No The URL of the deployment package. This property is required if you use a FatJar or WAR package to deploy the application.
Note The version of SDK for Java or Python must be 2.44.0 or later.
IntranetSlbPort Integer No No The frontend port of the internal-facing SLB instance. Valid values: 1 to 65535.
RepoId String No No The ID of the image repository. None
EnableAhas Boolean No No Specifies whether to enable access to Application High Availability Service (AHAS). Default value: false. Valid values:
  • true
  • false
LimitMem Integer No No The maximum size of memory allowed for each application instance when the application is running. Unit: MB.

Liveness syntax

"Liveness": {
  "TimeoutSeconds": Integer,
  "Exec": Map,
  "InitialDelaySeconds": Integer,
  "HttpGet": Map,
  "PeriodSeconds": Integer,
  "TcpSocket": Map,
  "FailureThreshold": Integer,
  "SuccessThreshold": Integer
}

Liveness properties

Property Type Required Editable Description Constraint
TimeoutSeconds Integer No No The timeout period of probes. Minimum value: 1.

Unit: seconds.

Exec Map No No The commands that are run by exec probes. For more information, see Exec properties.
InitialDelaySeconds Integer No No The period between when the container is started and when the system performs the first probe. Minimum value: 1.

Unit: seconds.

HttpGet Map No No The HTTP GET methods. For more information, see HttpGet properties.
PeriodSeconds Integer No No The time interval between two consecutive probes. Minimum value: 1.

Unit: seconds.

TcpSocket Map No No The ports to which the system sends TCP socket requests for health checks. For more information, see TcpSocket properties.
FailureThreshold Integer No No The number of consecutive failed health checks that must occur before a port is declared unhealthy. Minimum value: 1.
SuccessThreshold Integer No No The number of consecutive successful health checks that must occur before a port is declared healthy. Minimum value: 1.

Exec syntax

"Exec": {
  "Command": List
}

Exec properties

Property Type Required Editable Description Constraint
Command List No No The commands that are run by exec probes. None

HttpGet syntax

"HttpGet": {
  "Path": String,
  "HttpHeaders": List,
  "Scheme": String,
  "Port": String,
  "Host": String
}

HttpGet properties

Property Type Required Editable Description Constraint
Path String No No The path. None
HttpHeaders List No No The HTTP request headers. Set the property in the [{"name": "test","value": "testvalue"}] format.

For more information, see HttpHeaders properties.

Scheme String No No The scheme. Set the property in the {'AllowedValues': ['HTTP', 'HTTPS']} format.
Port String No No The port. None
Host String No No The host. None

HttpHeaders syntax

"HttpHeaders": [
  {
    "Value": String,
    "Name": String
  }
]

HttpHeaders properties

Property Type Required Editable Description Constraint
Value String No No The value. None
Name String No No The name. None

TcpSocket syntax

"TcpSocket": {
  "Port": String,
  "Host": String
}

TcpSocket properties

Property Type Required Editable Description Constraint
Port String No No The port. None
Host String No No The host. None

SlsConfigs syntax

"SlsConfigs": [
  {
    "Type": String,
    "LogDir": String,
    "Logstore": String
  }
]

SlsConfigs properties

Property Type Required Editable Description Constraint
Type String No No The type of data to be collected. Valid values:
  • file: the file type
  • stdout: the standard output type
LogDir String No No The collection path. The collection path can contain ^/(.+)/(.*)^/$. If you set the Type property to stdout, the collection path is stdout.log. If you set the Type property to file, the collection path is the path to the collected file.
Logstore String No No The name of the Logstore. Make sure that the name of the Logstore is unique in the cluster.

The name must be 3 to 63 characters in length and can contain lowercase letters, digits, hyphens (-), and underscores (_). The name must start and end with a lowercase letter or digit.

Note If you do not set this property, the system generates a Logstore name.

WebContainerConfig syntax

"WebContainerConfig": {
  "HttpPort": Integer,
  "UriEncoding": String,
  "ContextPath": String,
  "ContextInputType": String,
  "UseBodyEncoding": Boolean,
  "ServerXml": String,
  "MaxThreads": Integer,
  "UseAdvancedServerXml": Boolean,
  "UseDefaultConfig": Boolean
}

WebContainerConfig properties

Property Type Required Editable Description Constraint
HttpPort Integer No No The HTTP port. Valid values: 1024 to 65535.

Default value: 8080.

Note The root permissions are required to perform operations on a port whose number is less than 1024.
UriEncoding String No No The encoding format for Tomcat. Default value: ISO-8859-1. Valid values:
  • UTF-8
  • ISO-8859-1
  • GBK
  • GB2312
ContextPath String No No The custom path. You must set this property if the ContextInputType property is set to custom.
ContextInputType String No No The access path of the application. Valid values:
  • war: The access path is the name of the WAR package. You do not need to specify a custom path.
  • root: The access path is /. You do not need to specify a custom path.
  • custom: You need to specify a custom path (ContextPath).
UseBodyEncoding Boolean No No Specifies whether to use encoding configured for the request body when the URL is decoded. Default value: false. Valid values:
  • true
  • false
ServerXml String No No The content of the custom server.xml file in advanced configurations. This property takes effect only if the UseAdvancedServerXml property is set to true.
MaxThreads Integer No No The number of connections in the connection pool. Default value: 400.
Note This property significantly affects application performance. We recommend that you consult with technical support before you set this property.
UseAdvancedServerXml Boolean No No Specifies whether to use advanced configurations to customize the server.xml file. Default value: false. Valid values:
  • true
  • false
If you set the UseAdvancedServerXml property to true, you can modify the server.xml file of Tomcat.
UseDefaultConfig Boolean No No Specifies whether to use the custom configurations. Default value: true. Valid values:
  • true: uses the default configurations instead of the custom configurations.
  • false: uses the custom configurations instead of the default configurations.

PreStop syntax

"PreStop": {
  "Exec": Map,
  "HttpGet": Map
}

PreStop properties

Property Type Required Editable Description Constraint
Exec Map No No The commands that are run by exec probes. None
HttpGet Map No No The HTTP GET methods. None

Readiness syntax

"Readiness": {
  "TimeoutSeconds": Integer,
  "Exec": Map,
  "InitialDelaySeconds": Integer,
  "HttpGet": Map,
  "PeriodSeconds": Integer,
  "TcpSocket": Map,
  "FailureThreshold": Integer,
  "SuccessThreshold": Integer
}

Readiness properties

Property Type Required Editable Description Constraint
TimeoutSeconds Integer No No The timeout. Unit: seconds.

Minimum value: 1.

Exec Map No No The commands that are run by exec probes. None
InitialDelaySeconds Integer No No The initial delay. Unit: seconds.

Minimum value: 1.

HttpGet Map No No The HTTP GET requests. None
PeriodSeconds Integer No No The readiness period. Unit: seconds.

Minimum value: 1.

TcpSocket Map No No The ports to which the system sends TCP socket requests for health checks. None
FailureThreshold Integer No No The failure threshold. Minimum value: 1.
SuccessThreshold Integer No No The success threshold. Minimum value: 1.

JavaStartUpConfig syntax

"JavaStartUpConfig": {
  "MaxHeapSize": Map,
  "UseGCLogFileRotation": Map,
  "CustomParams": Map,
  "ParallelGCThreads": Map,
  "InitialHeapSize": Map,
  "NacosUseEndpointParsingRule": Map,
  "ThreadStackSize": Map,
  "SurvivorRatio": Map,
  "PermSize": Map,
  "NewSize": Map,
  "ConcGCThreads": Map,
  "NewRatio": Map,
  "GCLogFileSize": Map,
  "MaxNewSize": Map,
  "G1HeapRegionSize": Map,
  "PrintGC": Map,
  "MaxDirectMemorySize": Map,
  "MaxPermSize": Map,
  "HeapDumpOnOutOfMemoryError": Map,
  "NacosUseCloudNamespaceParsing": Map,
  "HeapDumpPath": Map,
  "GCLogFilePath": Map,
  "PrintGCDateStamps": Map,
  "YoungGarbageCollector": Map,
  "OldGarbageCollector": Map
}

JavaStartUpConfig properties

Property Type Required Editable Description Constraint
MaxHeapSize Map No No The maximum size of the heap memory. Unit: MB.

Valid values: 0 to (0.85 × Available memory of ECS instances for the application).

For more information, see MaxHeapSize properties.

UseGCLogFileRotation Map No No Specifies whether to rotate Garbage Collection (GC) log files. For more information, see UseGCLogFileRotation properties.
CustomParams Map No No The custom parameters to be used. Separate multiple parameters with spaces.

For more information, see CustomParams properties.

ParallelGCThreads Map No No The threads to be used for parallel GC. For more information, see ParallelGCThreads properties.
InitialHeapSize Map No No The initial heap size. Unit: MB.

0 specifies that there is no limit on the initial heap size.

For more information, see InitialHeapSize properties.

NacosUseEndpointParsingRule Map No No Specifies whether to enable endpoint parsing rules. For more information, see NacosUseEndpointParsingRule properties.
ThreadStackSize Map No No The memory size of the thread stack. Unit: KB.

For more information, see ThreadStackSize properties.

SurvivorRatio Map No No The Eden/Survivor memory ratio. For more information, see SurvivorRatio properties.
PermSize Map No No The initial size of the permanent generation memory. Unit: MB.

For more information, see PermSize properties.

NewSize Map No No The initial size of the new generation heap memory. Unit: MB.

For more information, see NewSize properties.

ConcGCThreads Map No No The threads to be used for concurrent GC. For more information, see ConcGCThreads properties.
NewRatio Map No No The memory ratio between the old and young generations. For more information, see NewRatio properties.
GCLogFileSize Map No No The size of the GC log file. For more information, see GCLogFileSize properties.
MaxNewSize Map No No The maximum size of the new generation heap. Unit: MB.

max_uintx specifies that there is no upper limit on memory size.

For more information, see MaxNewSize properties.

G1HeapRegionSize Map No No The size of the G1 region. For more information, see G1HeapRegionSize properties.
PrintGC Map No No Specifies whether to print summary GC information after each collection. For more information, see PrintGC properties.
MaxDirectMemorySize Map No No The maximum size of the non-blocking I/O (NIO) direct memory. Unit: MB.

For more information, see MaxDirectMemorySize properties.

MaxPermSize Map No No The maximum size of the persistent heap. Unit: MB.

For more information, see MaxPermSize properties.

HeapDumpOnOutOfMemoryError Map No No Specifies whether to dump the heap memory when an out-of-memory error occurs. For more information, see HeapDumpOnOutOfMemoryError properties.
NacosUseCloudNamespaceParsing Map No No Specifies whether to enable automatic namespace parsing. For more information, see NacosUseCloudNamespaceParsing properties.
HeapDumpPath Map No No The paths of heap dump files. For more information, see HeapDumpPath properties.
GCLogFilePath Map No No The paths of GC log files. For more information, see GCLogFilePath properties.
PrintGCDateStamps Map No No Specifies whether to print a date stamp at every GC. For more information, see PrintGCDateStamps properties.
YoungGarbageCollector Map No No The young garbage collector configurations. For more information, see YoungGarbageCollector properties.
OldGarbageCollector Map No No The old garbage collector configurations. You must first configure the young garbage collector.

For more information, see OldGarbageCollector properties.

MaxHeapSize syntax

"MaxHeapSize": {
  "Original": Integer,
  "Startup": String
}

MaxHeapSize properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

UseGCLogFileRotation syntax

"UseGCLogFileRotation": {
  "Original": Boolean,
  "Startup": String
}

UseGCLogFileRotation properties

Property Type Required Editable Description Constraint
Original Boolean No No The parameter value. None
Startup String No No The startup parameter. None

CustomParams syntax

"CustomParams": {
  "Original": String,
  "Startup": String
}

CustomParams properties

Property Type Required Editable Description Constraint
Original String No No The parameter value. None
Startup String No No The startup parameter. None

ParallelGCThreads syntax

"ParallelGCThreads": {
  "Original": Integer,
  "Startup": String
}

ParallelGCThreads properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

InitialHeapSize syntax

"InitialHeapSize": {
  "Original": Integer,
  "Startup": String
}

InitialHeapSize properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

NacosUseEndpointParsingRule syntax

"NacosUseEndpointParsingRule": {
  "Original": Boolean,
  "Startup": String
}

NacosUseEndpointParsingRule properties

Property Type Required Editable Description Constraint
Original Boolean No No The parameter value. None
Startup String No No The startup parameter. None

ThreadStackSize syntax

"ThreadStackSize": {
  "Original": Integer,
  "Startup": String
}

ThreadStackSize properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

SurvivorRatio syntax

"SurvivorRatio": {
  "Original": Integer,
  "Startup": String
}

SurvivorRatio properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

PermSize syntax

"PermSize": {
  "Original": Integer,
  "Startup": String
}

PermSize properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

NewSize syntax

"NewSize": {
  "Original": Integer,
  "Startup": String
}

NewSize properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

ConcGCThreads syntax

"ConcGCThreads": {
  "Original": Integer,
  "Startup": String
}

ConcGCThreads properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

NewRatio syntax

"NewRatio": {
  "Original": Integer,
  "Startup": String
}

NewRatio properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

GCLogFileSize syntax

"GCLogFileSize": {
  "Original": Integer,
  "Startup": String
}

GCLogFileSize properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

MaxNewSize syntax

"MaxNewSize": {
  "Original": Integer,
  "Startup": String
}

MaxNewSize properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

G1HeapRegionSize syntax

"G1HeapRegionSize": {
  "Original": Integer,
  "Startup": String
}

G1HeapRegionSize properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

PrintGC syntax

"PrintGC": {
  "Original": Boolean,
  "Startup": String
}

PrintGC properties

Property Type Required Editable Description Constraint
Original Boolean No No The parameter value. None
Startup String No No The startup parameter. None

MaxDirectMemorySize syntax

"MaxDirectMemorySize": {
  "Original": Integer,
  "Startup": String
}

MaxDirectMemorySize properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

MaxPermSize syntax

"MaxPermSize": {
  "Original": Integer,
  "Startup": String
}

MaxPermSize properties

Property Type Required Editable Description Constraint
Original Integer No No The parameter value. None
Startup String No No The startup parameter. None

HeapDumpOnOutOfMemoryError syntax

"HeapDumpOnOutOfMemoryError": {
  "Original": Boolean,
  "Startup": String
}

HeapDumpOnOutOfMemoryError properties

Property Type Required Editable Description Constraint
Original Boolean No No The parameter value. None
Startup String No No The startup parameter. None

NacosUseCloudNamespaceParsing syntax

"NacosUseCloudNamespaceParsing": {
  "Original": Boolean,
  "Startup": String
}

NacosUseCloudNamespaceParsing properties

Property Type Required Editable Description Constraint
Original Boolean No No The parameter value. None
Startup String No No The startup parameter. None

HeapDumpPath syntax

"HeapDumpPath": {
  "Original": String,
  "Startup": String
}

HeapDumpPath properties

Property Type Required Editable Description Constraint
Original String No No The parameter value. None
Startup String No No The startup parameter. None

GCLogFilePath syntax

"GCLogFilePath": {
  "Original": String,
  "Startup": String
}

GCLogFilePath properties

Property Type Required Editable Description Constraint
Original String No No The parameter value. None
Startup String No No The startup parameter. None

PrintGCDateStamps syntax

"PrintGCDateStamps": {
  "Original": Boolean,
  "Startup": String
}

PrintGCDateStamps properties

Property Type Required Editable Description Constraint
Original Boolean No No The parameter value. None
Startup String No No The startup parameter. None

YoungGarbageCollector syntax

"YoungGarbageCollector": {
  "Original": String,
  "Startup": String
}

YoungGarbageCollector properties

Property Type Required Editable Description Constraint
Original String No No The parameter value. None
Startup String No No The startup parameter. None

OldGarbageCollector syntax

"OldGarbageCollector": {
  "Original": String,
  "Startup": String
}

OldGarbageCollector properties

Property Type Required Editable Description Constraint
Original String No No The parameter value. None
Startup String No No The startup parameter. None

CommandArgs syntax

"CommandArgs": [
  {
    "Argument": String
  }
]

CommandArgs properties

Property Type Required Editable Description Constraint
Argument String No No The argument of the command. You must use this property together with the command. Set this property to a JSON array in the [{"argument":"-c"},{"argument":"test"}] format. -c and test are two arguments that need to be specified.

Envs syntax

"Envs": [
  {
    "Value": String,
    "Name": String
  }
]

Envs properties

Property Type Required Editable Description Constraint
Value String No No The value. None
Name String No No The name. None

PostStart syntax

"PostStart": {
  "Exec": Map,
  "HttpGet": Map
}

PostStart properties

Property Type Required Editable Description Constraint
Exec Map No No The commands that are run by exec probes. None
HttpGet Map No No The HTTP GET requests. None

MountDescs syntax

"MountDescs": [
  {
    "MountPath": String,
    "NasPath": String
  }
]

MountDescs properties

Property Type Required Editable Description Constraint
MountPath String No No The path to mount the file system to the container. None
NasPath String No No The file storage path. None

LocalVolume syntax

"LocalVolume": [
  {
    "MountPath": String,
    "Type": String,
    "NodePath": String
  }
]

LocalVolume properties

Property Type Required Editable Description Constraint
MountPath String No No The path within the container. None
Type String No No The type of the file to be mounted. None
NodePath String No No The host path. None

Return values

Fn::GetAtt

  • AppId: the ID of the application.
  • ClusterId: the cluster ID of the application.
  • ChangeOrderId: the ID of the change process.
  • CsClusterId: the Kubernetes cluster ID of the application.
  • AppName: the name of the application.

Examples

JSON format

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "LogicalRegionId": {
      "Type": "String",
      "Description": "The ID of the EDAS namespace. This parameter is required for a non-default namespace."
    },
    "NasId": {
      "Type": "String",
      "Description": "The ID of the Network Attached Storage (NAS) file system mounted to the container where the application is running. The NAS file system must be in the same region as the cluster. The NAS file system must have an available mount target, or have a mount\ntarget on the vSwitch in the virtual private cloud (VPC) where the application is located. If this parameter is not specified and the mountDescs field exists, a NAS file system is automatically purchased and mounted to the vSwitch in the VPC by default."
    },
    "Liveness": {
      "Type": "Json",
      "Description": "The liveness check on the container."
    },
    "IntranetSlbId": {
      "Type": "String",
      "Description": "The ID of the internal-facing SLB instance. If this parameter is not specified, Enterprise Distributed Application Service (EDAS) automatically purchases a new SLB instance for you."
    },
    "WebContainer": {
      "Type": "String",
      "Description": "The version of the Tomcat container on which the deployment package of the application depends. This parameter is applicable to Spring Cloud and Apache Dubbo applications that are deployed by using WAR packages. This parameter is not supported when you deploy an application by using images."
    },
    "LimitCpu": {
      "Type": "Number",
      "Description": "The maximum number of CPUs allowed for each application instance when the application\nis running. Unit: cores."
    },
    "SlsConfigs": {
      "Type": "Json",
      "Description": "The Logstore configurations."
    },
    "IntranetSlbProtocol": {
      "Type": "String",
      "Description": "The protocol of the internal-facing SLB instance. Valid values: TCP, HTTP, and HTTPS.",
      "AllowedValues": [
        "TCP",
        "HTTP",
        "HTTPS"
      ]
    },
    "PackageVersion": {
      "Type": "String",
      "Description": "The version of the deployment package. This parameter is required when the PackageType parameter is set to WAR or FatJar. You must specify a version.\nNote The version of SDK for Java or Python must be 2.44.0 or later."
    },
    "WebContainerConfig": {
      "Type": "Json",
      "Description": "The Tomcat container configuration."
    },
    "AppName": {
      "Type": "String",
      "Description": "The name of the application. The name must start with a letter and can contain digits,\nletters, and hyphens (-). It can be up to 36 characters in length."
    },
    "JDK": {
      "Type": "String",
      "Description": "The version of Java Development Kit (JDK) on which the deployment package of the application depends. \nValid values: Open JDK 7 and Open JDK 8. This parameter is not supported when you deploy an application by using images."
    },
    "InternetSlbId": {
      "Type": "String",
      "Description": "The ID of the Internet-facing SLB instance. If this parameter is not specified, EDAS automatically purchases a new SLB instance for you."
    },
    "PreStop": {
      "Type": "Json",
      "Description": "The pre-stop script. For example, {\"Exec\": {\"Command\": [\"ls\", \"/\"]}}."
    },
    "InternetSlbPort": {
      "Type": "Number",
      "Description": "The frontend port of the Internet-facing SLB instance. Valid values: 1 to 65535.",
      "MinValue": 1,
      "MaxValue": 65535
    },
    "Readiness": {
      "Type": "Json",
      "Description": "The readiness check on the container."
    },
    "DeployAcrossNodes": {
      "Type": "Boolean",
      "Description": "Specifies whether to distribute application instances to multiple nodes. The value true indicates yes, whereas other values indicate no.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "RequestsMem": {
      "Type": "Number",
      "Description": "The maximum amount of memory allowed for each application instance when the application\nis created. Unit: MB. The value 0 indicates no limit.",
      "MinValue": 0
    },
    "PackageType": {
      "Type": "String",
      "Description": "The type of the deployment package. Valid values: FatJar, WAR, and Image."
    },
    "UseBodyEncoding": {
      "Type": "Boolean",
      "Description": "Specifies whether useBodyEncodingForURI is enabled.\nNote If this parameter is not specified in application configuration, the default value\nfalse is applied.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "JavaStartUpConfig": {
      "Type": "Json",
      "Description": "The configuration of Java startup parameters for a Java application. These startup parameters involve the memory, application, garbage collection (GC) policy, tools, service registration and discovery, and custom configurations. Proper parameter settings help reduce the GC overhead, shorten the server response time, and improve the throughput.\nThe system automatically concatenates all startup values as the configuration of Java startup parameters for the application."
    },
    "IsMultilingualApp": {
      "Type": "Boolean",
      "Description": "Specifies whether the application is a multi-language application.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "RequestsCpu": {
      "Type": "Number",
      "Description": "The maximum number of CPUs allowed for each application instance when the application is created. Unit: cores. The value 0 indicates no limit.",
      "MinValue": 0
    },
    "CommandArgs": {
      "Type": "Json",
      "Description": "The collection of commands. For example, [{\"argument\":\"-c\"},{\"argument\":\"test\"}], where -c and test are two parameters that can be set."
    },
    "StorageType": {
      "Type": "String",
      "Description": "Only SSD is supported."
    },
    "ClusterId": {
      "Type": "String",
      "Description": "The cluster ID. You can query the cluster ID by calling the ListCluster operation.\nFor more information, see ListCluster."
    },
    "Timeout": {
      "Type": "Number",
      "Description": "The timeout interval of the change process. Unit: seconds.",
      "MinValue": 1
    },
    "Envs": {
      "Type": "Json",
      "Description": "The collection of deployment environment variables. For example, [{\"Name\":\"x\",\"Value\":\"y\"},{\"Name\":\"x2\",\"Value\":\"y2\"}]."
    },
    "ImageUrl": {
      "Type": "String",
      "Description": "The image URL. When PackageType is set to Image, this parameter is required."
    },
    "DeployAcrossZones": {
      "Type": "Boolean",
      "Description": "Specifies whether to distribute application instances to multiple zones. The value true indicates yes, whereas other values indicate no.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "PostStart": {
      "Type": "Json",
      "Description": "The post-start script. For example, {\"Exec\": {\"Command\": [\"ls\", \"/\"]}}."
    },
    "InternetTargetPort": {
      "Type": "Number",
      "Description": "The backend port of the internal-facing SLB instance, which is also the service port of the application.\nValid values: 1 to 65535.",
      "MinValue": 1,
      "MaxValue": 65535
    },
    "Replicas": {
      "Type": "Number",
      "Description": "The number of instances for the application that you want to create. Default: 1",
      "MinValue": 1,
      "Default": 1
    },
    "Namespace": {
      "Type": "String",
      "Description": "The namespace of the Kubernetes cluster. This parameter determines the Kubernetes namespace where your application is deployed. By default, this parameter is set to default."
    },
    "ApplicationDescription": {
      "Type": "String",
      "Description": "The description of the application."
    },
    "UriEncoding": {
      "Type": "String",
      "Description": "The uniform resource identifier (URI) encoding scheme. Valid values: ISO-8859-1, GBK, GB2312, and UTF-8.\nNote If this parameter is not specified in application configuration, the default URI encoding\nscheme in the Tomcat container is applied."
    },
    "IntranetTargetPort": {
      "Type": "Number",
      "Description": "The backend port of the internal-facing Server Load Balancer (SLB) instance, which is also the service port of the application. Valid values: 1 to 65535."
    },
    "MountDescs": {
      "Type": "Json",
      "Description": "The description of the NAS mounting configuration. For example, the value can be [{\"NasPath\": \"/k8s\",\"MountPath\": \"/mnt\"}, {\"NasPath\": \"/files\", \"MountPath\": \"/app/files\"}]."
    },
    "LocalVolume": {
      "Type": "Json",
      "Description": "The configuration for mounting host files to the container where the application is running. For example, the value can be [{\"type\":\"\", \"nodePath\":\"/localfiles\", \"mountPath\":\"/app/files\"}, {\"type\":\"Directory\", \"nodePath\":\"/mnt\", \"mountPath\":\"/app/storage\"}]."
    },
    "RuntimeClassName": {
      "Type": "String",
      "Description": "The type of the container runtime. This parameter is applicable only to clusters that use sandboxed containers."
    },
    "Command": {
      "Type": "String",
      "Description": "The command that is specified. If it is specified, it replaces the startup command in the image when the image is started."
    },
    "InternetSlbProtocol": {
      "Type": "String",
      "Description": "The protocol of the Internet-facing SLB instance. Valid values: TCP, HTTP, and HTTPS.",
      "AllowedValues": [
        "TCP",
        "HTTP",
        "HTTPS"
      ]
    },
    "EdasContainerVersion": {
      "Type": "String",
      "Description": "The version of EDAS Container on which the deployment package of the application depends.\nNote This parameter is not supported when you deploy an application by using images."
    },
    "PackageUrl": {
      "Type": "String",
      "Description": "The URL of the deployment package. This parameter must be set for the applications\nthat are deployed by using FatJar or WAR packages.\nNote The version of SDK for Java or Python must be 2.44.0 or later."
    },
    "IntranetSlbPort": {
      "Type": "Number",
      "Description": "The frontend port of the internal-facing SLB instance. Valid values: 1 to 65535.",
      "MinValue": 1,
      "MaxValue": 65535
    },
    "RepoId": {
      "Type": "String",
      "Description": "The ID of the image repository."
    },
    "EnableAhas": {
      "Type": "Boolean",
      "Description": "Specifies whether to enable access to Application High Availability Service (AHAS).",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "LimitMem": {
      "Type": "Number",
      "Description": "The maximum amount of memory allowed for each application instance when the application is running. Unit: MB.",
      "MinValue": 1
    }
  },
  "Resources": {
    "K8sApplication": {
      "Type": "ALIYUN::EDAS::K8sApplication",
      "Properties": {
        "LogicalRegionId": {
          "Ref": "LogicalRegionId"
        },
        "NasId": {
          "Ref": "NasId"
        },
        "Liveness": {
          "Ref": "Liveness"
        },
        "IntranetSlbId": {
          "Ref": "IntranetSlbId"
        },
        "WebContainer": {
          "Ref": "WebContainer"
        },
        "LimitCpu": {
          "Ref": "LimitCpu"
        },
        "SlsConfigs": {
          "Ref": "SlsConfigs"
        },
        "IntranetSlbProtocol": {
          "Ref": "IntranetSlbProtocol"
        },
        "PackageVersion": {
          "Ref": "PackageVersion"
        },
        "WebContainerConfig": {
          "Ref": "WebContainerConfig"
        },
        "AppName": {
          "Ref": "AppName"
        },
        "JDK": {
          "Ref": "JDK"
        },
        "InternetSlbId": {
          "Ref": "InternetSlbId"
        },
        "PreStop": {
          "Ref": "PreStop"
        },
        "InternetSlbPort": {
          "Ref": "InternetSlbPort"
        },
        "Readiness": {
          "Ref": "Readiness"
        },
        "DeployAcrossNodes": {
          "Ref": "DeployAcrossNodes"
        },
        "RequestsMem": {
          "Ref": "RequestsMem"
        },
        "PackageType": {
          "Ref": "PackageType"
        },
        "UseBodyEncoding": {
          "Ref": "UseBodyEncoding"
        },
        "JavaStartUpConfig": {
          "Ref": "JavaStartUpConfig"
        },
        "IsMultilingualApp": {
          "Ref": "IsMultilingualApp"
        },
        "RequestsCpu": {
          "Ref": "RequestsCpu"
        },
        "CommandArgs": {
          "Ref": "CommandArgs"
        },
        "StorageType": {
          "Ref": "StorageType"
        },
        "ClusterId": {
          "Ref": "ClusterId"
        },
        "Timeout": {
          "Ref": "Timeout"
        },
        "Envs": {
          "Ref": "Envs"
        },
        "ImageUrl": {
          "Ref": "ImageUrl"
        },
        "DeployAcrossZones": {
          "Ref": "DeployAcrossZones"
        },
        "PostStart": {
          "Ref": "PostStart"
        },
        "InternetTargetPort": {
          "Ref": "InternetTargetPort"
        },
        "Replicas": {
          "Ref": "Replicas"
        },
        "Namespace": {
          "Ref": "Namespace"
        },
        "ApplicationDescription": {
          "Ref": "ApplicationDescription"
        },
        "UriEncoding": {
          "Ref": "UriEncoding"
        },
        "IntranetTargetPort": {
          "Ref": "IntranetTargetPort"
        },
        "MountDescs": {
          "Ref": "MountDescs"
        },
        "LocalVolume": {
          "Ref": "LocalVolume"
        },
        "RuntimeClassName": {
          "Ref": "RuntimeClassName"
        },
        "Command": {
          "Ref": "Command"
        },
        "InternetSlbProtocol": {
          "Ref": "InternetSlbProtocol"
        },
        "EdasContainerVersion": {
          "Ref": "EdasContainerVersion"
        },
        "PackageUrl": {
          "Ref": "PackageUrl"
        },
        "IntranetSlbPort": {
          "Ref": "IntranetSlbPort"
        },
        "RepoId": {
          "Ref": "RepoId"
        },
        "EnableAhas": {
          "Ref": "EnableAhas"
        },
        "LimitMem": {
          "Ref": "LimitMem"
        }
      }
    }
  },
  "Outputs": {
    "AppId": {
      "Description": "The ID of the application.",
      "Value": {
        "Fn::GetAtt": [
          "K8sApplication",
          "AppId"
        ]
      }
    },
    "ClusterId": {
      "Description": "The cluster ID of the application.",
      "Value": {
        "Fn::GetAtt": [
          "K8sApplication",
          "ClusterId"
        ]
      }
    },
    "ChangeOrderId": {
      "Description": "The ID of the change process.",
      "Value": {
        "Fn::GetAtt": [
          "K8sApplication",
          "ChangeOrderId"
        ]
      }
    },
    "CsClusterId": {
      "Description": "The K8s cluster ID of the application.",
      "Value": {
        "Fn::GetAtt": [
          "K8sApplication",
          "CsClusterId"
        ]
      }
    },
    "AppName": {
      "Description": "The name of the application.",
      "Value": {
        "Fn::GetAtt": [
          "K8sApplication",
          "AppName"
        ]
      }
    }
  }
}

YAML format

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  AppName:
    Description: 'The name of the application. The name must start with a letter and
      can contain digits,

      letters, and hyphens (-). It can be up to 36 characters in length.'
    Type: String
  ApplicationDescription:
    Description: The description of the application.
    Type: String
  ClusterId:
    Description: 'The cluster ID. You can query the cluster ID by calling the ListCluster
      operation.

      For more information, see ListCluster.'
    Type: String
  Command:
    Description: The command that is specified. If it is specified, it replaces the
      startup command in the image when the image is started.
    Type: String
  CommandArgs:
    Description: The collection of commands. For example, [{"argument":"-c"},{"argument":"test"}],
      where -c and test are two parameters that can be set.
    Type: Json
  DeployAcrossNodes:
    AllowedValues:
    - 'True'
    - 'true'
    - 'False'
    - 'false'
    Description: Specifies whether to distribute application instances to multiple
      nodes. The value true indicates yes, whereas other values indicate no.
    Type: Boolean
  DeployAcrossZones:
    AllowedValues:
    - 'True'
    - 'true'
    - 'False'
    - 'false'
    Description: Specifies whether to distribute application instances to multiple
      zones. The value true indicates yes, whereas other values indicate no.
    Type: Boolean
  EdasContainerVersion:
    Description: 'The version of EDAS Container on which the deployment package of
      the application depends.

      Note This parameter is not supported when you deploy an application by using
      images.'
    Type: String
  EnableAhas:
    AllowedValues:
    - 'True'
    - 'true'
    - 'False'
    - 'false'
    Description: Specifies whether to enable access to Application High Availability
      Service (AHAS).
    Type: Boolean
  Envs:
    Description: The collection of deployment environment variables. For example,
      [{"Name":"x","Value":"y"},{"Name":"x2","Value":"y2"}].
    Type: Json
  ImageUrl:
    Description: The image URL. When PackageType is set to Image, this parameter is
      required.
    Type: String
  InternetSlbId:
    Description: The ID of the Internet-facing SLB instance. If this parameter is
      not specified, EDAS automatically purchases a new SLB instance for you.
    Type: String
  InternetSlbPort:
    Description: 'The frontend port of the Internet-facing SLB instance. Valid values:
      1 to 65535.'
    MaxValue: 65535
    MinValue: 1
    Type: Number
  InternetSlbProtocol:
    AllowedValues:
    - TCP
    - HTTP
    - HTTPS
    Description: 'The protocol of the Internet-facing SLB instance. Valid values:
      TCP, HTTP, and HTTPS.'
    Type: String
  InternetTargetPort:
    Description: 'The backend port of the internal-facing SLB instance, which is also
      the service port of the application.

      Valid values: 1 to 65535.'
    MaxValue: 65535
    MinValue: 1
    Type: Number
  IntranetSlbId:
    Description: The ID of the internal-facing SLB instance. If this parameter is
      not specified, Enterprise Distributed Application Service (EDAS) automatically
      purchases a new SLB instance for you.
    Type: String
  IntranetSlbPort:
    Description: 'The frontend port of the internal-facing SLB instance. Valid values:
      1 to 65535.'
    MaxValue: 65535
    MinValue: 1
    Type: Number
  IntranetSlbProtocol:
    AllowedValues:
    - TCP
    - HTTP
    - HTTPS
    Description: 'The protocol of the internal-facing SLB instance. Valid values:
      TCP, HTTP, and HTTPS.'
    Type: String
  IntranetTargetPort:
    Description: 'The backend port of the internal-facing Server Load Balancer (SLB)
      instance, which is also the service port of the application. Valid values: 1
      to 65535.'
    Type: Number
  IsMultilingualApp:
    AllowedValues:
    - 'True'
    - 'true'
    - 'False'
    - 'false'
    Description: Specifies whether the application is a multi-language application.
    Type: Boolean
  JDK:
    Description: "The version of Java Development Kit (JDK) on which the deployment\
      \ package of the application depends. \nValid values: Open JDK 7 and Open JDK\
      \ 8. This parameter is not supported when you deploy an application by using\
      \ images."
    Type: String
  JavaStartUpConfig:
    Description: 'The configuration of Java startup parameters for a Java application.
      These startup parameters involve the memory, application, garbage collection
      (GC) policy, tools, service registration and discovery, and custom configurations.
      Proper parameter settings help reduce the GC overhead, shorten the server response
      time, and improve the throughput.

      The system automatically concatenates all startup values as the configuration
      of Java startup parameters for the application.'
    Type: Json
  LimitCpu:
    Description: 'The maximum number of CPUs allowed for each application instance
      when the application

      is running. Unit: cores.'
    Type: Number
  LimitMem:
    Description: 'The maximum amount of memory allowed for each application instance
      when the application is running. Unit: MB.'
    MinValue: 1
    Type: Number
  Liveness:
    Description: The liveness check on the container.
    Type: Json
  LocalVolume:
    Description: The configuration for mounting host files to the container where
      the application is running. For example, the value can be [{"type":"", "nodePath":"/localfiles",
      "mountPath":"/app/files"}, {"type":"Directory", "nodePath":"/mnt", "mountPath":"/app/storage"}].
    Type: Json
  LogicalRegionId:
    Description: The ID of the EDAS namespace. This parameter is required for a non-default
      namespace.
    Type: String
  MountDescs:
    Description: 'The description of the NAS mounting configuration. For example,
      the value can be [{"NasPath": "/k8s","MountPath": "/mnt"}, {"NasPath": "/files",
      "MountPath": "/app/files"}].'
    Type: Json
  Namespace:
    Description: The namespace of the Kubernetes cluster. This parameter determines
      the Kubernetes namespace where your application is deployed. By default, this
      parameter is set to default.
    Type: String
  NasId:
    Description: 'The ID of the Network Attached Storage (NAS) file system mounted
      to the container where the application is running. The NAS file system must
      be in the same region as the cluster. The NAS file system must have an available
      mount target, or have a mount

      target on the vSwitch in the virtual private cloud (VPC) where the application
      is located. If this parameter is not specified and the mountDescs field exists,
      a NAS file system is automatically purchased and mounted to the vSwitch in the
      VPC by default.'
    Type: String
  PackageType:
    Description: 'The type of the deployment package. Valid values: FatJar, WAR, and
      Image.'
    Type: String
  PackageUrl:
    Description: 'The URL of the deployment package. This parameter must be set for
      the applications

      that are deployed by using FatJar or WAR packages.

      Note The version of SDK for Java or Python must be 2.44.0 or later.'
    Type: String
  PackageVersion:
    Description: 'The version of the deployment package. This parameter is required
      when the PackageType parameter is set to WAR or FatJar. You must specify a version.

      Note The version of SDK for Java or Python must be 2.44.0 or later.'
    Type: String
  PostStart:
    Description: 'The post-start script. For example, {"Exec": {"Command": ["ls",
      "/"]}}.'
    Type: Json
  PreStop:
    Description: 'The pre-stop script. For example, {"Exec": {"Command": ["ls", "/"]}}.'
    Type: Json
  Readiness:
    Description: The readiness check on the container.
    Type: Json
  Replicas:
    Default: 1
    Description: 'The number of instances for the application that you want to create.
      Default: 1'
    MinValue: 1
    Type: Number
  RepoId:
    Description: The ID of the image repository.
    Type: String
  RequestsCpu:
    Description: 'The maximum number of CPUs allowed for each application instance
      when the application is created. Unit: cores. The value 0 indicates no limit.'
    MinValue: 0
    Type: Number
  RequestsMem:
    Description: 'The maximum amount of memory allowed for each application instance
      when the application

      is created. Unit: MB. The value 0 indicates no limit.'
    MinValue: 0
    Type: Number
  RuntimeClassName:
    Description: The type of the container runtime. This parameter is applicable only
      to clusters that use sandboxed containers.
    Type: String
  SlsConfigs:
    Description: The Logstore configurations.
    Type: Json
  StorageType:
    Description: Only SSD is supported.
    Type: String
  Timeout:
    Description: 'The timeout interval of the change process. Unit: seconds.'
    MinValue: 1
    Type: Number
  UriEncoding:
    Description: 'The uniform resource identifier (URI) encoding scheme. Valid values:
      ISO-8859-1, GBK, GB2312, and UTF-8.

      Note If this parameter is not specified in application configuration, the default
      URI encoding

      scheme in the Tomcat container is applied.'
    Type: String
  UseBodyEncoding:
    AllowedValues:
    - 'True'
    - 'true'
    - 'False'
    - 'false'
    Description: 'Specifies whether useBodyEncodingForURI is enabled.

      Note If this parameter is not specified in application configuration, the default
      value

      false is applied.'
    Type: Boolean
  WebContainer:
    Description: The version of the Tomcat container on which the deployment package
      of the application depends. This parameter is applicable to Spring Cloud and
      Apache Dubbo applications that are deployed by using WAR packages. This parameter
      is not supported when you deploy an application by using images.
    Type: String
  WebContainerConfig:
    Description: The Tomcat container configuration.
    Type: Json
Resources:
  K8sApplication:
    Properties:
      AppName:
        Ref: AppName
      ApplicationDescription:
        Ref: ApplicationDescription
      ClusterId:
        Ref: ClusterId
      Command:
        Ref: Command
      CommandArgs:
        Ref: CommandArgs
      DeployAcrossNodes:
        Ref: DeployAcrossNodes
      DeployAcrossZones:
        Ref: DeployAcrossZones
      EdasContainerVersion:
        Ref: EdasContainerVersion
      EnableAhas:
        Ref: EnableAhas
      Envs:
        Ref: Envs
      ImageUrl:
        Ref: ImageUrl
      InternetSlbId:
        Ref: InternetSlbId
      InternetSlbPort:
        Ref: InternetSlbPort
      InternetSlbProtocol:
        Ref: InternetSlbProtocol
      InternetTargetPort:
        Ref: InternetTargetPort
      IntranetSlbId:
        Ref: IntranetSlbId
      IntranetSlbPort:
        Ref: IntranetSlbPort
      IntranetSlbProtocol:
        Ref: IntranetSlbProtocol
      IntranetTargetPort:
        Ref: IntranetTargetPort
      IsMultilingualApp:
        Ref: IsMultilingualApp
      JDK:
        Ref: JDK
      JavaStartUpConfig:
        Ref: JavaStartUpConfig
      LimitCpu:
        Ref: LimitCpu
      LimitMem:
        Ref: LimitMem
      Liveness:
        Ref: Liveness
      LocalVolume:
        Ref: LocalVolume
      LogicalRegionId:
        Ref: LogicalRegionId
      MountDescs:
        Ref: MountDescs
      Namespace:
        Ref: Namespace
      NasId:
        Ref: NasId
      PackageType:
        Ref: PackageType
      PackageUrl:
        Ref: PackageUrl
      PackageVersion:
        Ref: PackageVersion
      PostStart:
        Ref: PostStart
      PreStop:
        Ref: PreStop
      Readiness:
        Ref: Readiness
      Replicas:
        Ref: Replicas
      RepoId:
        Ref: RepoId
      RequestsCpu:
        Ref: RequestsCpu
      RequestsMem:
        Ref: RequestsMem
      RuntimeClassName:
        Ref: RuntimeClassName
      SlsConfigs:
        Ref: SlsConfigs
      StorageType:
        Ref: StorageType
      Timeout:
        Ref: Timeout
      UriEncoding:
        Ref: UriEncoding
      UseBodyEncoding:
        Ref: UseBodyEncoding
      WebContainer:
        Ref: WebContainer
      WebContainerConfig:
        Ref: WebContainerConfig
    Type: ALIYUN::EDAS::K8sApplication
Outputs:
  AppId:
    Description: The ID of the application.
    Value:
      Fn::GetAtt:
      - K8sApplication
      - AppId
  AppName:
    Description: The name of the application.
    Value:
      Fn::GetAtt:
      - K8sApplication
      - AppName
  ChangeOrderId:
    Description: The ID of the change process.
    Value:
      Fn::GetAtt:
      - K8sApplication
      - ChangeOrderId
  ClusterId:
    Description: The cluster ID of the application.
    Value:
      Fn::GetAtt:
      - K8sApplication
      - ClusterId
  CsClusterId:
    Description: The K8s cluster ID of the application.
    Value:
      Fn::GetAtt:
      - K8sApplication
      - CsClusterId