From f600348006aad53d072197c708d742e75f8c34aa Mon Sep 17 00:00:00 2001 From: pytimer Date: Fri, 1 Mar 2019 12:31:28 +0800 Subject: [PATCH] kubeadm: reduce some functions number of parameters --- cmd/kubeadm/app/cmd/init.go | 25 ++++++++++--------------- cmd/kubeadm/app/cmd/join.go | 21 +++++++-------------- 2 files changed, 17 insertions(+), 29 deletions(-) diff --git a/cmd/kubeadm/app/cmd/init.go b/cmd/kubeadm/app/cmd/init.go index 9c90d3f21f..8261ca3e27 100644 --- a/cmd/kubeadm/app/cmd/init.go +++ b/cmd/kubeadm/app/cmd/init.go @@ -140,7 +140,7 @@ func NewCmdInit(out io.Writer, initOptions *initOptions) *cobra.Command { // adds flags to the init command // init command local flags could be eventually inherited by the sub-commands automatically generated for phases AddInitConfigFlags(cmd.Flags(), initOptions.externalcfg, &initOptions.featureGatesString) - AddInitOtherFlags(cmd.Flags(), &initOptions.cfgPath, &initOptions.skipTokenPrint, &initOptions.dryRun, &initOptions.uploadCerts, &initOptions.ignorePreflightErrors) + AddInitOtherFlags(cmd.Flags(), initOptions) initOptions.bto.AddTokenFlag(cmd.Flags()) initOptions.bto.AddTTLFlag(cmd.Flags()) options.AddImageMetaFlags(cmd.Flags(), &initOptions.externalcfg.ImageRepository) @@ -225,27 +225,22 @@ func AddInitConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiv1beta1.InitConfig // AddInitOtherFlags adds init flags that are not bound to a configuration file to the given flagset // Note: All flags that are not bound to the cfg object should be allowed in cmd/kubeadm/app/apis/kubeadm/validation/validation.go -func AddInitOtherFlags( - flagSet *flag.FlagSet, - cfgPath *string, - skipTokenPrint, dryRun, uploadCerts *bool, - ignorePreflightErrors *[]string, -) { - options.AddConfigFlag(flagSet, cfgPath) +func AddInitOtherFlags(flagSet *flag.FlagSet, initOptions *initOptions) { + options.AddConfigFlag(flagSet, &initOptions.cfgPath) flagSet.StringSliceVar( - ignorePreflightErrors, options.IgnorePreflightErrors, *ignorePreflightErrors, + &initOptions.ignorePreflightErrors, options.IgnorePreflightErrors, initOptions.ignorePreflightErrors, "A list of checks whose errors will be shown as warnings. Example: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks.", ) flagSet.BoolVar( - skipTokenPrint, options.SkipTokenPrint, *skipTokenPrint, + &initOptions.skipTokenPrint, options.SkipTokenPrint, initOptions.skipTokenPrint, "Skip printing of the default bootstrap token generated by 'kubeadm init'.", ) flagSet.BoolVar( - dryRun, options.DryRun, *dryRun, + &initOptions.dryRun, options.DryRun, initOptions.dryRun, "Don't apply any changes; just output what would be done.", ) flagSet.BoolVar( - uploadCerts, options.UploadCerts, *uploadCerts, + &initOptions.uploadCerts, options.UploadCerts, initOptions.uploadCerts, "Upload certfificates to kubeadm-certs secret.", ) } @@ -476,8 +471,8 @@ func (d *initData) Tokens() []string { return tokens } -func printJoinCommand(out io.Writer, adminKubeConfigPath, token, key string, skipTokenPrint, uploadCerts bool) error { - joinCommand, err := cmdutil.GetJoinCommand(adminKubeConfigPath, token, key, skipTokenPrint, uploadCerts) +func printJoinCommand(out io.Writer, adminKubeConfigPath, token string, i *initData) error { + joinCommand, err := cmdutil.GetJoinCommand(adminKubeConfigPath, token, i.certificateKey, i.skipTokenPrint, i.uploadCerts) if err != nil { return err } @@ -496,7 +491,7 @@ func showJoinCommand(i *initData, out io.Writer) error { // Prints the join command, multiple times in case the user has multiple tokens for _, token := range i.Tokens() { - if err := printJoinCommand(out, adminKubeConfigPath, token, i.certificateKey, i.skipTokenPrint, i.uploadCerts); err != nil { + if err := printJoinCommand(out, adminKubeConfigPath, token, i); err != nil { return errors.Wrap(err, "failed to print join command") } } diff --git a/cmd/kubeadm/app/cmd/join.go b/cmd/kubeadm/app/cmd/join.go index 8376245e74..96c545f0cb 100644 --- a/cmd/kubeadm/app/cmd/join.go +++ b/cmd/kubeadm/app/cmd/join.go @@ -194,7 +194,7 @@ func NewCmdJoin(out io.Writer, joinOptions *joinOptions) *cobra.Command { } addJoinConfigFlags(cmd.Flags(), joinOptions.externalcfg) - addJoinOtherFlags(cmd.Flags(), &joinOptions.cfgPath, &joinOptions.ignorePreflightErrors, &joinOptions.controlPlane, &joinOptions.token, &joinOptions.certificateKey) + addJoinOtherFlags(cmd.Flags(), joinOptions) joinRunner.AppendPhase(phases.NewPreflightPhase()) joinRunner.AppendPhase(phases.NewControlPlanePreparePhase()) @@ -256,32 +256,25 @@ func addJoinConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiv1beta1.JoinConfig } // addJoinOtherFlags adds join flags that are not bound to a configuration file to the given flagset -func addJoinOtherFlags( - flagSet *flag.FlagSet, - cfgPath *string, - ignorePreflightErrors *[]string, - controlPlane *bool, - token *string, - certificateKey *string, -) { +func addJoinOtherFlags(flagSet *flag.FlagSet, joinOptions *joinOptions) { flagSet.StringVar( - cfgPath, options.CfgPath, *cfgPath, + &joinOptions.cfgPath, options.CfgPath, joinOptions.cfgPath, "Path to kubeadm config file.", ) flagSet.StringSliceVar( - ignorePreflightErrors, options.IgnorePreflightErrors, *ignorePreflightErrors, + &joinOptions.ignorePreflightErrors, options.IgnorePreflightErrors, joinOptions.ignorePreflightErrors, "A list of checks whose errors will be shown as warnings. Example: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks.", ) flagSet.StringVar( - token, options.TokenStr, "", + &joinOptions.token, options.TokenStr, "", "Use this token for both discovery-token and tls-bootstrap-token when those values are not provided.", ) flagSet.BoolVar( - controlPlane, options.ControlPlane, *controlPlane, + &joinOptions.controlPlane, options.ControlPlane, joinOptions.controlPlane, "Create a new control plane instance on this node", ) flagSet.StringVar( - certificateKey, options.CertificateKey, "", + &joinOptions.certificateKey, options.CertificateKey, "", "Use this key to decrypt the certificate secrets uploaded by init.", ) }