103 lines
2.2 KiB
YAML
103 lines
2.2 KiB
YAML
heat_template_version: 2017-02-24
|
|
parameters:
|
|
env_type:
|
|
default: test
|
|
type: string
|
|
constraints:
|
|
- allowed_values: [prod, test]
|
|
zone:
|
|
type: string
|
|
default: beijing
|
|
conditions:
|
|
prod: {equals: [{get_param: env_type}, "prod"]}
|
|
test:
|
|
not:
|
|
equals:
|
|
- get_param: env_type
|
|
- prod
|
|
beijing_prod:
|
|
and:
|
|
- equals:
|
|
- get_param: zone
|
|
- beijing
|
|
- equals:
|
|
- get_param: env_type
|
|
- prod
|
|
xian_zone:
|
|
equals:
|
|
- get_param: zone
|
|
- xian
|
|
xianyang_zone:
|
|
equals:
|
|
- get_param: zone
|
|
- xianyang
|
|
fujian_zone:
|
|
or:
|
|
- equals:
|
|
- get_param: zone
|
|
- fuzhou
|
|
- equals:
|
|
- get_param: zone
|
|
- xiamen
|
|
fujian_prod:
|
|
and:
|
|
- fujian_zone
|
|
- prod
|
|
shannxi_province:
|
|
or:
|
|
- xian_zone
|
|
- xianyang_zone
|
|
resources:
|
|
test_res:
|
|
type: OS::Heat::TestResource
|
|
properties:
|
|
value: {if: ["prod", "env_is_prod", "env_is_test"]}
|
|
prod_res:
|
|
type: OS::Heat::TestResource
|
|
properties:
|
|
value: prod_res
|
|
condition: prod
|
|
test_res1:
|
|
type: OS::Heat::TestResource
|
|
properties:
|
|
value: just in test env
|
|
condition: test
|
|
beijing_prod_res:
|
|
type: OS::Heat::TestResource
|
|
properties:
|
|
value: beijing_prod_res
|
|
condition: beijing_prod
|
|
fujian_res:
|
|
type: OS::Heat::TestResource
|
|
condition: fujian_zone
|
|
properties:
|
|
value: fujian_res
|
|
fujian_prod_res:
|
|
type: OS::Heat::TestResource
|
|
condition: fujian_prod
|
|
properties:
|
|
value: fujian_prod_res
|
|
shannxi_res:
|
|
type: OS::Heat::TestResource
|
|
condition: shannxi_province
|
|
properties:
|
|
value: shannxi_res
|
|
not_shannxi_res:
|
|
type: OS::Heat::TestResource
|
|
condition: {not: shannxi_province}
|
|
properties:
|
|
value: not_shannxi_res
|
|
outputs:
|
|
res_value:
|
|
value: {get_attr: [prod_res, output]}
|
|
condition: prod
|
|
test_res_value:
|
|
value: {get_attr: [test_res, output]}
|
|
prod_resource:
|
|
value: {if: [prod, {get_resource: prod_res}, 'no_prod_res']}
|
|
test_res1_value:
|
|
value: {if: [test, {get_attr: [test_res1, output]}, 'no_test_res1']}
|
|
beijing_prod_res:
|
|
value: {if: [beijing_prod, {get_resource: beijing_prod_res},
|
|
'no_prod_res']}
|