From 6321501c08dfd505bce496aafbc6bcb13623a102 Mon Sep 17 00:00:00 2001 From: jaydee Date: Wed, 27 May 2026 00:32:00 +0200 Subject: [PATCH] build --- roles/kubernetes/tasks/Debian.yml | 178 +++++++++++++++++++++++++++--- 1 file changed, 161 insertions(+), 17 deletions(-) diff --git a/roles/kubernetes/tasks/Debian.yml b/roles/kubernetes/tasks/Debian.yml index b782cbc..fafa589 100644 --- a/roles/kubernetes/tasks/Debian.yml +++ b/roles/kubernetes/tasks/Debian.yml @@ -175,23 +175,23 @@ enabled: yes state: started - # Optional UFW configuration - - name: Ensure UFW is installed - apt: - name: ufw - state: present - when: inventory_hostname == 'ubuntu24-vm01.home.lan' + # # Optional UFW configuration + # - name: Ensure UFW is installed + # apt: + # name: ufw + # state: present + # when: inventory_hostname == 'ubuntu24-vm01.home.lan' - - name: Allow Kubernetes ports - ufw: - rule: allow - port: "{{ item }}" - proto: tcp - loop: - - 6443 - - 2379:2380 - - 10250 - when: inventory_hostname == 'ubuntu24-vm01.home.lan' + # - name: Allow Kubernetes ports + # ufw: + # rule: allow + # port: "{{ item }}" + # proto: tcp + # loop: + # - 6443 + # - 2379:2380 + # - 10250 + # when: inventory_hostname == 'ubuntu24-vm01.home.lan' - name: Configure containerd for kubeadm copy: @@ -267,4 +267,148 @@ command: "{{ hostvars['debian12-vm01.home.lan'].worker_join_cmd }}" args: creates: /etc/kubernetes/kubelet.conf - when: not inventory_hostname.endswith('-vm01.home.lan') \ No newline at end of file + when: not inventory_hostname.endswith('-vm01.home.lan') + + - name: get repository + git: + repo: 'https://github.com/ahmetb/kubectx' + dest: /opt/kubectx + when: inventory_hostname.endswith('-vm01.home.lan') + + - name: Create symbolic links for kubectx and kubens + file: + src: /opt/kubectx/{{ item }} + dest: /usr/local/bin/{{ item }} + state: link + loop: + - kubectx + - kubens + when: inventory_hostname.endswith('-vm01.home.lan') + + - name: Install Additional packages + apt: + name: + - nfs-utils + - tmux + - telnet + state: present + + - name: Ensure aliases exist in user's .bashrc + lineinfile: + path: "/home/{{ user_name }}/.bashrc" + line: "alias {{ item.key }}='{{ item.value }}'" + state: present + create: yes + loop: "{{ aliases | dict2items }}" + when: inventory_hostname.endswith('-vm01.home.lan') + + + # ---------------------------- + # 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