All Products
Search
Document Center

Resource Orchestration Service:ALIYUN::CS::ClusterHelmApplication

Last Updated:Jul 25, 2024

ALIYUN::CS::ClusterHelmApplication is used to deploy an application by using Helm.

Syntax

{
  "Type": "ALIYUN::CS::ClusterHelmApplication",
  "Properties": {
    "ChartValues": Map,
    "ClusterId": String,
    "ChartUrl": String,
    "Namespace": String,
    "Name": String,
    "Credential": Map,
    "RolePolicy": String,
    "WaitUntil": List,
    "ValidationMode": String
  }
}

Properties

Property

Type

Required

Editable

Description

Constraint

ChartUrl

String

Yes

Yes

The request URL of the chart.

None.

ClusterId

String

Yes

No

The cluster ID.

None.

Name

String

Yes

No

The chart name.

None.

ChartValues

Map

No

Yes

The custom values of the chart.

None.

Credential

Map

No

No

The information about the access credential.

None.

Namespace

String

No

No

The namespace of Helm.

None.

RolePolicy

String

No

Yes

The policy for the role of your account.

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.

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

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.

Credential syntax

"Credential": [
  {
    "Password": String,
    "UserName": String
  }
]

Credential properties

Property

Type

Required

Editable

Description

Constraint

Password

String

Yes

No

The password.

None.

UserName

String

Yes

No

The username.

None.

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

Kind

String

Yes

Yes

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

None.

Name

String

Yes

Yes

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

None.

Operator

String

Yes

Yes

The operator based on which you want to compare the value with the result of the JSONPath expression.  

None.

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)

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  

Timeout

Integer

No

Yes

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

Unit: seconds.

Value

String

No

Yes

The value that you want to compare with the result of the JSONPath expression.  

None.

ValueType

String

No

Yes

The value type.

Default value: String.

Return values

Fn::GetAtt

  • ClusterId: the cluster ID.

  • WaitUntilData: the JSONPath values in WaitUntil.  

Examples

You can use the following template to deploy Knative by using Resource Orchestration Service (ROS) and install the Kourier gateway and the KServe component in a few steps. For more information about the fast deployment feature provided by Container Service for Kubernetes (ACK), see Deploy Knative.

YAML format

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  DBClusterId:
    Type: String
    Label:
      en: Cluster ID
       
    AssociationProperty: ALIYUN::CS::Cluster::ClusterId
Resources:
  HelmOfKnativeKourier:
    Type: ALIYUN::CS::ClusterHelmApplication
    Properties:
      ClusterId:
        Ref: DBClusterId
      ChartUrl: https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-knative-kourier-1.4.0.tgz
      Name: knative-kourier
      Namespace: knative-serving
      ChartValues:
        version: v1.10.9-aliyun.1
        regionID:
          Ref: ALIYUN::Region
  HelmOfKnativeServing:
    Type: ALIYUN::CS::ClusterHelmApplication
    Properties:
      ClusterId:
        Ref: DBClusterId
      ChartUrl: https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-knative-serving-v1.10.9-aliyun.1.tgz
      Name: knative-serving
      Namespace: knative-serving
      ChartValues:
        version: v1.10.9-aliyun.1
        regionID:
          Ref: ALIYUN::Region
    DependsOn: HelmOfKnativeKourier
  HelmOfKnativeKserve:
    Type: ALIYUN::CS::ClusterHelmApplication
    Properties:
      ClusterId:
        Ref: DBClusterId
      ChartUrl: https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-knative-kserve-v0.10.1.tgz
      Name: knative-kserve
      Namespace: kserve
      ChartValues:
        version: v1.10.9-aliyun.1
        regionID:
          Ref: ALIYUN::Region
    DependsOn: HelmOfKnativeServing

JSON format

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "DBClusterId": {
      "Type": "String",
      "Label": {
        "en": "Cluster ID",
         
      },
      "AssociationProperty": "ALIYUN::CS::Cluster::ClusterId"
    }
  },
  "Resources": {
    "HelmOfKnativeKourier": {
      "Type": "ALIYUN::CS::ClusterHelmApplication",
      "Properties": {
        "ClusterId": {
          "Ref": "DBClusterId"
        },
        "ChartUrl": "https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-knative-kourier-1.4.0.tgz",
        "Name": "knative-kourier",
        "Namespace": "knative-serving",
        "ChartValues": {
          "version": "v1.10.9-aliyun.1",
          "regionID": {
            "Ref": "ALIYUN::Region"
          }
        }
      }
    },
    "HelmOfKnativeServing": {
      "Type": "ALIYUN::CS::ClusterHelmApplication",
      "Properties": {
        "ClusterId": {
          "Ref": "DBClusterId"
        },
        "ChartUrl": "https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-knative-serving-v1.10.9-aliyun.1.tgz",
        "Name": "knative-serving",
        "Namespace": "knative-serving",
        "ChartValues": {
          "version": "v1.10.9-aliyun.1",
          "regionID": {
            "Ref": "ALIYUN::Region"
          }
        }
      },
      "DependsOn": "HelmOfKnativeKourier"
    },
    "HelmOfKnativeKserve": {
      "Type": "ALIYUN::CS::ClusterHelmApplication",
      "Properties": {
        "ClusterId": {
          "Ref": "DBClusterId"
        },
        "ChartUrl": "https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-knative-kserve-v0.10.1.tgz",
        "Name": "knative-kserve",
        "Namespace": "kserve",
        "ChartValues": {
          "version": "v1.10.9-aliyun.1",
          "regionID": {
            "Ref": "ALIYUN::Region"
          }
        }
      },
      "DependsOn": "HelmOfKnativeServing"
    }
  }
}