diff --git a/roles/kubernetes_test/tasks/Rocky.yml b/roles/kubernetes_test/tasks/Rocky.yml index b7a962f..51cbbfe 100644 --- a/roles/kubernetes_test/tasks/Rocky.yml +++ b/roles/kubernetes_test/tasks/Rocky.yml @@ -1,78 +1,89 @@ - 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 + vars: + helm_version: "v3.15.4" + helm_tar: "helm-{{ helm_version }}-linux-amd64.tar.gz" + helm_url: "https://get.helm.sh/{{ helm_tar }}" + + helm_bin: /usr/local/bin/helm + + kubeconfig: /home/jd/.kube/config + + nfs_server: "192.168.77.106" + nfs_path: "/qda_1" + + helm_env: + PATH: /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin + HOME: /tmp/helm + XDG_CONFIG_HOME: /tmp/helm/.config + KUBECONFIG: "{{ kubeconfig }}" + + block: + + # ---------------------------- + # 1. Install Helm v3 + # ---------------------------- + - name: Download Helm + get_url: + url: "{{ helm_url }}" + dest: "/tmp/{{ helm_tar }}" 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 + unarchive: + src: "/tmp/{{ helm_tar }}" dest: /tmp remote_src: true - when: inventory_hostname.endswith('-vm01.home.lan') - - name: Create Helm working directory - file: - path: /tmp/helm - state: directory + + - name: Install Helm binary + copy: + src: /tmp/linux-amd64/helm + dest: "{{ helm_bin }}" mode: '0755' - - name: Prepare Helm directories + remote_src: true + + - name: Verify Helm installation + command: helm version + environment: "{{ helm_env }}" + + # ---------------------------- + # 2. Prepare Helm config dir + # ---------------------------- + - name: Create Helm config directory 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 + # ---------------------------- + # 3. Add NFS Helm repo + # ---------------------------- + - name: Add NFS Subdir External Provisioner repo 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') + environment: "{{ helm_env }}" + - name: Update Helm repos + command: helm repo update + environment: "{{ helm_env }}" + + # ---------------------------- + # 4. Install NFS provisioner + # ---------------------------- - 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 - + path: "{{ nfs_path }}" storageClass: name: nfs-client defaultClass: true - - environment: - HOME: /tmp/helm - PATH: /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin - become: true - when: inventory_hostname.endswith('-vm01.home.lan') \ No newline at end of file + kubeconfig: "{{ kubeconfig }}" + environment: "{{ helm_env }}" \ No newline at end of file