Files
ansible/roles/kubernetes_test/tasks/Rocky.yml
T
2026-05-12 21:10:40 +02:00

103 lines
2.8 KiB
YAML

- 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:
# ----------------------------
# 1. Install Helm v3
# ----------------------------
- name: Download Helm
get_url:
url: "{{ helm_url }}"
dest: "/tmp/{{ helm_tar }}"
mode: '0644'
- name: Create Helm config directory
file:
path: /home/jd/.config/helm
state: directory
mode: '0755'
- name: Extract Helm archive
unarchive:
src: "/tmp/{{ helm_tar }}"
dest: /tmp
remote_src: true
- name: Install Helm binary
copy:
src: /tmp/linux-amd64/helm
dest: "{{ helm_bin }}"
mode: '0755'
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'
# ----------------------------
# 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 }}"
- 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
values:
nfs:
server: "{{ nfs_server }}"
path: "{{ nfs_path }}"
storageClass:
name: nfs-client
defaultClass: true
kubeconfig: "{{ kubeconfig }}"
environment: "{{ helm_env }}"
- name: Ensure correct ownership of Helm config
file:
path: /home/jd/.config
state: directory
owner: jd
group: jd