ansible/roles/metallb/tasks/main.yaml

63 lines
1.9 KiB
YAML
Raw Normal View History

2021-01-09 17:54:42 +00:00
- set_fact:
2024-05-25 15:12:30 +00:00
metallb_combined_values: "{{ metallb_default_values | combine(metallb_values | default({}), recursive=true) }}"
2021-01-09 17:54:42 +00:00
- name: Deploy MetalLB
2022-07-12 13:48:14 +00:00
kubernetes.core.helm:
2021-01-09 17:54:42 +00:00
create_namespace: true
release_namespace: "{{ metallb_namespace | default('metallb-system') }}"
release_name: "{{ metallb_name | default('metallb') }}"
chart_ref: "{{ metallb_chart_ref }}"
2021-01-09 17:54:42 +00:00
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
2021-01-09 17:54:42 +00:00
- 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
2021-01-09 17:54:42 +00:00
- 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
2022-07-12 13:48:14 +00:00
- 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'