Merge pull request #101600 from KofClubs/fix-cri-socket-kubeadm

kubeadm: disallow the mixture of --cri-socket and --config
This commit is contained in:
Kubernetes Prow Robot 2021-06-11 00:04:58 -07:00 committed by GitHub
commit e52b7be7d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 21 deletions

View File

@ -560,17 +560,16 @@ func ValidateMixedArguments(flag *pflag.FlagSet) error {
} }
func isAllowedFlag(flagName string) bool { func isAllowedFlag(flagName string) bool {
knownFlags := sets.NewString(kubeadmcmdoptions.CfgPath, allowedFlags := sets.NewString(kubeadmcmdoptions.CfgPath,
kubeadmcmdoptions.IgnorePreflightErrors, kubeadmcmdoptions.IgnorePreflightErrors,
kubeadmcmdoptions.DryRun, kubeadmcmdoptions.DryRun,
kubeadmcmdoptions.KubeconfigPath, kubeadmcmdoptions.KubeconfigPath,
kubeadmcmdoptions.NodeName, kubeadmcmdoptions.NodeName,
kubeadmcmdoptions.NodeCRISocket,
kubeadmcmdoptions.KubeconfigDir, kubeadmcmdoptions.KubeconfigDir,
kubeadmcmdoptions.UploadCerts, kubeadmcmdoptions.UploadCerts,
kubeadmcmdoptions.Patches, kubeadmcmdoptions.Patches,
"print-join-command", "rootfs", "v") "print-join-command", "rootfs", "v")
if knownFlags.Has(flagName) { if allowedFlags.Has(flagName) {
return true return true
} }
return strings.HasPrefix(flagName, "skip-") return strings.HasPrefix(flagName, "skip-")

View File

@ -351,13 +351,10 @@ func newInitData(cmd *cobra.Command, args []string, options *initOptions, out io
// Also set the union of pre-flight errors to InitConfiguration, to provide a consistent view of the runtime configuration: // Also set the union of pre-flight errors to InitConfiguration, to provide a consistent view of the runtime configuration:
cfg.NodeRegistration.IgnorePreflightErrors = ignorePreflightErrorsSet.List() cfg.NodeRegistration.IgnorePreflightErrors = ignorePreflightErrorsSet.List()
// override node name and CRI socket from the command line options // override node name from the command line option
if options.externalInitCfg.NodeRegistration.Name != "" { if options.externalInitCfg.NodeRegistration.Name != "" {
cfg.NodeRegistration.Name = options.externalInitCfg.NodeRegistration.Name cfg.NodeRegistration.Name = options.externalInitCfg.NodeRegistration.Name
} }
if options.externalInitCfg.NodeRegistration.CRISocket != "" {
cfg.NodeRegistration.CRISocket = options.externalInitCfg.NodeRegistration.CRISocket
}
if err := configutil.VerifyAPIServerBindAddress(cfg.LocalAPIEndpoint.AdvertiseAddress); err != nil { if err := configutil.VerifyAPIServerBindAddress(cfg.LocalAPIEndpoint.AdvertiseAddress); err != nil {
return nil, err return nil, err

View File

@ -103,14 +103,10 @@ func TestNewInitData(t *testing.T) {
name: "--cri-socket and --node-name flags override config from file", name: "--cri-socket and --node-name flags override config from file",
flags: map[string]string{ flags: map[string]string{
options.CfgPath: configFilePath, options.CfgPath: configFilePath,
options.NodeCRISocket: "/var/run/crio/crio.sock",
options.NodeName: "anotherName", options.NodeName: "anotherName",
}, },
validate: func(t *testing.T, data *initData) { validate: func(t *testing.T, data *initData) {
// validate that cri-socket and node-name are overwritten // validate that node-name is overwritten
if data.cfg.NodeRegistration.CRISocket != "/var/run/crio/crio.sock" {
t.Errorf("Invalid NodeRegistration.CRISocket")
}
if data.cfg.NodeRegistration.Name != "anotherName" { if data.cfg.NodeRegistration.Name != "anotherName" {
t.Errorf("Invalid NodeRegistration.Name") t.Errorf("Invalid NodeRegistration.Name")
} }

View File

@ -204,14 +204,10 @@ func TestNewJoinData(t *testing.T) {
name: "--cri-socket and --node-name flags override config from file", name: "--cri-socket and --node-name flags override config from file",
flags: map[string]string{ flags: map[string]string{
options.CfgPath: configFilePath, options.CfgPath: configFilePath,
options.NodeCRISocket: "/var/run/crio/crio.sock",
options.NodeName: "anotherName", options.NodeName: "anotherName",
}, },
validate: func(t *testing.T, data *joinData) { validate: func(t *testing.T, data *joinData) {
// validate that cri-socket and node-name are overwritten // validate that node-name is overwritten
if data.cfg.NodeRegistration.CRISocket != "/var/run/crio/crio.sock" {
t.Errorf("Invalid NodeRegistration.CRISocket")
}
if data.cfg.NodeRegistration.Name != "anotherName" { if data.cfg.NodeRegistration.Name != "anotherName" {
t.Errorf("Invalid NodeRegistration.Name") t.Errorf("Invalid NodeRegistration.Name")
} }