我有一个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%' ]