У меня есть ресурс экземпляра вдоль этих линий:Как распространять количество экземпляров в зонах доступности в режиме обогрева?
masters:
type: OS::Heat::ResourceGroup
properties:
count: { get_param: num_masters }
resource_def:
type: heat_stack_server.yaml
properties:
name:
str_replace:
template: cluster_id-k8s_type-%index%
params:
cluster_id: { get_param: cluster_id }
k8s_type: master
cluster_env: { get_param: cluster_env }
cluster_id: { get_param: cluster_id }
type: master
image: { get_param: master_image }
flavor: { get_param: master_flavor }
key_name: { get_resource: keypair }
net: { get_resource: net }
subnet: { get_resource: subnet }
secgrp:
- { get_resource: master-secgrp }
- { get_resource: node-secgrp }
floating_network: { get_param: external_net }
net_name:
str_replace:
template: openshift-ansible-cluster_id-net
params:
cluster_id: { get_param: cluster_id }
depends_on:
- interface
Это создает num_masters
. Теперь я хочу гарантировать, что эти мастера будут созданы в разных зонах доступности (так что, когда один из них не работает, другой будет продолжать работать).
Скажите, у меня есть 3 AZ и num_masters == 5
. Как их распространять, так что зона 1 содержит узлы 1 и 4, zone2 - 2 и 5 и т. Д.?
У Ansible есть этот объект loop.cycle, где вы могли бы переходить список вариантов снова и снова. Любые идеи, как это сделать в ОС?
Если тепло поддерживает некоторые основные математические функции, такие как функция мод, нет необходимости повторять AZ. Вместо этого индекс может быть текущим индексом mod number_of_azs. –
В этом случае это может быть проще: вы просто указываете название своей зоны и заполняете номер зоны как '' 'index mod az_number''' – Undespairable