63 lines
1.9 KiB
YAML
63 lines
1.9 KiB
YAML
- set_fact:
|
|
metallb_combined_values: "{{ metallb_default_values | combine(metallb_values | default({}), recursive=true) }}"
|
|
|
|
- name: Deploy MetalLB
|
|
kubernetes.core.helm:
|
|
create_namespace: true
|
|
release_namespace: "{{ metallb_namespace | default('metallb-system') }}"
|
|
release_name: "{{ metallb_name | default('metallb') }}"
|
|
chart_ref: "{{ metallb_chart_ref }}"
|
|
chart_version: "{{ metallb_version | default(omit) }}"
|
|
release_values: "{{ metallb_combined_values | from_yaml }}"
|
|
wait: true
|
|
|
|
- name: Check if kube-proxy ConfigMap exist
|
|
check_mode: false
|
|
shell: |
|
|
kubectl get configmap kube-proxy -n kube-system
|
|
register: _kube_proxy_configmap
|
|
failed_when: false
|
|
changed_when: false
|
|
|
|
- name: Check for strict arp
|
|
check_mode: false
|
|
shell: |
|
|
kubectl get configmap kube-proxy -n kube-system -o yaml | \
|
|
sed -e "s/strictARP: false/strictARP: true/" | \
|
|
kubectl diff -f - -n kube-system
|
|
register: check_strict_arp_status
|
|
when:
|
|
- _kube_proxy_configmap.rc == 0
|
|
- metallb_strict_arp
|
|
changed_when: check_strict_arp_status.rc != 0
|
|
|
|
- name: Apply strict arp
|
|
shell: |
|
|
kubectl get configmap kube-proxy -n kube-system -o yaml | \
|
|
sed -e "s/strictARP: false/strictARP: true/" | \
|
|
kubectl apply -f - -n kube-system \
|
|
&& kubectl -n kube-system delete pods --selector=k8s-app=kube-proxy
|
|
when:
|
|
- _kube_proxy_configmap.rc == 0
|
|
- metallb_strict_arp
|
|
- metallb_strict_arp_status.changed
|
|
|
|
- name: Apply MetalLB L2 definitions
|
|
k8s:
|
|
state: present
|
|
definition:
|
|
"{{ item.value }}"
|
|
wait: true
|
|
loop: "{{ metallb_bgp_definitions | dict2items }}"
|
|
when: metallb_advertisement_type == 'L2'
|
|
|
|
- name: Apply MetalLB BGP definitions
|
|
k8s:
|
|
state: present
|
|
definition:
|
|
"{{ item.value }}"
|
|
wait: true
|
|
loop: "{{ metallb_bgp_definitions | dict2items }}"
|
|
when: metallb_advertisement_type == 'BGP'
|
|
|