From 0c266f07105e47da4d09d3218cd35c75f036b6a1 Mon Sep 17 00:00:00 2001 From: Gereon Vey Date: Sun, 28 Jan 2024 16:49:39 +0100 Subject: [PATCH] mend contract --- .github/ISSUE_TEMPLATE.md | 7 +++++-- inventory/sample/group_vars/all.yml | 12 ++++++++---- molecule/ipv6/overrides.yml | 2 +- molecule/single_node/overrides.yml | 2 +- roles/k3s_server/tasks/main.yml | 13 +++++++++---- roles/k3s_server/templates/kubevip.yaml.j2 | 6 +++--- roles/k3s_server_post/tasks/main.yml | 10 +++++++--- roles/k3s_server_post/tasks/metallb.yml | 5 ----- roles/k3s_server_post/templates/metallb.crs.j2 | 8 ++++---- 9 files changed, 38 insertions(+), 27 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index bb1b36a3a..7c7e855e3 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -51,11 +51,14 @@ extra_agent_args: "" kube_vip_tag_version: "" +service_lb_type: "" +kube_vip_cloud_provider_tag_version: "" +kube_vip_lb_ip_range: "" + metal_lb_speaker_tag_version: "" metal_lb_controller_tag_version: "" -service_lb_type: "" -service_lb_ip_range: "" +metal_lb_ip_range: "" ``` ### Hosts diff --git a/inventory/sample/group_vars/all.yml b/inventory/sample/group_vars/all.yml index 0541dc40b..8139a2c3a 100644 --- a/inventory/sample/group_vars/all.yml +++ b/inventory/sample/group_vars/all.yml @@ -56,9 +56,15 @@ extra_agent_args: >- # image tag for kube-vip kube_vip_tag_version: "v0.6.4" +# loadbalancer to use for services: "kube-vip" or "metallb" +service_lb_type: "metallb" + # tag for kube-vip-cloud-provider manifest kube_vip_cloud_provider_tag_version: "main" +# kube-vip ip range for load balancer +kube_vip_lb_ip_range: "192.168.30.80-192.168.30.90" + # metallb type frr or native metal_lb_type: "native" @@ -74,10 +80,8 @@ metal_lb_mode: "layer2" metal_lb_speaker_tag_version: "v0.13.12" metal_lb_controller_tag_version: "v0.13.12" -# loadbalancer to use for services: "kube-vip" or "metallb" -service_lb_type: "metallb" -# ip range for service load balancer -service_lb_ip_range: "192.168.30.80-192.168.30.90" +# metallb ip range for load balancer +metal_lb_ip_range: "192.168.30.80-192.168.30.90" # Only enable if your nodes are proxmox LXC nodes, make sure to configure your proxmox nodes # in your hosts.ini file. diff --git a/molecule/ipv6/overrides.yml b/molecule/ipv6/overrides.yml index f89eb60fe..44bbc07a8 100644 --- a/molecule/ipv6/overrides.yml +++ b/molecule/ipv6/overrides.yml @@ -23,7 +23,7 @@ apiserver_endpoint: fdad:bad:ba55::333 # We give MetalLB address space for both IPv4 and IPv6 - service_lb_ip_range: + metal_lb_ip_range: - fdad:bad:ba55::1b:0/112 - 192.168.123.80-192.168.123.90 diff --git a/molecule/single_node/overrides.yml b/molecule/single_node/overrides.yml index e889632ce..799275efd 100644 --- a/molecule/single_node/overrides.yml +++ b/molecule/single_node/overrides.yml @@ -13,4 +13,4 @@ # Make sure that our IP ranges do not collide with those of the default scenario apiserver_endpoint: "192.168.30.223" - service_lb_ip_range: "192.168.30.91-192.168.30.99" + metal_lb_ip_range: "192.168.30.91-192.168.30.99" diff --git a/roles/k3s_server/tasks/main.yml b/roles/k3s_server/tasks/main.yml index 8482678eb..f2bef9a8a 100644 --- a/roles/k3s_server/tasks/main.yml +++ b/roles/k3s_server/tasks/main.yml @@ -26,10 +26,15 @@ - name: Deploy vip manifest include_tasks: vip.yml -- name: Deploy manifest for {{ service_lb_type }} - include_tasks: "{{ service_lb_type }}.yml" - tags: - - service_lb +- name: Deploy metallb manifest + include_tasks: metallb.yml + tags: metallb + when: service_lb_type | default('metallb') == 'metallb' + +- name: Deploy kube-vip manifest + include_tasks: kube-vip.yml + tags: kubevip + when: service_lb_type | default('metallb') == 'kube-vip' - name: Init cluster inside the transient k3s-init service command: diff --git a/roles/k3s_server/templates/kubevip.yaml.j2 b/roles/k3s_server/templates/kubevip.yaml.j2 index e0dc781d7..547df12e6 100644 --- a/roles/k3s_server/templates/kubevip.yaml.j2 +++ b/roles/k3s_server/templates/kubevip.yaml.j2 @@ -5,10 +5,10 @@ metadata: name: kubevip namespace: kube-system data: -{% if service_lb_ip_range is string %} -{# service_lb_ip_range was used in the legacy way: single string instead of a list #} +{% if kube_vip_lb_ip_range is string %} +{# kube_vip_lb_ip_range was used in the legacy way: single string instead of a list #} {# => transform to list with single element #} -{% set service_lb_ip_range = [service_lb_ip_range] %} +{% set kube_vip_lb_ip_range = [kube_vip_lb_ip_range] %} {% endif %} {% for range in service_lb_ip_range %} range-global: {{ range }} diff --git a/roles/k3s_server_post/tasks/main.yml b/roles/k3s_server_post/tasks/main.yml index 42d870f45..56570d663 100644 --- a/roles/k3s_server_post/tasks/main.yml +++ b/roles/k3s_server_post/tasks/main.yml @@ -6,6 +6,10 @@ - name: Deploy metallb pool include_tasks: metallb.yml - tags: - - service_lb - when: service_lb_type == "metallb" + tags: metallb + when: service_lb_type | default('metallb') == 'metallb' + +- name: Remove tmp directory used for manifests + file: + path: /tmp/k3s + state: absent diff --git a/roles/k3s_server_post/tasks/metallb.yml b/roles/k3s_server_post/tasks/metallb.yml index 64f9a8b49..07a23b0f2 100644 --- a/roles/k3s_server_post/tasks/metallb.yml +++ b/roles/k3s_server_post/tasks/metallb.yml @@ -120,8 +120,3 @@ - IPAddressPool - BGPPeer - BGPAdvertisement - -- name: Remove tmp directory used for manifests - file: - path: /tmp/k3s - state: absent diff --git a/roles/k3s_server_post/templates/metallb.crs.j2 b/roles/k3s_server_post/templates/metallb.crs.j2 index b52006dd5..562f561fa 100644 --- a/roles/k3s_server_post/templates/metallb.crs.j2 +++ b/roles/k3s_server_post/templates/metallb.crs.j2 @@ -5,12 +5,12 @@ metadata: namespace: metallb-system spec: addresses: -{% if service_lb_ip_range is string %} -{# service_lb_ip_range was used in the legacy way: single string instead of a list #} +{% if metal_lb_ip_range is string %} +{# metal_lb_ip_range was used in the legacy way: single string instead of a list #} {# => transform to list with single element #} -{% set service_lb_ip_range = [service_lb_ip_range] %} +{% set metal_lb_ip_range = [metal_lb_ip_range] %} {% endif %} -{% for range in service_lb_ip_range %} +{% for range in metal_lb_ip_range %} - {{ range }} {% endfor %}