Browse Source

preinstall: fix checking that excluded host are cached (#11693)

- Lookup was not returning a list, making the difference filter spit out
  garbage -> query always return a list
- hostvars is a dictionnary, so convert to list before selectattr and
  map back to only get keys
pull/11695/head
Max Gautier 6 months ago
committed by GitHub
parent
commit
bf6687b032
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
1 changed files with 3 additions and 3 deletions
  1. 6
      roles/kubernetes/preinstall/tasks/0040-verify-settings.yml

6
roles/kubernetes/preinstall/tasks/0040-verify-settings.yml

@ -1,10 +1,10 @@
--- ---
- name: Stop if any host not in '--limit' does not have a fact cache - name: Stop if any host not in '--limit' does not have a fact cache
vars: vars:
uncached_hosts: "{{ (hostvars | selectattr('ansible_default_ipv4', 'undefined')).keys() }}"
excluded_hosts: "{{ hostvars.keys() | difference(lookup('inventory_hostnames', ansible_limit)) }}"
uncached_hosts: "{{ hostvars | dict2items | selectattr('value.ansible_default_ipv4', 'undefined') | map(attribute='key') }}"
excluded_hosts: "{{ hostvars.keys() | difference(query('inventory_hostnames', ansible_limit)) }}"
assert: assert:
that: uncached_hosts | intersect(excluded_hosts) == 0
that: uncached_hosts | intersect(excluded_hosts) == []
fail_msg: | fail_msg: |
Kubespray does not support '--limit' without a populated facts cache for the excluded hosts. Kubespray does not support '--limit' without a populated facts cache for the excluded hosts.
Please run the facts.yml playbook first without '--limit'. Please run the facts.yml playbook first without '--limit'.

Loading…
Cancel
Save