diff --git a/README.md b/README.md
index dc58781c707d8dca1c01b84f2a49196171efd459..17e86724c7d8e23d5c54795a45f787f391618d32 100644
--- a/README.md
+++ b/README.md
@@ -174,7 +174,7 @@ Note: Upstart/SysV init based OS types are not supported.
   - [kube-router](https://github.com/cloudnativelabs/kube-router) v2.0.0
   - [multus](https://github.com/k8snetworkplumbingwg/multus-cni) v3.8
   - [weave](https://github.com/weaveworks/weave) v2.8.1
-  - [kube-vip](https://github.com/kube-vip/kube-vip) v0.5.12
+  - [kube-vip](https://github.com/kube-vip/kube-vip) v0.8.0
 - Application
   - [cert-manager](https://github.com/jetstack/cert-manager) v1.13.2
   - [coredns](https://github.com/coredns/coredns) v1.11.1
diff --git a/inventory/sample/group_vars/k8s_cluster/addons.yml b/inventory/sample/group_vars/k8s_cluster/addons.yml
index 0a4eb841378d1981bd6f248a3db38ad74fc5a391..6f0342f28137757942c82fb3dead412e38837374 100644
--- a/inventory/sample/group_vars/k8s_cluster/addons.yml
+++ b/inventory/sample/group_vars/k8s_cluster/addons.yml
@@ -260,6 +260,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 69cfa4540a97b4aa7d7c8c2f3c75301ab753da2e..eaf70ab40e114ac5de207e07d32a2b3e3c12efb2 100644
--- a/roles/kubernetes/node/defaults/main.yml
+++ b/roles/kubernetes/node/defaults/main.yml
@@ -67,14 +67,16 @@ eviction_hard_control_plane: {}
 kubelet_status_update_frequency: 10s
 
 # kube-vip
-kube_vip_version: v0.5.12
+kube_vip_version: v0.8.0
 
 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,12 @@ 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_svc_leasename: plndr-svcs-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 ead73495d5cd456a1576a5a26140aa61b1f94d40..11a971e93216aaafeb89d4f873609b0891bae595 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"
diff --git a/roles/kubespray-defaults/defaults/main/download.yml b/roles/kubespray-defaults/defaults/main/download.yml
index f1c2c29e29a9f845e2a66716f995d536eda1c3b0..d75e090b2d2ca73f57010404efacbdbf701f94d8 100644
--- a/roles/kubespray-defaults/defaults/main/download.yml
+++ b/roles/kubespray-defaults/defaults/main/download.yml
@@ -285,7 +285,7 @@ external_openstack_cloud_controller_image_repo: "registry.k8s.io/provider-os/ope
 external_openstack_cloud_controller_image_tag: "v1.28.2"
 
 kube_vip_image_repo: "{{ github_image_repo }}/kube-vip/kube-vip"
-kube_vip_image_tag: v0.5.12
+kube_vip_image_tag: v0.8.0
 nginx_image_repo: "{{ docker_image_repo }}/library/nginx"
 nginx_image_tag: 1.25.2-alpine
 haproxy_image_repo: "{{ docker_image_repo }}/library/haproxy"