- name: Install kubernetes on Rocky 9 become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}" block: - name: Remove Helm v4 if present ansible.builtin.file: path: /usr/local/bin/helm state: absent become: true - name: Download Helm v3 archive ansible.builtin.get_url: url: https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz dest: /tmp/helm-v3.15.4-linux-amd64.tar.gz mode: '0644' when: inventory_hostname.endswith('-vm01.home.lan') - name: Extract Helm archive ansible.builtin.unarchive: src: /tmp/helm-v3.15.4-linux-amd64.tar.gz dest: /tmp remote_src: true when: inventory_hostname.endswith('-vm01.home.lan') - name: Create Helm working directory file: path: /tmp/helm state: directory mode: '0755' - name: Prepare Helm directories file: path: /tmp/helm/.config/helm state: directory mode: '0755' - name: Install Helm v3 binary ansible.builtin.copy: src: /tmp/linux-amd64/helm dest: /usr/local/bin/helm mode: '0755' remote_src: true environment: HOME: /tmp/helm XDG_CONFIG_HOME: /tmp/helm KUBECONFIG: /home/jd/.kube/config become: true when: inventory_hostname.endswith('-vm01.home.lan') - name: Add NFS provisioner Helm repository kubernetes.core.helm_repository: name: nfs-subdir-external-provisioner repo_url: https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/ environment: PATH: /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin HOME: /tmp/helm XDG_CONFIG_HOME: /tmp/helm/.config KUBECONFIG: /home/jd/.kube/config when: inventory_hostname.endswith('-vm01.home.lan') - name: Install NFS Subdir External Provisioner kubernetes.core.helm: name: nfs-storage chart_ref: nfs-subdir-external-provisioner/nfs-subdir-external-provisioner release_namespace: kube-system create_namespace: true kubeconfig: /home/{{ ansible_user }}/.kube/config values: nfs: server: "{{ nfs_server }}" path: /qda_1 storageClass: name: nfs-client defaultClass: true environment: HOME: /tmp/helm become: false when: inventory_hostname.endswith('-vm01.home.lan')