###################################### # 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 }}"