【问题标题】:Openstack HEAT condition for resource properties资源属性的 Openstack HEAT 条件
【发布时间】:2018-11-20 21:14:06
【问题描述】:

“条件 (..) 它们可以与资源部分中的资源和资源属性相关联 (..)” - 正如 openstack 官方文档所说,我可以做到这一点。但附加示例不包含这些带有“资源属性”的内容。

我有我的例子,当用户可以将参数设置为不创建端口 2 并且不附加端口 2(因为端口 2 不存在):

parameters:
  global_port2_create:
    description: Do you want eth1 (port2)
    type: string
    default: true

conditions:
  create_port2: {equals : [{get_param: global_port2_create}, "true"]}

resources:
  node_port1:
    type: OS::Neutron::Port
    properties:
      network_id: {get_param: global_port1_net_id }
      fixed_ips:
        - subnet_id: {get_param: global_port1_net_id }
        - ip_address: {get_param: node_port1_ip }
      security_groups: {get_param: global_port1_security_groups_ids}
  node_port2:
    type: OS::Neutron::Port
    condition: create_port2
    properties:
      network_id: {get_param: global_port_net_id }
      fixed_ips:
        - subnet_id: {get_param: global_port2_net_id }
        - ip_address: {get_param: node5_port2_ip }
      security_groups: {get_param: global_port2_security_groups_ids}
  node5_server:
    type: OS::Nova::Server
    depends_on: [ node5_port1, node5_port2 ]
    properties:
      name: some_name
      image: { get_param: global_image }
      availability_zone: some_az
      networks:
        - port: { get_resource: node5_port1 }
        - port: { get_resource: node5_port2 }  #How to use a condition here?

我知道,我可以使用两个端口创建一个 ResourceGroup 并对其进行迭代,但我不想要这个分辨率。 也许是这样?

      networks:
        - port: { get_resource: node5_port1 }
        - port:
          condition: create_port2
          get_resource: node5_port2

任何人有任何想法如何做到这一点?

【问题讨论】:

  • 您好,您找到实现此目的的方法了吗?我实际上正在为完全相同的用例寻找解决方案。
  • @Lapin:不。永远找不到任何解决方案。

标签: openstack openstack-heat


【解决方案1】:

我有一个类似的用例并找到了解决方案。但是,如果这仍然是一个问题,请告别可读性:

      networks: {if: [ "create_port2", [port: { get_resource: node5_port1 }, port: { get_resource: node5_port2 }], [port: { get_resource: node5_port1 }]}

你也可以这样写:

      networks:
        if: 
        - "create_port2"
        - [port: { get_resource: node5_port1 }, port: { get_resource: node5_port2 }]
        - [port: { get_resource: node5_port1 }]

甚至:

      networks:
        if: 
        - "create_port2"
        - - port: { get_resource: node5_port1 }
          - port: { get_resource: node5_port2 }
        - - port: { get_resource: node5_port1 }

选择你的毒药!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 2021-05-01
    • 2022-06-10
    • 1970-01-01
    相关资源
    最近更新 更多