Skip to content

Conversation

kke
Copy link
Contributor

@kke kke commented Aug 12, 2025

#835

When upgrading, validate that the new version does not violate kube's version skew policy or upgrade path requirements.

Waits for kube-proxy new version roll-out after controller upgrades before starting worker upgrades.

@kke kke added the enhancement New feature or request label Aug 12, 2025
return nil
}

if !delta.Consecutive {
Copy link
Member

Choose a reason for hiding this comment

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

What does Consecutive mean here, X+1 minor version?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

1.29.3 => 1.30.0 ✅
1.29.3 => 1.31.0 ❌
1.29.3 => 2.0.0 ✅
1.29.3 => 2.1.0 ❌

...but

1.29.3 => 1.30.1 ❌ (this is probably too strict and should be allowed)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Allowing jumps of minor+2 (1.29 => 1.31) would be ok by kube I suppose.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Confused 🤷‍♂️

kubeadm docs state explicitly that upgrading more than one minor at a time is not supported.

It seems it's kube-apiserver, controller manager and schedular that do not support upgrades that skip minors.

In theory, workers could lag 3 minors behind but I don't see how that would happen with k0sctl unless you add previously unmanaged nodes and proceed to upgrade from 1.28 to 1.31.

Major upgrades are not supported at all, but I guess that is something for the far future.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Essentially it boils down to what k0s supports.

@kke
Copy link
Contributor Author

kke commented Aug 21, 2025

It could make sense to wait for workers to get the new kube-proxy after control plane is upgraded before proceeding to upgrade them.

@kke kke changed the title Validate version consicutiveness on upgrade Validate version consecutiveness on upgrade Aug 22, 2025
@kke kke changed the title Validate version consecutiveness on upgrade Validate version skew policy compliance on cluster upgrades Aug 29, 2025
@kke kke force-pushed the version-skew-validation branch from ec260b7 to ccd0855 Compare September 3, 2025 10:12
kke added 2 commits September 11, 2025 11:19
Signed-off-by: Kimmo Lehto <klehto@mirantis.com>
Signed-off-by: Kimmo Lehto <klehto@mirantis.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants