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 | 否 | 是 | 角色策略。 | 在部署應用程序之前,請檢查與當前用戶角色關聯的策略。 取值:
|
Stage | String | 否 | 否 | 運行階段。 | 取值:
|
ValidationMode | String | 否 | 否 | 驗證模式。 | 取值:
|
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過濾結果中的第一個匹配結果。 | 取值:
|
JsonPath | String | 否 | 是 | Json路徑表達式來過濾輸出。 | 無 |
Namespace | String | 否 | 是 | 資源所在的kubernetes的命名空間。 | 默認值為DefaultNamespace。 |
Stage | String | 否 | 否 | 在什么階段等待。 | 取值:
|
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"
]
}
}
}
}