diff --git a/README.md b/README.md index dc58781c707..17e86724c7d 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 0a4eb841378..6f0342f2813 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 69cfa4540a9..eaf70ab40e1 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 ead73495d5c..11a971e9321 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 f1c2c29e29a..d75e090b2d2 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"