在 openstack heat 模板中加入变量

在 openstack heat 模板中加入变量

假设我想根据两个变量来命名一个资源,因此我有类似的东西:

heat_template_version:2013-05-23

描述:创建网络

参数:
  客户端代码:
    类型:字符串
    描述:4 个字符的客户代码。将用于实例命名
  项目代码:
    类型:字符串
    描述:3个字符的项目代码

现在我想根据客户和项目创建名称的资源:

资源:
  测试:
    类型:OS::Neutron::Net
    特性:
      名称:{get_param:client_code}{get_param:project_code}

创建资源时出现解析错误。有什么办法可以实现这一点吗?还是需要使用预脚本来生成模板?

答案1

我找到了一个使用“list_join”的解决方案:

heat_template_version: 2013-05-23

  int_network:
    type: OS::Neutron::Net
    properties:
    name:
       list_join: ['-', [ {get_param: tenant}, 'net']]

答案2

我找到了一个解决方案str_replace。我的代码如下所示:

heat_template_version: 2013-05-23

description: Create network with

parameters:
  client_code:
    type: string
    description: 4 character customer code. Will be used for instance naming
  project_code:
    type: string
    description: 3 character project code

resources:
  test:
    type: OS::Neutron::Net
    properties:
      name:
        str_replace:
        template: cust%-proj%
        params:
          "cust%": { get_param: client_code } 
          "proj%": { get_param: project_code }

相关内容