Skip to content

fix: validate TLS certificate when downloading Kubernetes bundle#3900

Open
pascalbreuninger wants to merge 1 commit intomainfrom
issue/engcp-577
Open

fix: validate TLS certificate when downloading Kubernetes bundle#3900
pascalbreuninger wants to merge 1 commit intomainfrom
issue/engcp-577

Conversation

@pascalbreuninger
Copy link
Copy Markdown
Member

@pascalbreuninger pascalbreuninger commented Apr 28, 2026

What issue type does this pull request address?
/kind bugfix

What does this pull request do? Which issues does it resolve?

Adds the OSS-side wiring for an --insecure flag on the node upgrade flow:

  • vcluster node upgrade --insecure (in-pod binary)
  • vclusterctl node upgrade <node> --insecure (user-facing CLI; threaded through to the upgrade pod's command)
  • privateNodes.autoUpgrade.insecure config field for the auto-upgrade controller

All paths default to verifying TLS. Operators using a non-publicly-trusted bundle repository (most commonly the in-cluster /node/download fallback that's served by a self-signed control plane certificate) must opt in explicitly.

The actual gating in the download path lives in vcluster-pro: https://github.com/loft-sh/vcluster-pro/pull/1730

Please provide a short message that should be published in the vcluster release notes

Fixed an issue where the private-node upgrade flow skipped TLS verification when downloading the Kubernetes bundle from github.com/loft-sh/kubernetes. TLS verification is now enabled by default; pass --insecure (manual upgrade) or set privateNodes.autoUpgrade.insecure: true (auto-upgrade) when the bundle repository is served by a non-publicly-trusted CA.

What else do we need to know?

  • Behavior change for privateNodes.autoUpgrade against a self-signed control plane endpoint: auto-upgrades will fail until insecure: true is set. Worth a release-notes call-out.
  • The implementation that gates the actual TLS verification lives in vcluster-pro; this PR is the OSS wiring (struct fields, flags, pod command threading). vcluster-pro PR: https://github.com/loft-sh/vcluster-pro/pull/1730

E2E Tests

Default Test Execution

The mandatory PR suite runs automatically. Only specify additional test suites below if needed.

Additional test suites

Additional test suite(s) that will be executed before the mandatory PR suite:

none

Adds an --insecure flag to the vcluster and vclusterctl node upgrade
commands and a privateNodes.autoUpgrade.insecure config field for the
auto-upgrade controller. All paths default to verifying TLS, with
opt-in skip for environments using a self-signed bundle repository
(e.g. the in-cluster /node/download fallback).

Linear: ENGCP-577
@github-actions
Copy link
Copy Markdown

E2E Ginkgo Tests

Status Commit Run
Passed c56666b3316757e9ce511a81c88b77529d1f4bd8 View run #25069346836

Copy link
Copy Markdown
Member

@FabianKramm FabianKramm left a comment

Choose a reason for hiding this comment

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

Lets do a different approach for this

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants