Skip to content

kube-vip: Upgrade to v1.2.3 and expose newly added config options - #13463

Open
ThisIsQasim wants to merge 1 commit into
kubernetes-sigs:masterfrom
ThisIsQasim:bump-kube-vip
Open

kube-vip: Upgrade to v1.2.3 and expose newly added config options#13463
ThisIsQasim wants to merge 1 commit into
kubernetes-sigs:masterfrom
ThisIsQasim:bump-kube-vip

Conversation

@ThisIsQasim

@ThisIsQasim ThisIsQasim commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

What type of PR is this?
/kind feature

What this PR does / why we need it:
Upgrades the default kube-vip version from 1.0.3 to 1.2.3, which includes the fix for leader election permanently deadlocking after ordinary leadership loss (kube-vip/kube-vip#1650), and exposes the config surface kube-vip added between v1.0.3 and v1.2.3 as new Kubespray variables: kube_vip_instance_name, kube_vip_allow_interface_not_up, kube_vip_dhcp_backoff_attempts, kube_vip_lose_leadership_enabled/kube_vip_lose_leadership_timeout_seconds, kube_vip_bgp_attach_ip_to_interface, kube_vip_control_plane_health_check_*, kube_vip_preserve_vip_on_leadership_loss, and kube_vip_debounce_time. All new variables are opt-in and default to kube-vip's own behavior when unset.

Which issue(s) this PR fixes:
Fixes #

Special notes for your reviewer:
Env var names for the new options were verified against kube-vip's config_envvar.go and config_environment.go at v1.2.3, not just config_generator.go — the generator reuses the vip_loseleadership env var name for both the boolean flag and the timeout value, which looks like a bug on kube-vip's side, so this PR emits the two distinct names (vip_loseleadership / vip_loseleadership_timeout_seconds) that the reader side actually parses.

Does this PR introduce a user-facing change?:

Upgrade kube-vip from 1.0.3 to 1.2.3 and add new optional variables: `kube_vip_instance_name`, `kube_vip_allow_interface_not_up`, `kube_vip_dhcp_backoff_attempts`, `kube_vip_lose_leadership_enabled`, `kube_vip_lose_leadership_timeout_seconds`, `kube_vip_bgp_attach_ip_to_interface`, `kube_vip_control_plane_health_check_address`/`_period_seconds`/`_timeout_seconds`/`_failure_threshold`/`_ca_path`, `kube_vip_preserve_vip_on_leadership_loss`, and `kube_vip_debounce_time`

🤖 Generated with Claude Code

@kubernetes-prow kubernetes-prow Bot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/feature Categorizes issue or PR as related to a new feature. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Sep 3, 2026
@linux-foundation-easycla

linux-foundation-easycla Bot commented Sep 3, 2026

Copy link
Copy Markdown

CLA Signed
The committers listed above are authorized under a signed CLA.

  • ✅ login: ThisIsQasim / name: ThisIsQasim (7fe12a4)

@kubernetes-prow

Copy link
Copy Markdown
Contributor

Hi @ThisIsQasim. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Tip

We noticed you've done this a few times! Consider joining the org to skip this step and gain /lgtm and other bot rights. We recommend asking approvers on your previous PRs to sponsor you.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@kubernetes-prow kubernetes-prow Bot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Sep 3, 2026
@kubernetes-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: ThisIsQasim
Once this PR has been reviewed and has the lgtm label, please assign mzaian for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubernetes-prow kubernetes-prow Bot added the cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. label Sep 3, 2026
@kubernetes-prow kubernetes-prow Bot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Sep 3, 2026
@kubernetes-prow kubernetes-prow Bot added do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. release-note Denotes a PR that will be considered when it comes time to generate release notes. and removed release-note Denotes a PR that will be considered when it comes time to generate release notes. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Sep 3, 2026
@kubernetes-prow kubernetes-prow Bot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Sep 3, 2026
@yankay

yankay commented Sep 4, 2026

Copy link
Copy Markdown
Member

/ok-to-test

@kubernetes-prow kubernetes-prow Bot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Sep 4, 2026
@yankay
yankay requested a lite review from Copilot September 4, 2026 06:35

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The current truthiness-based Jinja conditionals combined with defaults like 0/false make it impossible to pass explicit falsy values for new options, limiting the intended config surface.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Upgrades Kubespray’s bundled kube-vip version to v1.2.3 and extends the kube-vip static pod manifest/template + docs to expose newly added kube-vip configuration knobs as Kubespray variables.

Changes:

  • Bump default kube-vip version from 1.0.3 to 1.2.3 (downloads + README version list).
  • Add new kube-vip variables in role defaults and emit corresponding kube-vip environment variables in the static pod manifest when configured.
  • Document new BGP-related options (including control-plane health check settings).
File summaries
File Description
roles/kubespray_defaults/defaults/main/download.yml Updates default kube-vip version used for image tagging.
roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2 Adds conditional env var emission for newly supported kube-vip settings.
roles/kubernetes/node/defaults/main.yml Introduces new kube-vip variables (defaults + inline descriptions).
README.md Updates documented kube-vip version in the “ANSIBLE MANAGED BLOCK” list.
docs/ingress/kube-vip.md Adds documentation/examples for new kube-vip BGP health-check options.
Review details
  • Files reviewed: 5/5 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread roles/kubernetes/node/defaults/main.yml Outdated
Comment on lines +64 to +70
kube_vip_instance_name:
kube_vip_interface:
kube_vip_services_interface:
kube_vip_allow_interface_not_up: false
kube_vip_cidr: 32
kube_vip_dns_mode: first
kube_vip_dhcp_backoff_attempts: 0
Comment on lines +45 to +48
{% if kube_vip_dhcp_backoff_attempts %}
- name: dhcp_backoff_attempts
value: {{ kube_vip_dhcp_backoff_attempts | string | to_json }}
{% endif %}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay now?

@kubernetes-prow kubernetes-prow Bot removed the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Sep 4, 2026
@kubernetes-prow kubernetes-prow Bot added the cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. label Sep 4, 2026
Bump kube_vip_version from 1.0.3 to 1.2.3, which includes the fix for
leader election permanently deadlocking after ordinary leadership loss
(kube-vip#1650) and drops the legacy iptables egress-cleanup path.

Also expose the config surface kube-vip added between v1.0.3 and
v1.2.3 that Kubespray didn't have variables for yet: instance_name,
allow_interface_not_up, dhcp_backoff_attempts, lose_leadership(_timeout_seconds),
bgp_attach_ip_to_interface, control_plane_health_check_*,
preserve_vip_on_leadership_loss, and debounce_time. All remain opt-in
and default to kube-vip's own behavior when unset.

Signed-off-by: ThisIsQasim <18313886+ThisIsQasim@users.noreply.github.com>
@kubernetes-prow kubernetes-prow Bot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Sep 4, 2026
@ThisIsQasim

Copy link
Copy Markdown
Contributor Author

/retest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants