From 183a26f85383837aa7cdc7c78c81a101ce023968 Mon Sep 17 00:00:00 2001 From: Dave Chen Date: Mon, 10 Oct 2022 11:34:06 +0800 Subject: [PATCH] kubeadm: Inherit `dry-run` flags for each sub-phases - The sub-phases like `kubeadm reset phase cleanup-node` which could be run independently would be able to support the `dry-run` mode as well. - Consistent with the sub-phases which support the `dry-run` mode already, such as `kubeadm init phase control-plane apiserver`. - Prepare for the day when each of those sub-phases could be run independently. Signed-off-by: Dave Chen --- cmd/kubeadm/app/cmd/phases/init/addons.go | 1 + cmd/kubeadm/app/cmd/phases/init/bootstraptoken.go | 1 + cmd/kubeadm/app/cmd/phases/init/certs.go | 1 + cmd/kubeadm/app/cmd/phases/init/etcd.go | 1 + cmd/kubeadm/app/cmd/phases/init/kubeconfig.go | 1 + cmd/kubeadm/app/cmd/phases/init/kubelet.go | 1 + cmd/kubeadm/app/cmd/phases/init/kubeletfinalize.go | 4 ++-- cmd/kubeadm/app/cmd/phases/init/markcontrolplane.go | 1 + cmd/kubeadm/app/cmd/phases/init/preflight.go | 1 + cmd/kubeadm/app/cmd/phases/init/uploadcerts.go | 1 + cmd/kubeadm/app/cmd/phases/init/uploadconfig.go | 1 + cmd/kubeadm/app/cmd/phases/join/controlplanejoin.go | 3 +++ cmd/kubeadm/app/cmd/phases/join/controlplaneprepare.go | 4 ++++ cmd/kubeadm/app/cmd/phases/join/kubelet.go | 1 + cmd/kubeadm/app/cmd/phases/join/preflight.go | 1 + cmd/kubeadm/app/cmd/phases/reset/cleanupnode.go | 1 + cmd/kubeadm/app/cmd/phases/reset/preflight.go | 1 + cmd/kubeadm/app/cmd/phases/reset/removeetcdmember.go | 1 + 18 files changed, 24 insertions(+), 2 deletions(-) diff --git a/cmd/kubeadm/app/cmd/phases/init/addons.go b/cmd/kubeadm/app/cmd/phases/init/addons.go index 47fa070ae69..e76a3bdff98 100644 --- a/cmd/kubeadm/app/cmd/phases/init/addons.go +++ b/cmd/kubeadm/app/cmd/phases/init/addons.go @@ -127,6 +127,7 @@ func getAddonPhaseFlags(name string) []string { options.KubeconfigPath, options.KubernetesVersion, options.ImageRepository, + options.DryRun, } if name == "all" || name == "kube-proxy" { flags = append(flags, diff --git a/cmd/kubeadm/app/cmd/phases/init/bootstraptoken.go b/cmd/kubeadm/app/cmd/phases/init/bootstraptoken.go index b89001063ad..34fbd284610 100644 --- a/cmd/kubeadm/app/cmd/phases/init/bootstraptoken.go +++ b/cmd/kubeadm/app/cmd/phases/init/bootstraptoken.go @@ -56,6 +56,7 @@ func NewBootstrapTokenPhase() workflow.Phase { options.CfgPath, options.KubeconfigPath, options.SkipTokenPrint, + options.DryRun, }, Run: runBootstrapToken, } diff --git a/cmd/kubeadm/app/cmd/phases/init/certs.go b/cmd/kubeadm/app/cmd/phases/init/certs.go index ab7ee9450d9..7b8684c03db 100644 --- a/cmd/kubeadm/app/cmd/phases/init/certs.go +++ b/cmd/kubeadm/app/cmd/phases/init/certs.go @@ -123,6 +123,7 @@ func getCertPhaseFlags(name string) []string { options.CertificatesDir, options.CfgPath, options.KubernetesVersion, + options.DryRun, } if name == "all" || name == "apiserver" { flags = append(flags, diff --git a/cmd/kubeadm/app/cmd/phases/init/etcd.go b/cmd/kubeadm/app/cmd/phases/init/etcd.go index 8c09b3049cc..2dc6814e9cf 100644 --- a/cmd/kubeadm/app/cmd/phases/init/etcd.go +++ b/cmd/kubeadm/app/cmd/phases/init/etcd.go @@ -72,6 +72,7 @@ func getEtcdPhaseFlags() []string { options.CfgPath, options.ImageRepository, options.Patches, + options.DryRun, } return flags } diff --git a/cmd/kubeadm/app/cmd/phases/init/kubeconfig.go b/cmd/kubeadm/app/cmd/phases/init/kubeconfig.go index e239926eb5e..2c009d42088 100644 --- a/cmd/kubeadm/app/cmd/phases/init/kubeconfig.go +++ b/cmd/kubeadm/app/cmd/phases/init/kubeconfig.go @@ -105,6 +105,7 @@ func getKubeConfigPhaseFlags(name string) []string { options.CfgPath, options.KubeconfigDir, options.KubernetesVersion, + options.DryRun, } if name == "all" || name == kubeadmconstants.KubeletKubeConfigFileName { flags = append(flags, diff --git a/cmd/kubeadm/app/cmd/phases/init/kubelet.go b/cmd/kubeadm/app/cmd/phases/init/kubelet.go index 204004b28e6..f3938b17cae 100644 --- a/cmd/kubeadm/app/cmd/phases/init/kubelet.go +++ b/cmd/kubeadm/app/cmd/phases/init/kubelet.go @@ -49,6 +49,7 @@ func NewKubeletStartPhase() workflow.Phase { options.NodeCRISocket, options.NodeName, options.Patches, + options.DryRun, }, } } diff --git a/cmd/kubeadm/app/cmd/phases/init/kubeletfinalize.go b/cmd/kubeadm/app/cmd/phases/init/kubeletfinalize.go index a8c3d4aeae4..77a3487f70b 100644 --- a/cmd/kubeadm/app/cmd/phases/init/kubeletfinalize.go +++ b/cmd/kubeadm/app/cmd/phases/init/kubeletfinalize.go @@ -51,14 +51,14 @@ func NewKubeletFinalizePhase() workflow.Phase { { Name: "all", Short: "Run all kubelet-finalize phases", - InheritFlags: []string{options.CfgPath, options.CertificatesDir}, + InheritFlags: []string{options.CfgPath, options.CertificatesDir, options.DryRun}, Example: kubeletFinalizePhaseExample, RunAllSiblings: true, }, { Name: "experimental-cert-rotation", Short: "Enable kubelet client certificate rotation", - InheritFlags: []string{options.CfgPath, options.CertificatesDir}, + InheritFlags: []string{options.CfgPath, options.CertificatesDir, options.DryRun}, Run: runKubeletFinalizeCertRotation, }, }, diff --git a/cmd/kubeadm/app/cmd/phases/init/markcontrolplane.go b/cmd/kubeadm/app/cmd/phases/init/markcontrolplane.go index b47696c06de..e1dcacfeca6 100644 --- a/cmd/kubeadm/app/cmd/phases/init/markcontrolplane.go +++ b/cmd/kubeadm/app/cmd/phases/init/markcontrolplane.go @@ -44,6 +44,7 @@ func NewMarkControlPlanePhase() workflow.Phase { InheritFlags: []string{ options.NodeName, options.CfgPath, + options.DryRun, }, Run: runMarkControlPlane, } diff --git a/cmd/kubeadm/app/cmd/phases/init/preflight.go b/cmd/kubeadm/app/cmd/phases/init/preflight.go index 080a8c45393..ed6a1758fd6 100644 --- a/cmd/kubeadm/app/cmd/phases/init/preflight.go +++ b/cmd/kubeadm/app/cmd/phases/init/preflight.go @@ -47,6 +47,7 @@ func NewPreflightPhase() workflow.Phase { InheritFlags: []string{ options.CfgPath, options.IgnorePreflightErrors, + options.DryRun, }, } } diff --git a/cmd/kubeadm/app/cmd/phases/init/uploadcerts.go b/cmd/kubeadm/app/cmd/phases/init/uploadcerts.go index 857fb5d00b4..dd24307a13d 100644 --- a/cmd/kubeadm/app/cmd/phases/init/uploadcerts.go +++ b/cmd/kubeadm/app/cmd/phases/init/uploadcerts.go @@ -41,6 +41,7 @@ func NewUploadCertsPhase() workflow.Phase { options.UploadCerts, options.CertificateKey, options.SkipCertificateKeyPrint, + options.DryRun, }, } } diff --git a/cmd/kubeadm/app/cmd/phases/init/uploadconfig.go b/cmd/kubeadm/app/cmd/phases/init/uploadconfig.go index fc758beff9b..88f31cd964e 100644 --- a/cmd/kubeadm/app/cmd/phases/init/uploadconfig.go +++ b/cmd/kubeadm/app/cmd/phases/init/uploadconfig.go @@ -97,6 +97,7 @@ func getUploadConfigPhaseFlags() []string { return []string{ options.CfgPath, options.KubeconfigPath, + options.DryRun, } } diff --git a/cmd/kubeadm/app/cmd/phases/join/controlplanejoin.go b/cmd/kubeadm/app/cmd/phases/join/controlplanejoin.go index 97e7408a98e..ea2943fa867 100644 --- a/cmd/kubeadm/app/cmd/phases/join/controlplanejoin.go +++ b/cmd/kubeadm/app/cmd/phases/join/controlplanejoin.go @@ -48,6 +48,9 @@ func getControlPlaneJoinPhaseFlags(name string) []string { if name != "mark-control-plane" { flags = append(flags, options.APIServerAdvertiseAddress) } + if name != "update-status" { + flags = append(flags, options.DryRun) + } return flags } diff --git a/cmd/kubeadm/app/cmd/phases/join/controlplaneprepare.go b/cmd/kubeadm/app/cmd/phases/join/controlplaneprepare.go index 15effe02530..24e53adcfcb 100644 --- a/cmd/kubeadm/app/cmd/phases/join/controlplaneprepare.go +++ b/cmd/kubeadm/app/cmd/phases/join/controlplaneprepare.go @@ -81,6 +81,7 @@ func getControlPlanePreparePhaseFlags(name string) []string { options.TokenStr, options.CertificateKey, options.Patches, + options.DryRun, } case "download-certs": flags = []string{ @@ -93,6 +94,7 @@ func getControlPlanePreparePhaseFlags(name string) []string { options.TLSBootstrapToken, options.TokenStr, options.CertificateKey, + options.DryRun, } case "certs": flags = []string{ @@ -118,6 +120,7 @@ func getControlPlanePreparePhaseFlags(name string) []string { options.TLSBootstrapToken, options.TokenStr, options.CertificateKey, + options.DryRun, } case "control-plane": flags = []string{ @@ -126,6 +129,7 @@ func getControlPlanePreparePhaseFlags(name string) []string { options.CfgPath, options.ControlPlane, options.Patches, + options.DryRun, } default: flags = []string{} diff --git a/cmd/kubeadm/app/cmd/phases/join/kubelet.go b/cmd/kubeadm/app/cmd/phases/join/kubelet.go index 113a591c536..9558dbf79bd 100644 --- a/cmd/kubeadm/app/cmd/phases/join/kubelet.go +++ b/cmd/kubeadm/app/cmd/phases/join/kubelet.go @@ -77,6 +77,7 @@ func NewKubeletStartPhase() workflow.Phase { options.TLSBootstrapToken, options.TokenStr, options.Patches, + options.DryRun, }, } } diff --git a/cmd/kubeadm/app/cmd/phases/join/preflight.go b/cmd/kubeadm/app/cmd/phases/join/preflight.go index 6cd8a452819..c0834292fcb 100644 --- a/cmd/kubeadm/app/cmd/phases/join/preflight.go +++ b/cmd/kubeadm/app/cmd/phases/join/preflight.go @@ -76,6 +76,7 @@ func NewPreflightPhase() workflow.Phase { options.TokenDiscoveryCAHash, options.TokenDiscoverySkipCAHash, options.CertificateKey, + options.DryRun, }, } } diff --git a/cmd/kubeadm/app/cmd/phases/reset/cleanupnode.go b/cmd/kubeadm/app/cmd/phases/reset/cleanupnode.go index 74ef15e958e..671cda62df1 100644 --- a/cmd/kubeadm/app/cmd/phases/reset/cleanupnode.go +++ b/cmd/kubeadm/app/cmd/phases/reset/cleanupnode.go @@ -49,6 +49,7 @@ func NewCleanupNodePhase() workflow.Phase { options.CertificatesDir, options.NodeCRISocket, options.CleanupTmpDir, + options.DryRun, }, } } diff --git a/cmd/kubeadm/app/cmd/phases/reset/preflight.go b/cmd/kubeadm/app/cmd/phases/reset/preflight.go index 041664bfc81..5af8323114a 100644 --- a/cmd/kubeadm/app/cmd/phases/reset/preflight.go +++ b/cmd/kubeadm/app/cmd/phases/reset/preflight.go @@ -40,6 +40,7 @@ func NewPreflightPhase() workflow.Phase { InheritFlags: []string{ options.IgnorePreflightErrors, options.ForceReset, + options.DryRun, }, } } diff --git a/cmd/kubeadm/app/cmd/phases/reset/removeetcdmember.go b/cmd/kubeadm/app/cmd/phases/reset/removeetcdmember.go index de264cac277..687238bf5f2 100644 --- a/cmd/kubeadm/app/cmd/phases/reset/removeetcdmember.go +++ b/cmd/kubeadm/app/cmd/phases/reset/removeetcdmember.go @@ -44,6 +44,7 @@ func NewRemoveETCDMemberPhase() workflow.Phase { Run: runRemoveETCDMemberPhase, InheritFlags: []string{ options.KubeconfigPath, + options.DryRun, }, } }