From 537891a3807f3155ea5424d7cb73e09b6cf99960 Mon Sep 17 00:00:00 2001
From: Jorge Isnardo Altamirano <jisnardo88@gmail.com>
Date: Thu, 2 May 2024 16:37:49 +0200
Subject: [PATCH] Update kube-vip manifests to v0.8.0

---
 .../sample/group_vars/k8s_cluster/addons.yml  |  4 ++++
 roles/kubernetes/node/defaults/main.yml       |  4 ++++
 .../templates/manifests/kube-vip.manifest.j2  | 20 ++++++++++++++++++-
 3 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/inventory/sample/group_vars/k8s_cluster/addons.yml b/inventory/sample/group_vars/k8s_cluster/addons.yml
index bf0588dda..50a5938f3 100644
--- a/inventory/sample/group_vars/k8s_cluster/addons.yml
+++ b/inventory/sample/group_vars/k8s_cluster/addons.yml
@@ -259,6 +259,10 @@ kube_vip_enabled: false
 #   port: 6443
 # kube_vip_interface: eth0
 # kube_vip_services_enabled: false
+#kube_vip_dns_mode: first
+#kube_vip_cp_detect: false
+#kube_vip_leasename: plndr-cp-lock
+#kube_vip_enable_node_labeling: false
 
 # Node Feature Discovery
 node_feature_discovery_enabled: false
diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml
index cc1b2701f..02ce46032 100644
--- a/roles/kubernetes/node/defaults/main.yml
+++ b/roles/kubernetes/node/defaults/main.yml
@@ -73,8 +73,10 @@ kube_vip_arp_enabled: false
 kube_vip_interface:
 kube_vip_services_interface:
 kube_vip_cidr: 32
+kube_vip_dns_mode: first
 kube_vip_controlplane_enabled: false
 kube_vip_ddns_enabled: false
+kube_vip_cp_detect: false
 kube_vip_services_enabled: false
 kube_vip_leader_election_enabled: "{{ kube_vip_arp_enabled }}"
 kube_vip_bgp_enabled: false
@@ -88,9 +90,11 @@ kube_vip_address:
 kube_vip_enableServicesElection: false
 kube_vip_lb_enable: false
 kube_vip_lb_fwdmethod: local
+kube_vip_leasename: plndr-cp-lock
 kube_vip_leaseduration: 5
 kube_vip_renewdeadline: 3
 kube_vip_retryperiod: 1
+kube_vip_enable_node_labeling: false
 
 # Requests for load balancer app
 loadbalancer_apiserver_memory_requests: 32M
diff --git a/roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2 b/roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2
index ead73495d..11a971e93 100644
--- a/roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2
+++ b/roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2
@@ -1,4 +1,4 @@
-# Inspired by https://github.com/kube-vip/kube-vip/blob/v0.5.11/pkg/kubevip/config_generator.go#L13
+# Inspired by https://github.com/kube-vip/kube-vip/blob/v0.8.0/pkg/kubevip/config_generator.go#L103
 apiVersion: v1
 kind: Pod
 metadata:
@@ -16,6 +16,8 @@ spec:
       value: {{ kube_vip_arp_enabled | string | to_json }}
     - name: port
       value: {{ kube_apiserver_port | string | to_json }}
+    - name: vip_nodename
+      value: {{ inventory_hostname }}
 {% if kube_vip_interface %}
     - name: vip_interface
       value: {{ kube_vip_interface | string | to_json }}
@@ -28,6 +30,10 @@ spec:
     - name: vip_cidr
       value: {{ kube_vip_cidr | string | to_json }}
 {% endif %}
+{% if kube_vip_dns_mode %}
+    - name: dns_mode
+      value: {{ kube_vip_dns_mode | string | to_json }}
+{% endif %}
 {% if kube_vip_controlplane_enabled %}
     - name: cp_enable
       value: "true"
@@ -35,11 +41,17 @@ spec:
       value: kube-system
     - name: vip_ddns
       value: {{ kube_vip_ddns_enabled | string | to_json }}
+    - name: cp_detect
+      value: {{ kube_vip_cp_detect | string | to_json }}
 {% endif %}
 {% if kube_vip_services_enabled %}
     - name: svc_enable
       value: "true"
 {% endif %}
+{% if kube_vip_svc_leasename %}
+    - name: svc_leasename
+      value: {{ kube_vip_svc_leasename | string | to_json }}
+{% endif %}
 {% if kube_vip_enableServicesElection %}
     - name: svc_election
       value: "true"
@@ -47,6 +59,8 @@ spec:
 {% if kube_vip_leader_election_enabled %}
     - name: vip_leaderelection
       value: "true"
+    - name: vip_leasename
+      value: {{ kube_vip_leasename | string | to_json }}
     - name: vip_leaseduration
       value: {{ kube_vip_leaseduration | string | to_json }}
     - name: vip_renewdeadline
@@ -54,6 +68,10 @@ spec:
     - name: vip_retryperiod
       value: {{ kube_vip_retryperiod | string | to_json }}
 {% endif %}
+{% if kube_vip_enable_node_labeling %}
+    - name: enable_node_labeling
+      value: {{ kube_vip_enable_node_labeling | string | to_json }}
+{% endif %}
 {% if kube_vip_bgp_enabled %}
     - name: bgp_enable
       value: "true"
-- 
GitLab