- 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