Files
a13labs.infra/ansible/roles/microk8s/tasks/loadbalancer/metallb.yaml
T

52 lines
1.4 KiB
YAML

- name: MetalLB | Copy manifest files to host
ansible.builtin.get_url:
url: "https://raw.githubusercontent.com/metallb/metallb/v{{ metallb_version }}/config/manifests/metallb-native.yaml"
dest: "{{ k8s_etc }}/metallb.yaml"
mode: "0600"
- name: MetalLB | Apply manifests
environment:
PATH: "{{ k8s_venv }}/bin:{{ ansible_env.PATH }}"
vars:
ansible_python_interpreter: "{{ k8s_venv }}/bin/python"
kubernetes.core.k8s:
state: present
kubeconfig: "{{ k8s_kubeconfig }}"
src: "{{ k8s_etc }}/metallb.yaml"
wait: true
- name: MetalLB | Create IPAddressPool
environment:
PATH: "{{ k8s_venv }}/bin:{{ ansible_env.PATH }}"
vars:
ansible_python_interpreter: "{{ k8s_venv }}/bin/python"
kubernetes.core.k8s:
state: present
kubeconfig: "{{ k8s_kubeconfig }}"
wait: true
definition:
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: metallb-system
namespace: metallb-system
spec:
addresses:
- "{{ lb_ips }}"
- name: MetalLB | Create L2Advertisement
environment:
PATH: "{{ k8s_venv }}/bin:{{ ansible_env.PATH }}"
vars:
ansible_python_interpreter: "{{ k8s_venv }}/bin/python"
kubernetes.core.k8s:
state: present
kubeconfig: "{{ k8s_kubeconfig }}"
wait: true
definition:
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: example
namespace: metallb-system