Skip to content

Commit fab7593

Browse files
authored
Merge pull request kubernetes#129278 from HirazawaUi/remove-kubelet-args
[NodeLocalCRISocket]: Remove `container-runtime-endpoint` flag when kubeadm upgrade
2 parents bf2a52a + 769e799 commit fab7593

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

cmd/kubeadm/app/phases/kubelet/flags.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,12 @@ func WriteKubeletDynamicEnvFile(cfg *kubeadmapi.ClusterConfiguration, nodeReg *k
7474
flagOpts.criSocket = ""
7575
}
7676
stringMap := buildKubeletArgs(flagOpts)
77-
argList := kubeadmutil.ArgumentsToCommand(stringMap, nodeReg.KubeletExtraArgs)
77+
return WriteKubeletArgsToFile(stringMap, nodeReg.KubeletExtraArgs, kubeletDir)
78+
}
79+
80+
// WriteKubeletArgsToFile writes combined kubelet flags to KubeletEnvFile file in kubeletDir.
81+
func WriteKubeletArgsToFile(kubeletFlags, overridesFlags []kubeadmapi.Arg, kubeletDir string) error {
82+
argList := kubeadmutil.ArgumentsToCommand(kubeletFlags, overridesFlags)
7883
envFileContent := fmt.Sprintf("%s=%q\n", constants.KubeletEnvFileVariableName, strings.Join(argList, " "))
7984

8085
return writeKubeletFlagBytesToDisk([]byte(envFileContent), kubeletDir)

cmd/kubeadm/app/phases/upgrade/postupgrade.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,15 +133,25 @@ func WriteKubeletConfigFiles(cfg *kubeadmapi.InitConfiguration, kubeletConfigDir
133133
if features.Enabled(cfg.FeatureGates, features.NodeLocalCRISocket) {
134134
// If instance-config.yaml exist on disk, we don't need to create it.
135135
_, err := os.Stat(filepath.Join(kubeletDir, kubeadmconstants.KubeletInstanceConfigurationFileName))
136+
// After the NodeLocalCRISocket feature gate is removed, os.IsNotExist(err) should also be removed.
137+
// If there is no instance configuration, it indicates that the configuration on the node has been corrupted,
138+
// and an error needs to be reported.
136139
if os.IsNotExist(err) {
137140
var containerRuntimeEndpoint string
141+
var kubeletFlags []kubeadmapi.Arg
138142
dynamicFlags, err := kubeletphase.ReadKubeletDynamicEnvFile(filepath.Join(kubeletDir, kubeadmconstants.KubeletEnvFileName))
139143
if err == nil {
140144
args := kubeadmutil.ArgumentsFromCommand(dynamicFlags)
141145
for _, arg := range args {
142146
if arg.Name == "container-runtime-endpoint" {
143147
containerRuntimeEndpoint = arg.Value
144-
break
148+
continue
149+
}
150+
kubeletFlags = append(kubeletFlags, arg)
151+
}
152+
if len(containerRuntimeEndpoint) != 0 {
153+
if err := kubeletphase.WriteKubeletArgsToFile(kubeletFlags, nil, kubeletDir); err != nil {
154+
return err
145155
}
146156
}
147157
} else if dryRun {

0 commit comments

Comments
 (0)