--- - name: tokens | copy tokens generation script copy: src: "kube-gen-token.sh" dest: "{{ kube_script_dir }}/kube-gen-token.sh" mode: 0700 run_once: yes when: inventory_hostname == groups['kube-master'][0] and gen_tokens|default(false) - name: tokens | generate tokens for master components command: "{{ kube_script_dir }}/kube-gen-token.sh {{ item[0] }}-{{ item[1] }}" environment: TOKEN_DIR: "{{ kube_token_dir }}" with_nested: - [ "system:kubectl" ] - "{{ groups['kube-master'] }}" register: gentoken_master changed_when: "'Added' in gentoken_master.stdout" notify: set secret_changed run_once: yes when: inventory_hostname == groups['kube-master'][0] and gen_tokens|default(false) - name: tokens | generate tokens for node components command: "{{ kube_script_dir }}/kube-gen-token.sh {{ item[0] }}-{{ item[1] }}" environment: TOKEN_DIR: "{{ kube_token_dir }}" with_nested: - [ 'system:kubelet' ] - "{{ groups['kube-node'] }}" register: gentoken_node changed_when: "'Added' in gentoken_node.stdout" notify: set secret_changed run_once: yes when: inventory_hostname == groups['kube-master'][0] and gen_tokens|default(false) - name: tokens | Get list of tokens from first master shell: "(find {{ kube_token_dir }} -maxdepth 1 -type f)" register: tokens_list changed_when: false when: inventory_hostname == groups['kube-master'][0] and sync_tokens|default(false) - name: tokens | Get the tokens from first master slurp: src: "{{ item }}" delegate_to: "{{groups['kube-master'][0]}}" register: slurp_tokens with_items: '{{tokens_list.stdout_lines}}' when: sync_tokens|default(false) run_once: true notify: set secret_changed - name: tokens | Copy tokens on masters copy: content: "{{ item.content|b64decode }}" dest: "{{ item.source }}" with_items: '{{slurp_tokens.results}}' when: inventory_hostname in groups['kube-master'] and sync_certs|default(false) and inventory_hostname != groups['kube-master'][0]