46 lines
1.3 KiB
YAML
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 }}" |