问题描述
heat_template_version: 2017-02-24 ...... ...... ...... conditions: port_security_enabled: equals: - { get_param: port_security_enabled } - "true" resources: port: type: OS::Neutron::Port properties: admin_state_up: true network_id: { get_param: internal_net } port_security_enabled: { get_param: port_security_enabled } security_groups: { get_param: security_group }
@H_502_3@我想创建一个条件,因此,如果我设置“ port_security_enabled = false”,则安全组将不适用于port.properties。如果我设置“ port_security_enabled = true”,则将应用安全组。
请帮助我
解决方法
这可能很好:
,security_groups: {if: [port_security_enabled,[{get_resource: security_group}],[]]}
我找到了解决方法。
我创建了两个端口1,其中一个是安全组,另一个是没有安全组。
conditions: port_security_disable: {equals : [{get_param: port_security_enabled},"disabled"]} resources: port1: type: OS::Neutron::Port properties: admin_state_up: true network_id: { get_param: internal_net } security_groups: - { get_param: security_group } port2: type: OS::Neutron::Port properties: admin_state_up: true network_id: { get_param: internal_net } port_security_enabled: false instance_floatingip: type: OS::Neutron::FloatingIP properties: floating_network_id: { get_param: public_network_id } port_id: {if: ["port_security_disable",{ get_resource: port2 },{ get_resource: port1 } ]} instance: properties: networks: - port: {if: ["port_security_disable",{ get_resource: port1 } ]}
我知道它越来越复杂。但我没有找到最简单的解决方案。