全部产品
Search
文档中心

Resource Orchestration Service:ALIYUN::CS::ClusterApplication

更新时间:Jun 26, 2025

ALIYUN::CS::ClusterApplication digunakan untuk menerapkan aplikasi dalam kluster Container Service for Kubernetes (ACK).

Sintaksis

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

Properti

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

ClusterId

String

Ya

Tidak

ID dari kluster.

Tidak ada.

YamlContent

String

Ya

Ya

Konten template YAML yang ingin Anda gunakan untuk menerapkan aplikasi.

Tidak ada.

DefaultNamespace

String

Tidak

Tidak

Namespace default dari aplikasi.

Tidak ada.

RolePolicy

String

Tidak

Ya

Kebijakan peran.

Sebelum Anda menerapkan aplikasi, periksa kebijakan yang dilampirkan pada peran akun Anda.

Nilai valid:

  • EnsureAdminRoleAndBinding (default): secara otomatis membuat peran bernama ros:application-admin:${user-id}\ yang memiliki izin administrator dan menetapkan peran tersebut ke akun Anda.

  • None: tidak melakukan operasi.  

Stage

String

Tidak

Tidak

Satu atau lebih tahapan berjalan.  

Nilai valid:

  • All (default): semua tahapan, termasuk tahap pembuatan, pembaruan, dan penghapusan.  

  • Delete: tahap penghapusan. Nilai ini menunjukkan bahwa konten template YAML diterapkan ke kluster hanya pada tahap penghapusan sumber daya.  

ValidationMode

String

Tidak

Tidak

Mode validasi.

Nilai valid:

  • Basic: validasi dasar. Misalnya, sistem memvalidasi apakah kluster ada.

  • Ketat: validasi ketat. Selain validasi dasar, sistem memvalidasi keabsahan WaitUntil.  

WaitUntil

List

Tidak

Ya

Sistem menunggu hingga semua kondisi terpenuhi setelah Anda mulai membuat atau memperbarui aplikasi.  

Untuk informasi lebih lanjut, lihat Properti WaitUntil.

DefaultNamespaceDeletion

Boolean

Tidak

Ya

Menentukan apakah akan menghapus namespace yang ditentukan oleh DefaultNamespace.

Jika namespace yang ditentukan oleh DefaultNamespace termasuk dalam 'default', 'kube-node-lease', 'kube-public', 'kube-system', dan 'arms-prom', namespace tersebut tidak dihapus terlepas dari apakah DefaultNamespaceDeletion disetel ke true.

Sintaksis WaitUntil

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

Properti WaitUntil

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Batasan

ApiVersion

String

Tidak

Ya

Versi API.

Tidak ada.

Kind

String

Ya

Ya

Tipe sumber daya Kubernetes yang ingin Anda kueri.

Tidak ada.

Name

String

Ya

Ya

Nama sumber daya Kubernetes yang ingin Anda kueri.

Tidak ada.

Operator

String

Ya

Ya

Operator berdasarkan mana Anda membandingkan nilai dengan hasil ekspresi JSONPath.  

Tidak ada.

FirstMatch

Boolean

Tidak

Ya

Menentukan apakah hanya mengembalikan hasil pertama yang cocok dalam hasil yang difilter menggunakan ekspresi JSONPath.  

Nilai valid:

  • true

  • false (default)

JsonPath

String

Tidak

Ya

Ekspresi JSONPath yang ingin Anda gunakan untuk menyaring hasil.

Tidak ada.

Namespace

String

Tidak

Ya

Namespace Kubernetes dari sumber daya.

Nilai default: DefaultNamespace.  

Stage

String

Tidak

Tidak

Satu atau lebih tahapan di mana sistem menunggu.   

Nilai valid:

  • Create/Update (default): tahap pembuatan dan pembaruan.

  • Delete: tahap penghapusan.  

Timeout

Integer

Tidak

Ya

Periode timeout untuk menunggu kondisi terpenuhi.

Satuan: detik.

Value

String

Tidak

Ya

Nilai yang akan dibandingkan dengan hasil ekspresi JSONPath.  

Tidak ada.

ValueType

String

Tidak

Ya

Tipe nilai.

Nilai default: String.

Nilai pengembalian

Fn::GetAtt

  • ClusterId: ID kluster.

  • WaitUntilData: nilai JSONPath di WaitUntil.

Contoh

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