From d25c30f85817ca0be1dccce3a1e1d90329bc9b88 Mon Sep 17 00:00:00 2001 From: jaydee Date: Tue, 12 May 2026 21:42:36 +0200 Subject: [PATCH] build --- roles/kubernetes/tasks/Rocky.yml | 126 +++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/roles/kubernetes/tasks/Rocky.yml b/roles/kubernetes/tasks/Rocky.yml index a10a79b..bc07db6 100644 --- a/roles/kubernetes/tasks/Rocky.yml +++ b/roles/kubernetes/tasks/Rocky.yml @@ -1,5 +1,22 @@ - name: Install kubernetes on Rocky 9 become: "{{ 'no' if inventory_hostname == 'nas.home.lan' else 'yes' }}" + 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: /home/jd + XDG_CONFIG_HOME: /home/jd/.config + KUBECONFIG: "{{ kubeconfig }}" block: - name: Get root mount set_fact: @@ -321,3 +338,112 @@ name: firewalld state: stopped enabled: false + # ---------------------------- + # 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: Create Helm config directory + file: + path: /home/jd/.config/helm + state: directory + mode: '0755' + when: inventory_hostname.endswith('-vm01.home.lan') + + - name: Extract Helm archive + unarchive: + src: "/tmp/{{ helm_tar }}" + dest: /tmp + remote_src: true + when: inventory_hostname.endswith('-vm01.home.lan') + + - name: Install Helm binary + copy: + src: /tmp/linux-amd64/helm + dest: "{{ helm_bin }}" + mode: '0755' + remote_src: true + when: inventory_hostname.endswith('-vm01.home.lan') + + - name: Verify Helm installation + command: helm version + environment: "{{ helm_env }}" + when: inventory_hostname.endswith('-vm01.home.lan') + + + - name: Ensure correct ownership of Helm config + file: + path: /home/jd/.kube + state: directory + owner: jd + group: jd + mode: '0700' + when: inventory_hostname.endswith('-vm01.home.lan') + + - name: Ensure correct ownership of Helm config + file: + path: /home/jd/.config/helm + state: directory + owner: jd + group: jd + mode: '0700' + when: inventory_hostname.endswith('-vm01.home.lan') + # ---------------------------- + # 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: "{{ helm_env }}" + become_user: "{{ ansible_user }}" + when: inventory_hostname.endswith('-vm01.home.lan') + + - name: Update Helm repos + command: helm repo update + environment: "{{ helm_env }}" + become_user: "{{ ansible_user }}" + when: inventory_hostname.endswith('-vm01.home.lan') + + # ---------------------------- + # 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 + values: + nfs: + server: "{{ nfs_server }}" + path: "{{ nfs_path }}" + storageClass: + name: nfs-client + defaultClass: true + kubeconfig: "{{ kubeconfig }}" + environment: "{{ helm_env }}" + become_user: "{{ ansible_user }}" + when: inventory_hostname.endswith('-vm01.home.lan') + + - name: Ensure correct ownership of Helm config + file: + path: /home/jd/.config + state: directory + owner: jd + group: jd + when: inventory_hostname.endswith('-vm01.home.lan') + + - name: Ensure correct ownership of Helm config + file: + path: /home/jd/.kube/config + state: file + owner: jd + group: jd + mode: '0600' + when: inventory_hostname.endswith('-vm01.home.lan') \ No newline at end of file