From 29fd3d3c0f037cf636236095056e375074ce1dd4 Mon Sep 17 00:00:00 2001 From: richard Date: Sat, 16 Aug 2025 17:01:02 -0400 Subject: [PATCH] Install MetalLB into cluster --- ansible-5/roles/prod.k3s/defaults/main.yml | 5 ++ .../roles/prod.k3s/files/metallb/values.yaml | 0 .../prod.k3s/tasks/deployments/metallb.yaml | 48 +++++++++++++++++++ ansible-5/roles/prod.k3s/tasks/main.yml | 5 ++ 4 files changed, 58 insertions(+) create mode 100644 ansible-5/roles/prod.k3s/files/metallb/values.yaml create mode 100644 ansible-5/roles/prod.k3s/tasks/deployments/metallb.yaml diff --git a/ansible-5/roles/prod.k3s/defaults/main.yml b/ansible-5/roles/prod.k3s/defaults/main.yml index 01081d2..44fc111 100644 --- a/ansible-5/roles/prod.k3s/defaults/main.yml +++ b/ansible-5/roles/prod.k3s/defaults/main.yml @@ -112,3 +112,8 @@ apps: enabled: false namespace: backstage state: present + + metallb: + enabled: true + namespace: metallb-system + state: present \ No newline at end of file diff --git a/ansible-5/roles/prod.k3s/files/metallb/values.yaml b/ansible-5/roles/prod.k3s/files/metallb/values.yaml new file mode 100644 index 0000000..e69de29 diff --git a/ansible-5/roles/prod.k3s/tasks/deployments/metallb.yaml b/ansible-5/roles/prod.k3s/tasks/deployments/metallb.yaml new file mode 100644 index 0000000..e6cf1b9 --- /dev/null +++ b/ansible-5/roles/prod.k3s/tasks/deployments/metallb.yaml @@ -0,0 +1,48 @@ +--- +# deployment tasks for MetalLB +# https://metallb.io/installation/ + +#- name: Create a namespace for funkwhale +# k8s: +# kubeconfig: "/etc/rancher/k3s/k3s.yaml" +# name: "{{apps.funkwhale.namespace}}" +# api_version: v1 +# kind: Namespace +# state: "{{apps.funkwhale.state}}" +# become: true +# +#- name: create persistent volume resources +# kubernetes.core.k8s: +# kubeconfig: "/etc/rancher/k3s/k3s.yaml" +# state: "{{apps.funkwhale.state}}" +# definition: "{{ lookup('template', item) | from_yaml }}" +# loop: +# - funkwhale/pv.yaml +# - funkwhale/pv-claim.yaml +# become: true + + +- name: Install MetalLB chart + block: + - name: Add MetaLB chart helm repo + local_action: + module: kubernetes.core.helm_repository + name: metallb + repo_url: https://metallb.github.io/metallb + + - name: load variables files/metallb/values.yaml + ansible.builtin.include_vars: + file: files/metallb/values.yaml + name: release_values + + - name: Install MetalLB Release + local_action: + module: kubernetes.core.helm + release_state: "{{apps.metallb.state}}" + name: funkwhale + namespace: "{{apps.metallb.namespace}}" + create_namespace: yes + update_repo_cache: True + chart_ref: metallb/metallb + values: "{{release_values}}" + wait: true diff --git a/ansible-5/roles/prod.k3s/tasks/main.yml b/ansible-5/roles/prod.k3s/tasks/main.yml index b26909c..88fd392 100644 --- a/ansible-5/roles/prod.k3s/tasks/main.yml +++ b/ansible-5/roles/prod.k3s/tasks/main.yml @@ -54,6 +54,11 @@ - name: deploy backstage include_tasks: deployments/backstage.yaml when: apps.backstage.enabled + +- name: deploy metallb + include_tasks: deployments/metallb.yaml + when: apps.metallb.enabled + #----------------------------------------------------- #- include_tasks: mariadb.yaml #