应用平台 APPSTAGE-component内部编排

时间:2024-04-02 17:50:05

component内部编排

组件内部编排在spec包各组件的resources.yaml文件中描述,通过为资源指定dependsOn属性表达依赖关系。

component内部允许同一个资源出现多次,这表示同一个资源的不同变更阶段,这一场景下该资源的所有节点必须声明alias字段并且alias取值必须在component内全局唯一,同一个资源的所有alias之间必须显式地在dependsOn字段中声明串行依赖。

dependsOn是列表类型,每个元素使用type、name、alias等字段描述对其他资源的引用,其中name字段是必填字段,type、alias是可选字段;component解析某资源的dependsOn时,会根据元素属性从相同component中搜索满足条件的资源作为当前资源的依赖。

部分资源之间已经有隐式引用关系,系统自动添加dependsOn,不需要再显式声明。每种类型的哪些属性隐含引用关系,可以参考其文档,具体请参见资源介绍

资源不能有循环依赖(A dependsOn B,B dependsOn C,C dependsOn A),不能依赖自己。

以下示例定义了两个资源,一个名为chaosmonkey-elb的ELB,一个名为chaosmonkey-slb的SLB;chaosmonkey-slb依赖于chaosmonkey-elb。在变更时,先变更chaosmonkey-elb,变更成功后再变更chaosmonkey-slb,如果chaosmonkey-elb变更失败,则不会变更chaosmonkey-slb。

- name: chaosmonkey-elb                  # 资源名称
  type: WiseCloud::LoadBalancer::ELBV2   # 资源类型
  properties:
    listeners:
      - name: listener
        protocol: HTTP
        protocolPort: 80
        poolName: pool_a
    pools:
      - name: pool_a
        protocol: HTTP
- name: chaosmonkey-slb                  # 资源名称
  type: WiseCloud::LoadBalancer::SLB     # 资源类型
  dependsOn:                             # 定义对其他资源的依赖
    - name: chaosmonkey-elb              # 依赖的资源名称
  properties:
    elbName: chaosmonkey-elb
    elbPoolNames: ["pool_a"]
    deployVersion: 1.4.12
    slbConfigs:
      targets:
        - clusterName: mgr
      routes:
        - location: /
          target: mgr

support.huaweicloud.com/devg-appstage/appstage_06_0038.html