Browse Source
Fix dynamic groups definition when using --limit (#11577 )
Using the hosts directive at the play level prevent those tasks from
being run when using --limit and the group in question is not part of
the limit (ex: running scale.yml on new worker nodes only)
Instead, run on all hosts, and for each group, partition between that
group and '_' (generic group name which is not used; using an empty
string as the group is not supported by ansible.builtin.group_by)
Reported-by: asteppat <asteppat@cisco.com>
pull/11597/head
Max Gautier
1 month ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with
19 additions and
40 deletions
playbooks/boilerplate.yml
@ -6,50 +6,29 @@
# - to ensure we keep compatibility with old style group names
# - to ensure we keep compatibility with old style group names
# - to reduce inventory boilerplate (defining parent groups / empty groups)
# - to reduce inventory boilerplate (defining parent groups / empty groups)
- name : Add kube-master nodes to kube_control_plane
hosts : kube-master
- name : Define groups for legacy less structured inventories
hosts : all
gather_facts : false
gather_facts : false
tags : always
tags : always
tasks:
tasks:
- name : Add nodes to kube_control_plane group
- name : Match needed groups by their old names or definition
vars:
group_mappings:
kube_control_plane:
- kube-master
kube_node:
- kube-node
calico_rr:
- calico-rr
no_floating:
- no -floating
k8s_cluster:
- kube_node
- kube_control_plane
- calico_rr
group_by:
group_by:
key : 'kube_control_plane'
- name : Add kube-node nodes to kube_node
hosts : kube-node
gather_facts : false
tags : always
tasks:
- name : Add nodes to kube_node group
group_by:
key : 'kube_node'
- name : Add calico-rr nodes to calico_rr
hosts : calico-rr
gather_facts : false
tags : always
tasks:
- name : Add nodes to calico_rr group
group_by:
key : 'calico_rr'
- name : Define k8s_cluster group
hosts : kube_node:kube_control_plane:calico_rr
gather_facts : false
tags : always
tasks:
- name : Add nodes to k8s_cluster group
group_by:
key : 'k8s_cluster'
- name : Add no-floating nodes to no_floating
hosts : no -floating
gather_facts : false
tags : always
tasks:
- name : Add nodes to no-floating group
group_by:
key : 'no_floating'
key : "{{ (group_names | intersect(item.value) | length > 0) | ternary(item.key, '_all') }}"
loop : "{{ group_mappings | dict2items }}"
- name : Install bastion ssh config
- name : Install bastion ssh config
hosts : bastion[0]
hosts : bastion[0]