--- # tasks file for kubernetes - name: Load required kernel modules become: true community.general.modprobe: name: "{{ item }}" loop: "{{ required_kernel_modules }}" - name: Persist kernel modules on boot become: true ansible.builtin.copy: dest: /etc/modules-load.d/k8s.conf content: "{{ required_kernel_modules | join('\n') }}" owner: root group: root mode: '0644' - name: Configure required sysctl params for Kubernetes become: true ansible.builtin.copy: dest: /etc/sysctl.d/kubernetes.conf content: "{{ k8s_sysctl_params | join('\n') }}" owner: root group: root mode: '0644' - name: Apply sysctl params without reboot become: true ansible.builtin.command: sysctl --system - name: Manage firewall (ufw) become: true when: ansible_os_family == "Debian" block: - name: Create Kubernetes service definition (ufw) ansible.builtin.template: dest: /etc/ufw/applications.d/kubernetes owner: root group: root mode: '0644' src: kubernetes-ufw-service.xml.j2 - name: Manage firewall (firewalld) become: true when: ansible_os_family == "RedHat" block: - name: Create Kubernetes service definition (firewalld) ansible.builtin.template: dest: /etc/firewalld/services/kubernetes.xml owner: root group: root mode: '0644' src: kubernetes-firewalld-service.xml.j2 - name: Install via apt become: true when: ansible_os_family == "Debian" block: - name: Add Kubernetes apt key ansible.builtin.apt_key: url: "https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version }}/deb/Release.key" state: present - name: Add Kubernetes repository ansible.builtin.apt_repository: repo: "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" state: present filename: kubernetes - name: Update apt cache ansible.builtin.apt: update_cache: true - name: Install via dnf (may not work) become: true when: ansible_os_family == "RedHat" block: - name: Add repo using key from URL (dnf) ansible.builtin.yum_repository: name: kubernetes description: "Kubernetes repository" baseurl: https://pkgs.k8s.io/core:/stable:/{{ kubernetes_version }}/rpm/ gpgcheck: true gpgkey: https://pkgs.k8s.io/core:/stable:/{{ kubernetes_version }}/rpm/repodata/repomd.xml.key - name: Update dnf cache ansible.builtin.dnf: update_cache: true - name: Install Kubernetes packages become: true ansible.builtin.package: name: "{{ item }}" update_cache: true state: present loop: "{{ kubernetes_packages }}"