kubeadm: add the --patches flag and deprecate --experimental-patches

The feature of "patches" in kubeadm has been in Alpha for a few
releases. It has not received major bug reports from users.
Deprecate the --experimental-patches flag and add --patches.

Both flags are allowed to be mixed with --config.
This commit is contained in:
Lubomir I. Ivanov 2021-06-21 21:28:15 +03:00
parent 15a60d1a19
commit a4402122b4
7 changed files with 29 additions and 9 deletions

View File

@ -568,6 +568,8 @@ func isAllowedFlag(flagName string) bool {
kubeadmcmdoptions.KubeconfigDir,
kubeadmcmdoptions.UploadCerts,
kubeadmcmdoptions.Patches,
// TODO: https://github.com/kubernetes/kubeadm/issues/2046 remove in 1.23
kubeadmcmdoptions.ExperimentalPatches,
"print-join-command", "rootfs", "v", "log-file")
if allowedFlags.Has(flagName) {
return true

View File

@ -144,5 +144,9 @@ const (
EtcdUpgrade = "etcd-upgrade"
// Patches flag sets the folder where kubeadm component patches are stored
Patches = "experimental-patches"
Patches = "patches"
// ExperimentalPatches (DEPRECATED) is the same as Patches
// TODO: https://github.com/kubernetes/kubeadm/issues/2046 remove in 1.23
ExperimentalPatches = "experimental-patches"
)

View File

@ -91,12 +91,16 @@ func AddKubeadmOtherFlags(flagSet *pflag.FlagSet, rootfsPath *string) {
// AddPatchesFlag adds the --patches flag to the given flagset
func AddPatchesFlag(fs *pflag.FlagSet, patchesDir *string) {
fs.StringVar(patchesDir, Patches, *patchesDir, `Path to a directory that contains files named `+
`"target[suffix][+patchtype].extension". For example, `+
`"kube-apiserver0+merge.yaml" or just "etcd.json". `+
`"patchtype" can be one of "strategic", "merge" or "json" and they match the patch formats `+
`supported by kubectl. The default "patchtype" is "strategic". "extension" must be either `+
`"json" or "yaml". "suffix" is an optional string that can be used to determine `+
`which patches are applied first alpha-numerically.`,
)
const usage = `Path to a directory that contains files named ` +
`"target[suffix][+patchtype].extension". For example, ` +
`"kube-apiserver0+merge.yaml" or just "etcd.json". ` +
`"target" can be one of "kube-apiserver", "kube-controller-manager", "kube-scheduler", "etcd". ` +
`"patchtype" can be one of "strategic", "merge" or "json" and they match the patch formats ` +
`supported by kubectl. The default "patchtype" is "strategic". "extension" must be either ` +
`"json" or "yaml". "suffix" is an optional string that can be used to determine ` +
`which patches are applied first alpha-numerically.`
fs.StringVar(patchesDir, Patches, *patchesDir, usage)
// TODO: https://github.com/kubernetes/kubeadm/issues/2046 remove in 1.23
fs.StringVar(patchesDir, ExperimentalPatches, *patchesDir, usage)
fs.MarkDeprecated(ExperimentalPatches, "This flag will be removed in a future version. Please use '--patches' instead.")
}

View File

@ -101,6 +101,8 @@ func getControlPlanePhaseFlags(name string) []string {
options.KubernetesVersion,
options.ImageRepository,
options.Patches,
// TODO: https://github.com/kubernetes/kubeadm/issues/2046 remove in 1.23
options.ExperimentalPatches,
options.DryRun,
}
if name == "all" || name == kubeadmconstants.KubeAPIServer {

View File

@ -44,6 +44,8 @@ func getControlPlaneJoinPhaseFlags(name string) []string {
}
if name == "etcd" || name == "all" {
flags = append(flags, options.Patches)
// TODO: https://github.com/kubernetes/kubeadm/issues/2046 remove in 1.23
flags = append(flags, options.ExperimentalPatches)
}
if name != "mark-control-plane" {
flags = append(flags, options.APIServerAdvertiseAddress)

View File

@ -79,6 +79,8 @@ func getControlPlanePreparePhaseFlags(name string) []string {
options.TokenStr,
options.CertificateKey,
options.Patches,
// TODO: https://github.com/kubernetes/kubeadm/issues/2046 remove in 1.23
options.ExperimentalPatches,
}
case "download-certs":
flags = []string{
@ -124,6 +126,8 @@ func getControlPlanePreparePhaseFlags(name string) []string {
options.CfgPath,
options.ControlPlane,
options.Patches,
// TODO: https://github.com/kubernetes/kubeadm/issues/2046 remove in 1.23
options.ExperimentalPatches,
}
default:
flags = []string{}

View File

@ -40,6 +40,8 @@ func NewControlPlane() workflow.Phase {
options.CertificateRenewal,
options.EtcdUpgrade,
options.Patches,
// TODO: https://github.com/kubernetes/kubeadm/issues/2046 remove in 1.23
options.ExperimentalPatches,
},
}
return phase