All Products
Search
Document Center

Resource Orchestration Service:ALIYUN::CS::ClusterApplication

Last Updated:Mar 12, 2024

ALIYUN::CS::ClusterApplication is used to deploy a container application.

Syntax

 "ValidationMode": String  {
  "Type": "ALIYUN::CS::ClusterApplication",
  "Properties": {
    "YamlContent": String,
    "ClusterId": String,
    "DefaultNamespace": String,
    "RolePolicy": String,
    "Stage": String,
    "WaitUntil": List,
    "ValidationMode": String
  }
}

Properties

Property

Type

Required

Editable

Description

Constraint

YamlContent

String

Yes

Yes

The YAML template that you want to use to deploy the application.

None.

ClusterId

String

Yes

No

The cluster ID.

None.

DefaultNamespace

String

No

No

The default namespace of the application.

None.

RolePolicy

String

No

Yes

The role policy.

Before you deploy the application, check the policies that are attached to the role of your account.

Valid values:

  • EnsureAdminRoleAndBinding (default): automatically creates a role named ros:application-admin:${user-id}\ that has administrator permissions and attaches the role to your account.

  • None: does not perform operations.  

Stage

String

No

No

The running stage.  

Valid values:

  • All (default): all stages, including the creation, update, and deletion stages.  

  • Delete: deletion stage. This value specifies that the YAML content is applied to the cluster only during the deletion stage of the resource.  

WaitUntil

List

No

Yes

The system waits until all conditions are met after you start to create or update the application.  

For more information, see WaitUntil properties.

ValidationMode

String

No

No

The validation mode.

Valid values:

  • Basic: basic validation. For example, the system validates whether the cluster exists.

  • Strict: strict validation. In addition to a basic validation, the system validates the validity of WaitUntil.  

WaitUntil syntax

"WaitUntil": [
  {
   "FirstMatch": Boolean,
   "Timeout": Integer,
   "JsonPath": String,
   "Namespace": String,
   "Stage": String,
   "Name": String,
   "ValueType": String,
   "Kind": String,
   "Value": String,
   "Operator": String
  }
]

WaitUntil properties

Property

Type

Required

Editable

Description

Constraint

FirstMatch

Boolean

No

Yes

Specifies whether to return only the first matched result in the results that are filtered by using the JSONPath expression.  

Valid values:

  • true

  • false (default)

Timeout

Integer

No

Yes

The timeout period for waiting for the conditions to be met.

Unit: seconds.

JsonPath

String

No

Yes

The JSONPath expression that you want to use to filter results.

None.

Namespace

String

No

Yes

The Kubernetes namespace of the resource.

Default value: DefaultNamespace.  

Stage

String

No

No

The one or more stages at which the system waits.   

Valid values:

  • Create/Update (default): creation and update stages

  • Delete: deletion stage  

Name

String

Yes

Yes

The name of the Kubernetes resource that you want to query.

None.

ValueType

String

No

Yes

The value type.

Default value: String.

Kind

String

Yes

Yes

The type of the Kubernetes resource that you want to query.

None.

Value

String

No

Yes

The value to be compared with the result of the JSONPath expression.  

None.

Operator

String

Yes

Yes

The operator that you want to use in the comparison between the value and the result of the JSONPath expression.  

None.

Return values

Fn::GetAtt

ClusterId: the cluster ID.

Examples

YAML format

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ClusterId:
    Type: String
    Description: The ID of the kubernetes cluster.
Resources:
  ClusterApplication:
    Type: ALIYUN::CS::ClusterApplication
    Properties:
      YamlContent: |-
        apiVersion: storage.k8s.io/v1
        kind: StorageClass
        metadata:
          name: test-ut-storage
          annotations:
            storageclass.beta.kubernetes.io/is-default-class: "true"
            storageclass.kubernetes.io/is-default-class: "true"
        mountOptions:
        - nolock,tcp,noresvport
        - vers=3
        parameters:
          server:  1.1.1.1
          driver: flexvolume
        provisioner: alicloud/nas
        reclaimPolicy: Delete

        ---

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: test-ut-configmap
        data:
          k1: v1
          k2: v2
      ClusterId:
        Ref: ClusterId
Outputs:
  ClusterId:
    Description: The ID of the cluster.
    Value:
      Fn::GetAtt:
        - ClusterApplication
        - ClusterId

JSON format

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "ClusterId": {
      "Type": "String",
      "Description": "The ID of the kubernetes cluster."
    }
  },
  "Resources": {
    "ClusterApplication": {
      "Type": "ALIYUN::CS::ClusterApplication",
      "Properties": {
        "YamlContent": "apiVersion: storage.k8s.io/v1\nkind: StorageClass\nmetadata:\n  name: test-ut-storage\n  annotations:\n    storageclass.beta.kubernetes.io/is-default-class: \"true\"\n    storageclass.kubernetes.io/is-default-class: \"true\"\nmountOptions:\n- nolock,tcp,noresvport\n- vers=3\nparameters:\n  server:  1.1.1.1\n  driver: flexvolume\nprovisioner: alicloud/nas\nreclaimPolicy: Delete\n\n---\n\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: test-ut-configmap\ndata:\n  k1: v1\n  k2: v2",
        "ClusterId": {
          "Ref": "ClusterId"
        }
      }
    }
  },
  "Outputs": {
    "ClusterId": {
      "Description": "The ID of the cluster.",
      "Value": {
        "Fn::GetAtt": [
          "ClusterApplication",
          "ClusterId"
        ]
      }
    }
  }
}