diff --git a/inventory/sample/group_vars/all.yml b/inventory/sample/group_vars/all.yml index ac0cb71b..f1559257 100644 --- a/inventory/sample/group_vars/all.yml +++ b/inventory/sample/group_vars/all.yml @@ -47,7 +47,9 @@ kube_vip_bgp_as: "64513" # Defines the AS for the BGP server kube_vip_bgp_peeraddress: "192.168.30.1" # Defines the address for the BGP peer kube_vip_bgp_peeras: "64512" # Defines the AS for the BGP peer -# apiserver_endpoint is virtual ip-address which will be configured on each master +# apiserver_endpoint is virtual ip-address which will be configured on each master. +# This must be a free, routable IP on your network (not already assigned to a host +# or service), and is used by kube-vip / MetalLB to expose the Kubernetes API. apiserver_endpoint: 192.168.30.222 # k3s_token is required masters can talk together securely diff --git a/molecule/resources/verify_from_outside/tasks/test/verify-components.yml b/molecule/resources/verify_from_outside/tasks/test/verify-components.yml index debc2989..a72285fa 100644 --- a/molecule/resources/verify_from_outside/tasks/test/verify-components.yml +++ b/molecule/resources/verify_from_outside/tasks/test/verify-components.yml @@ -219,12 +219,26 @@ namespace: metallb-system kubeconfig: "{{ kubecfg_path }}" register: metallb_info + until: metallb_info.resources | length > 0 + retries: 15 + delay: 10 loop: - { kind: Deployment, name: controller } - { kind: DaemonSet, name: speaker } loop_control: label: "{{ item.kind }}/{{ item.name }}" + - name: Fail with a clear message if MetalLB resources are missing + ansible.builtin.fail: + msg: >- + Did not find {{ item.kind | lower }} {{ item.name }} in + metallb-system. Expected MetalLB to be deployed in this + scenario (verify_lb: {{ verify_lb }}). + when: item.resources | length == 0 + loop: "{{ metallb_info.results }}" + loop_control: + label: "{{ item.item.kind }}/{{ item.item.name }}" + - name: Assert MetalLB controller and speaker use the expected image tags ansible.builtin.assert: that: diff --git a/roles/k3s_server/tasks/main.yml b/roles/k3s_server/tasks/main.yml index d0306c92..ae406e0d 100644 --- a/roles/k3s_server/tasks/main.yml +++ b/roles/k3s_server/tasks/main.yml @@ -27,7 +27,7 @@ - name: Deploy metallb manifest ansible.builtin.include_tasks: metallb.yml tags: metallb - when: kube_vip_lb_ip_range is not defined and (not cilium_bgp or cilium_iface is not defined) + when: kube_vip_lb_ip_range is not defined and (cilium_bgp is not defined or cilium_iface is not defined) - name: Deploy kube-vip manifest ansible.builtin.include_tasks: kube-vip.yml diff --git a/roles/k3s_server_post/tasks/main.yml b/roles/k3s_server_post/tasks/main.yml index 1a02d8de..dbb38dca 100644 --- a/roles/k3s_server_post/tasks/main.yml +++ b/roles/k3s_server_post/tasks/main.yml @@ -12,7 +12,7 @@ - name: Deploy metallb pool ansible.builtin.include_tasks: metallb.yml tags: metallb - when: kube_vip_lb_ip_range is not defined and (not cilium_bgp or cilium_iface is not defined) + when: kube_vip_lb_ip_range is not defined and (cilium_bgp is not defined or cilium_iface is not defined) - name: Remove tmp directory used for manifests ansible.builtin.file: