--- - name: "Check_certs | check if the certs have already been generated on first master" stat: path: "{{ kube_cert_dir }}/{{ item }}" delegate_to: "{{groups['kube-master'][0]}}" register: kubecert_master run_once: true with_items: >- ['ca.pem', {% for host in groups['k8s-cluster'] %} 'node-{{ host }}-key.pem' {% if not loop.last %}{{','}}{% endif %} {% endfor %}] - name: "Check_certs | Set default value for 'sync_certs', 'gen_certs', and 'secret_changed' to false" set_fact: sync_certs: false gen_certs: false secret_changed: false - name: "Check_certs | Set 'gen_certs' to true" set_fact: gen_certs: true when: "not {{ item.stat.exists }}" run_once: true with_items: "{{ kubecert_master.results }}" - name: "Check certs | check if a cert already exists" stat: path: "{{ kube_cert_dir }}/{{ item }}" register: kubecert with_items: - ca.pem - node-{{ inventory_hostname }}-key.pem - name: "Check_certs | Set 'sync_certs' to true" set_fact: sync_certs: true when: >- {%- set certs = {'sync': False} -%} {%- for host in groups['k8s-cluster'] %} {% if host == inventory_hostname %} {% if (not kubecert.results[0].stat.exists|default(False)) or (kubecert.results[1].stat.checksum|default('') != kubecert_master.results[loop.index].stat.checksum|default('')) -%} {%- set _ = certs.update({'sync': True}) -%} {% endif %} {% endif %} {%- endfor -%} {{ certs.sync }}