全部產品
Search
文件中心

:ALIYUN::CS::ClusterApplication

更新時間:Jun 25, 2024

ALIYUN::CS::ClusterApplication類型用於容器應用部署。

文法

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

屬性

屬性名稱

類型

必須

允許更新

描述

約束

ClusterId

String

叢集ID。

YamlContent

String

部署應用的YAML模板內容。

DefaultNamespace

String

應用程式的預設命名空間。

RolePolicy

String

角色策略。

在部署應用程式之前,請檢查與目前使用者角色關聯的策略。

取值:

  • EnsureAdminRoleAndBinding(預設值):自動建立一個名為ros:application-admin:${user-id}\的角色,具有管理員權限,並將其綁定到目前使用者。

  • None:不執行任何操作。 

Stage

String

運行階段。 

取值:

  • All(預設值):所有階段,包括建立、更新和刪除。 

  • Delete:刪除階段。這意味著只有在該資源的刪除階段才會將YAML應用到叢集。 

ValidationMode

String

驗證模式。

取值:

  • Basic:基本驗證,例如驗證叢集是否存在。

  • Strict:除了基本驗證外,還驗證WaitUntil的合法性。 

WaitUntil

List

開始建立或更新後,等待直到滿足所有條件。 

更多資訊,請參見WaitUntil屬性

WaitUntil文法

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

WaitUntil屬性

屬性名稱

類型

必須

允許更新

描述

約束

Kind

String

要查詢的Kubernetes資源類型。

Name

String

要查詢的Kubernetes資源名稱。

Operator

String

將值與JsonPath運算式的結果進行比較的操作符。 

FirstMatch

Boolean

只返回JsonPath過濾結果中的第一個匹配結果。 

取值:

  • true

  • false(預設值)

JsonPath

String

Json路徑運算式來過濾輸出。

Namespace

String

資源所在的kubernetes的命名空間。

預設值為DefaultNamespace。 

Stage

String

在什麼階段等待。  

取值:

  • Create/Update(預設值):建立和更新階段。

  • Delete:刪除階段。 

Timeout

Integer

等待滿足條件的逾時時間。

單位為秒。

Value

String

要與JsonPath運算式的結果進行比較的值。 

ValueType

String

值的類型。

預設值為String。

傳回值

Fn::GetAtt

  • ClusterId:叢集ID。

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

樣本

YAML格式

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格式

{
  "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"
        ]
      }
    }
  }
}