58 lines
1.6 KiB
YAML
58 lines
1.6 KiB
YAML
---
|
|
|
|
- name: Namespace for MetalLB
|
|
delegate_to: "{{ kubectl_host }}"
|
|
kubernetes.core.k8s:
|
|
kubeconfig: "{{ kubeconfig }}"
|
|
resource_definition:
|
|
kind: Namespace
|
|
metadata:
|
|
name: metallb-system
|
|
labels:
|
|
pod-security.kubernetes.io/audit: privileged
|
|
pod-security.kubernetes.io/enforce: privileged
|
|
pod-security.kubernetes.io/warn: privileged
|
|
|
|
- name: Helm add MetalLB repo
|
|
delegate_to: "{{ kubectl_host }}"
|
|
run_once: true
|
|
kubernetes.core.helm_repository:
|
|
name: metallb
|
|
repo_url: "https://metallb.github.io/metallb"
|
|
|
|
- name: Helm deploy MetalLB
|
|
delegate_to: "{{ kubectl_host }}"
|
|
kubernetes.core.helm:
|
|
kubeconfig: "{{ kubeconfig }}"
|
|
chart_ref: metallb/metallb
|
|
release_name: metallb
|
|
release_namespace: metallb-system
|
|
create_namespace: false
|
|
wait: true
|
|
timeout: "30m"
|
|
# https://github.com/metallb/metallb/blob/main/charts/metallb/values.yaml
|
|
|
|
- name: Addresss pool for MetalLB
|
|
delegate_to: "{{ kubectl_host }}"
|
|
kubernetes.core.k8s:
|
|
kubeconfig: "{{ kubeconfig }}"
|
|
resource_definition:
|
|
apiVersion: metallb.io/v1beta1
|
|
kind: IPAddressPool
|
|
metadata:
|
|
name: all-nodes
|
|
namespace: metallb-system
|
|
spec:
|
|
addresses: "{{ ingress_ips | product(['/32']) | map('join') | list }}"
|
|
|
|
- name: L2Advertisement for MetalLB
|
|
delegate_to: "{{ kubectl_host }}"
|
|
kubernetes.core.k8s:
|
|
kubeconfig: "{{ kubeconfig }}"
|
|
resource_definition:
|
|
apiVersion: metallb.io/v1beta1
|
|
kind: L2Advertisement
|
|
metadata:
|
|
name: advertisement
|
|
namespace: metallb-system
|