mirror of https://github.com/kubernetes/kops.git
Merge pull request #13652 from hakman/upgrade_cluster_k8s-version
Allow overriding the kubernetes version when upgrading the cluster
This commit is contained in:
commit
19aafca270
|
|
@ -58,6 +58,8 @@ type UpgradeClusterOptions struct {
|
|||
ClusterName string
|
||||
Yes bool
|
||||
Channel string
|
||||
// KubernetesVersion is the k8s version to use for upgrade.
|
||||
KubernetesVersion string
|
||||
}
|
||||
|
||||
func NewCmdUpgradeCluster(f *util.Factory, out io.Writer) *cobra.Command {
|
||||
|
|
@ -80,6 +82,8 @@ func NewCmdUpgradeCluster(f *util.Factory, out io.Writer) *cobra.Command {
|
|||
cmd.Flags().BoolVarP(&options.Yes, "yes", "y", false, "Apply update")
|
||||
cmd.Flags().StringVar(&options.Channel, "channel", "", "Channel to use for upgrade")
|
||||
cmd.RegisterFlagCompletionFunc("channel", completeChannel)
|
||||
cmd.Flags().StringVar(&options.KubernetesVersion, "kubernetes-version", "", "Kubernetes version to use for upgrade")
|
||||
cmd.RegisterFlagCompletionFunc("kubernetes-version", completeKubernetesVersion)
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
|
@ -149,12 +153,21 @@ func RunUpgradeCluster(ctx context.Context, f *util.Factory, out io.Writer, opti
|
|||
}
|
||||
}
|
||||
|
||||
proposedKubernetesVersion := kopsapi.RecommendedKubernetesVersion(channel, kops.Version)
|
||||
var proposedKubernetesVersion *semver.Version
|
||||
if options.KubernetesVersion != "" {
|
||||
proposedKubernetesVersion, err = kopsutil.ParseKubernetesVersion(options.KubernetesVersion)
|
||||
if err != nil {
|
||||
klog.Warningf("error parsing KubernetesVersion %q", cluster.Spec.KubernetesVersion)
|
||||
}
|
||||
}
|
||||
if proposedKubernetesVersion == nil {
|
||||
proposedKubernetesVersion = kopsapi.RecommendedKubernetesVersion(channel, kops.Version)
|
||||
}
|
||||
|
||||
// We won't propose a downgrade
|
||||
// TODO: What if a kubernetes version is bad?
|
||||
if currentKubernetesVersion != nil && proposedKubernetesVersion != nil && currentKubernetesVersion.GT(*proposedKubernetesVersion) {
|
||||
klog.Warningf("cluster version %q is greater than recommended version %q", *currentKubernetesVersion, *proposedKubernetesVersion)
|
||||
klog.Warningf("cluster version %q is greater than the desired version %q", *currentKubernetesVersion, *proposedKubernetesVersion)
|
||||
proposedKubernetesVersion = currentKubernetesVersion
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -25,9 +25,10 @@ kops upgrade cluster [CLUSTER] [flags]
|
|||
### Options
|
||||
|
||||
```
|
||||
--channel string Channel to use for upgrade
|
||||
-h, --help help for cluster
|
||||
-y, --yes Apply update
|
||||
--channel string Channel to use for upgrade
|
||||
-h, --help help for cluster
|
||||
--kubernetes-version string Kubernetes version to use for upgrade
|
||||
-y, --yes Apply update
|
||||
```
|
||||
|
||||
### Options inherited from parent commands
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ kOps will directly manage the Karpenter Provisioner resources. Read more about h
|
|||
|
||||
* Adds support for Rocky Linux 8
|
||||
|
||||
* Adds support for overriding the Kubernetes version when upgrading a cluster by using the `--kubernetes-version` flag.
|
||||
|
||||
* The minimum version for the Terraform AWS Provider has been bumped to 4.0.0 to address the deprecation of the aws_s3_bucket_object resource and its replacement with the aws_s3_object resource. Such resources will be destroyed and recreated without downtime when applying the changes.
|
||||
|
||||
* ARM64 support for nvidia device driver. Nvidia nodes on ARM64 requires Ubuntu 22.04 AMIs.
|
||||
|
|
|
|||
Loading…
Reference in New Issue