--- - name: Main playbook for Kubernetes cluster hosts: all become: true # # # # @author Stéphane Gratias (2023). # # # Use hostname node and control_plane to join the kubernetes cluster pre_tasks: - name: >- Show target servers -> Hostname : OS - IP debug: msg: "{{ ansible_hostname }} : {{ ansible_distribution }} {{ ansible_distribution_version }} - {{ ansible_default_ipv4.address }}" tags: - always - test - name: Add the overlay and br_netfilter modules and make sure it is loaded after reboots community.general.modprobe: name: "{{ item }}" state: present persistent: present loop: - overlay - br_netfilter tags: - kubernetes - name: Set ipv4 forwarding on kubernetes node only ansible.posix.sysctl: name: net.ipv4.ip_forward value: '1' sysctl_set: true when: kubernetes_role == 'node' tags: - kubernetes roles: - { role: geerlingguy.containerd, tags: [kubernetes, containerd] } - { role: geerlingguy.kubernetes, tags: kubernetes } tasks: # labeled worker - name: Labeled workers from master command: "kubectl label node {{ item }} node-role.kubernetes.io/worker={{ item }}" loop: "{{ groups['workers'] }}" when: - kubernetes_role == 'control_plane' - groups['workers'] is defined tags: - kubernetes - alias - name: Add kubectl alias and completion ansible.builtin.lineinfile: path: "{{ item.path }}" regexp: "{{ item.regexp }}" state: "{{ item.state|default('present') }}" line: "{{ item.line|default(omit) }}" loop: "{{ kubernetes_alias_bashrc }}" tags: - kubernetes - alias - name: create kubernetes app base dir file: path: "{{ item }}" state: directory mode: 0755 owner: root group: root with_items: - "{{ kubernetes_tree_base_dir | last }}" - "{{ kubernetes_tree_base_dir | last }}/{{ kubernetes_service }}" tags: - test #kubectl label node node-role.kubernetes.io/=