OpenStack-如何使用来自OS::Heat::ResourceGroup的%index%迭代comma_dined



我有一个comma_dined_list,它表示固定ip的列表,在我的OS::Heat::ResourceGroup中,我希望每个节点都能根据其当前索引获得一个固定ip。

我有以下热模板(我只粘贴了相关的):

my_fixed_ips:
type: comma_delimited_list
resources:
MyResource:
type: OS::Heat::ResourceGroup
properties:
count: { get_param: my_node_count }
resource_def:
type: MyTemplate.yaml
properties:
fixed_ip: { get_param: [ my_fixed_ips, %index% ] }
name: myName%index%

当我运行命令时:

openstack堆栈创建TomerProtected-e Environment.env-t圣殿骑士.yaml-f yaml

我收到错误:找到无法启动任何令牌的字符"%">

我试图将index_var设置为其他值(index而不是%index%),但仍然无法从comma_dined_list中获得任何特定值。

我的问题是-如何使用来自OS::Heat::ResourceGroup的%index%来迭代comma_dined_list?

有什么想法吗?

更新:

我自己找到了一个解决方案,但这并不让我高兴:

我已将index_var更改为:index将comma_dined_list和当前索引从此模板传递给MyTemplate.yaml。从MyTemplate.yaml,我可以从comma_dined_list:中获得特定值

fixed_ips: [ { "ip_address": { get_param: [ my_fixed_ips, get_param: index ] } } ]

但大多数方法都是从操作系统::热量::资源组中实现的

尝试使用%index%'的insetad。一个对我有用的例子:

heat_template_version: rocky
parameters:
my_node_count:
type: number
default: 2
my_fixed_ips:
type: comma_delimited_list
default: [10.2.0.1, 10.2.0.2]
my_name_param:
type: string
default: "myname"
resources:
MyResource:
type: OS::Heat::ResourceGroup
properties:
count: { get_param: my_node_count }
resource_def:
type: MyTemplate.yaml
properties:
fixed_ip: { get_param: [ my_fixed_ips, '%index%' ] }
name:
list_join:
- ''
- [ { get_param: my_name_param } , '%index%' ]

相关内容

  • 没有找到相关文章

最新更新