j9九游会登录/ 应用平台 appstage/ / / 在iac代码中声明资源
更新时间:2025-02-17 gmt 08:00

在iac代码中声明资源-j9九游会登录

定义component是iac将一个环境的资源组织起来的方式,我们可以把同一类资源组织起来成为一个component。所有被iac定义的资源必须属于某一个component。一个component下可以定义多个资源,所有的资源描述都存放于resources.yaml中,资源的type和name构成资源的唯一标记,以列表的形式存在。

component定义

定义component是iac将一个环境的资源组织起来的方式,我们可以把同一类资源组织起来成为一个component。所有被iac定义的资源必须属于某一个component。在以下样例中,iac代码定义了wiseeyechaosmonkeymgrservice和wiseeyechaosmonkeyportal两个component。

├── global/
       │    ├── meta.yaml
       │    ├── wiseeyechaosmonkeymgrservice/...
       │    └── wiseeyechaosmonkeyportal/...

资源定义

一个component下可以定义多个资源,所有的资源描述都存放于resources.yaml中,资源的type和name构成资源的唯一标记,以列表的形式存在。

在以下样例中,wiseeyechaosmonkeyportal下的resources.yaml中定义了该组件下的全量资源。

图1 资源定义
表1 resources.yaml字段说明

字段

含义

name

微服务平台显示的资源名称,最大长度为16字符。

type

资源类型。支持配置管理、nuwa container及slb。

properties

属性值,包含资源的详细参数。详细参数介绍请参见。

如果资源文件过大可以通过引用的方式对文件进行拆分及复用如图,我们可以把配置的定义放在config/business_config.yaml文件下。

图2 resources.yaml文件拆分

business_config.yaml文件可以复用:

图3 business_config.yaml文件复用

component内部资源编排

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

component的resources属性中描述资源列表,通过设置资源的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

相关文档

网站地图