mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Merge pull request #64570 from liztio/force-version
Automatic merge from submit-queue (batch tested with PRs 64605, 64570). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Version mismatch is now a skippable error **What this PR does / why we need it**: Previously, kubeadm enforced the same major and minor versions as the version of kubernetes it was installing. This is still enforced by default, but now the `--force` flag can override it. This is useful for testing and other edge cases. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: Fixes #[kubeadm/877](https://github.com/kubernetes/kubeadm/issues/877) **Special notes for your reviewer**: **Release note**: ```release-note kubeadm upgrade apply can now ignore version errors with --force ```
This commit is contained in:
commit
74b224eba7
@ -118,8 +118,7 @@ func EnforceVersionPolicies(versionGetter VersionGetter, newK8sVersionStr string
|
|||||||
|
|
||||||
if kubeadmVersion.Major() > newK8sVersion.Major() ||
|
if kubeadmVersion.Major() > newK8sVersion.Major() ||
|
||||||
kubeadmVersion.Minor() > newK8sVersion.Minor() {
|
kubeadmVersion.Minor() > newK8sVersion.Minor() {
|
||||||
skewErrors.Mandatory = append(skewErrors.Mandatory, fmt.Errorf("Kubeadm version %s can only be used to upgrade to Kubernetes versions %d.%d", kubeadmVersionStr, kubeadmVersion.Major(), kubeadmVersion.Minor()))
|
skewErrors.Skippable = append(skewErrors.Skippable, fmt.Errorf("Kubeadm version %s can only be used to upgrade to Kubernetes version %d.%d", kubeadmVersionStr, kubeadmVersion.Major(), kubeadmVersion.Minor()))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Detect if the version is unstable and the user didn't allow that
|
// Detect if the version is unstable and the user didn't allow that
|
||||||
|
@ -75,7 +75,8 @@ func TestEnforceVersionPolicies(t *testing.T) {
|
|||||||
kubeadmVersion: "v1.10.3",
|
kubeadmVersion: "v1.10.3",
|
||||||
},
|
},
|
||||||
newK8sVersion: "v1.9.10",
|
newK8sVersion: "v1.9.10",
|
||||||
expectedMandatoryErrs: 2, // version must be higher than v1.10.0, can't upgrade old k8s with newer kubeadm
|
expectedMandatoryErrs: 1, // version must be higher than v1.10.0
|
||||||
|
expectedSkippableErrs: 1, // can't upgrade old k8s with newer kubeadm
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "upgrading two minor versions in one go is not supported",
|
name: "upgrading two minor versions in one go is not supported",
|
||||||
@ -96,7 +97,8 @@ func TestEnforceVersionPolicies(t *testing.T) {
|
|||||||
kubeadmVersion: "v1.12.0",
|
kubeadmVersion: "v1.12.0",
|
||||||
},
|
},
|
||||||
newK8sVersion: "v1.10.3",
|
newK8sVersion: "v1.10.3",
|
||||||
expectedMandatoryErrs: 2, // can't downgrade two minor versions, can't upgrade old k8s with newer kubeadm
|
expectedMandatoryErrs: 1, // can't downgrade two minor versions
|
||||||
|
expectedSkippableErrs: 1, // can't upgrade old k8s with newer kubeadm
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "kubeadm version must be higher than the new kube version. However, patch version skews may be forced",
|
name: "kubeadm version must be higher than the new kube version. However, patch version skews may be forced",
|
||||||
@ -187,7 +189,7 @@ func TestEnforceVersionPolicies(t *testing.T) {
|
|||||||
kubeadmVersion: "v1.11.0",
|
kubeadmVersion: "v1.11.0",
|
||||||
},
|
},
|
||||||
newK8sVersion: "v1.10.6",
|
newK8sVersion: "v1.10.6",
|
||||||
expectedMandatoryErrs: 1, // can't upgrade old k8s with newer kubeadm
|
expectedSkippableErrs: 1, // can't upgrade old k8s with newer kubeadm
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user