ansible-kubernetes-hetzner/tasks/k8s_cluster/loadbalancer/install_metallb.yml

46 lines
1.3 KiB
YAML

######################################
# Install MetalLB in cluster #
######################################
---
- name: Read metallb values
include_vars:
file: ../vars/k8s_cluster/loadbalancer/metallb.yml
- name: Create metallb namespace
k8s:
state: present
definition:
apiVersion: v1
kind: Namespace
metadata:
name: "{{ namespace }}"
annotations:
linkerd.io/inject: 'enabled'
- name: Add metallb repo
kubernetes.core.helm_repository:
name: "{{ helm.releaseName }}"
repo_url: "{{ helm.repoUrl }}"
- name: Deploy metalb from helm chart
kubernetes.core.helm:
name: "{{ helm.releaseName }}"
state: present
chart_ref: "{{ helm.chart }}"
release_namespace: "{{ namespace }}"
chart_version: "{{ helm.chartVersion }}"
update_repo_cache: "true"
values: "{{ lookup('template', '../templates/k8s_cluster/loadbalancer/metallb.yml') | from_yaml }}"
- name: Pause for 25 seconds and wait for metallb
ansible.builtin.pause:
seconds: 25
- name: Pause for 15 seconds and wait for metallb webhook
ansible.builtin.pause:
seconds: 15
- name: Deploy metallb IPAddressPool
kubernetes.core.k8s:
state: present
definition: "{{ lookup('template', '../templates/k8s_cluster/loadbalancer/metal_lb_configmap.yml.j2') | from_yaml_all }}"