ALIYUN::CS::ClusterAddons

ALIYUN::CS::ClusterAddons类型用于指定集群安装组件。

语法

{
  "Type": "ALIYUN::CS::ClusterAddons",
  "Properties": {
    "ClusterId": String,
    "Addons": List,
    "InstalledIgnore": Boolean,
    "WaitUntil": List,
    "RolePolicy": String,
    "ValidationMode": String
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

ClusterId

String

集群ID。

Addons

List

组件配置信息列表。

更多信息,请参见Addons属性

InstalledIgnore

Boolean

创建集群时是否忽略已安装的组件。

取值:

  • true:忽略已安装的组件。

    当创建集群时,只安装尚未安装的组件。当删除集群时,只卸载在创建阶段安装的组件。

  • false(默认值):不忽略已安装的组件。

WaitUntil

List

开始创建或更新后,等待直到满足所有条件。 

更多信息,请参见WaitUntil属性

RolePolicy

String

在部署应用程序之前,请检查与当前用户的角色关联的策略。 

取值:

  • EnsureAdminRoleAndBinding(默认值):自动创建一个名为ros:application-admin:${user-id}\的角色,具有管理员权限,并将其绑定到当前用户。 

  • None:不执行任何操作。 

ValidationMode

String

验证模式。

取值:

  • Basic:基本验证,例如验证集群是否存在。

  • Strict:除了基本验证外,还验证WaitUntil的合法性。 

Addons语法

"Addons": [
  {
    "Version": String,
    "Config": String,
    "Name": String
  }
]

Addons属性

属性名称

类型

必须

允许更新

描述

约束

Version

String

组件版本。

Config

String

组件配置信息。

Name

String

组件名称。

WaitUntil语法

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

WaitUntil属性

属性名称

类型

必须

允许更新

描述

约束

FirstMatch

Boolean

只返回 JsonPath过滤结果中的第一个匹配结果。 

取值:

  • true

  • false(默认值)

Timeout

Integer

等待满足条件的超时时间。

单位为秒。

JsonPath

String

Json路径表达式来过滤输出。

Namespace

String

资源所在的kubernetes的命名空间。

默认值为DefaultNamespace。 

Stage

String

在什么阶段等待。  

取值:

  • Create/Update(默认值):创建和更新阶段。

  • Delete:删除阶段。 

Name

String

要查询的kubernetes资源名称。

ValueType

String

值的类型。

默认值为String。

Kind

String

要查询的kubernetes资源类型。

Value

String

要与JsonPath表达式的结果进行比较的值。 

Operator

String

将值与JsonPath表达式的结果进行比较的操作符。 

返回值

Fn::GetAtt

  • ClusterId:集群ID。

  • WaitUntilData:WaitUntil中每个JsonPath的值列表。 

示例

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  Addons:
    Description: 'A combination of addon plugins for Kubernetes clusters.

      Network plug-in: including Flannel and Terway network plug-ins

      Log service: Optional. If the log service is not enabled, the cluster audit
      function cannot be used.

      Ingress: The installation of the Ingress component is enabled by default.'
    Type: Json
  ClusterId:
    Description: Cluster ID.
    Type: String
Resources:
  ClusterAddons:
    Properties:
      Addons:
        Ref: Addons
      ClusterId:
        Ref: ClusterId
    Type: ALIYUN::CS::ClusterAddons
Outputs:
  ClusterId:
    Description: Cluster ID.
    Value:
      Fn::GetAtt:
      - ClusterAddons
      - ClusterId

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "ClusterId": {
      "Type": "String",
      "Description": "Cluster ID."
    },
    "Addons": {
      "Type": "Json",
      "Description": "A combination of addon plugins for Kubernetes clusters.\nNetwork plug-in: including Flannel and Terway network plug-ins\nLog service: Optional. If the log service is not enabled, the cluster audit function cannot be used.\nIngress: The installation of the Ingress component is enabled by default."
    }
  },
  "Resources": {
    "ClusterAddons": {
      "Type": "ALIYUN::CS::ClusterAddons",
      "Properties": {
        "ClusterId": {
          "Ref": "ClusterId"
        },
        "Addons": {
          "Ref": "Addons"
        }
      }
    }
  },
  "Outputs": {
    "ClusterId": {
      "Description": "Cluster ID.",
      "Value": {
        "Fn::GetAtt": [
          "ClusterAddons",
          "ClusterId"
        ]
      }
    }
  }
}