mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
Merge pull request #64885 from chuckha/kubeadm-migrate-config
Automatic merge from submit-queue (batch tested with PRs 64881, 64885). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Fix output of `kubeadm migrate config` The output should always be valid kubeadmapi.MasterConfiguration YAML. The general problem was that we printed with fmt.Fprintf but it turns out some of the default values have `%`s in them so this caused Go to think we were missing values that we wanted substituted. We don't want to do any substitution here. Signed-off-by: Chuck Ha <ha.chuck@gmail.com> **What this PR does / why we need it**: This PR fixes a small bug that cause kubeadm migrate config to print YAML that was not valid. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: Fixes kubernetes/kubeadm#904 ```release-note NONE ``` /cc @luxas @timothysc
This commit is contained in:
commit
5825837a85
@ -134,6 +134,7 @@ go_test(
|
|||||||
":go_default_library",
|
":go_default_library",
|
||||||
"//cmd/kubeadm/app/apis/kubeadm/v1alpha2:go_default_library",
|
"//cmd/kubeadm/app/apis/kubeadm/v1alpha2:go_default_library",
|
||||||
"//cmd/kubeadm/app/features:go_default_library",
|
"//cmd/kubeadm/app/features:go_default_library",
|
||||||
|
"//cmd/kubeadm/app/util/config:go_default_library",
|
||||||
"//vendor/github.com/renstrom/dedent:go_default_library",
|
"//vendor/github.com/renstrom/dedent:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -202,7 +202,7 @@ func NewCmdConfigMigrate(out io.Writer) *cobra.Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if newCfgPath == "" {
|
if newCfgPath == "" {
|
||||||
fmt.Fprintf(out, string(outputBytes))
|
fmt.Fprint(out, string(outputBytes))
|
||||||
} else {
|
} else {
|
||||||
if err := ioutil.WriteFile(newCfgPath, outputBytes, 0644); err != nil {
|
if err := ioutil.WriteFile(newCfgPath, outputBytes, 0644); err != nil {
|
||||||
kubeadmutil.CheckErr(fmt.Errorf("failed to write the new configuration to the file %q: %v", newCfgPath, err))
|
kubeadmutil.CheckErr(fmt.Errorf("failed to write the new configuration to the file %q: %v", newCfgPath, err))
|
||||||
|
@ -29,6 +29,7 @@ import (
|
|||||||
kubeadmapiv1alpha2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2"
|
kubeadmapiv1alpha2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/cmd"
|
"k8s.io/kubernetes/cmd/kubeadm/app/cmd"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/features"
|
"k8s.io/kubernetes/cmd/kubeadm/app/features"
|
||||||
|
"k8s.io/kubernetes/cmd/kubeadm/app/util/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -196,3 +197,42 @@ func TestImagesPull(t *testing.T) {
|
|||||||
t.Fatalf("expected 2 but found %v", puller.count["a"])
|
t.Fatalf("expected 2 but found %v", puller.count["a"])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMigrate(t *testing.T) {
|
||||||
|
cfg := []byte(dedent.Dedent(`
|
||||||
|
apiVersion: kubeadm.k8s.io/v1alpha2
|
||||||
|
kind: MasterConfiguration
|
||||||
|
`))
|
||||||
|
configFile, cleanup := tempConfig(t, cfg)
|
||||||
|
defer cleanup()
|
||||||
|
|
||||||
|
var output bytes.Buffer
|
||||||
|
command := cmd.NewCmdConfigMigrate(&output)
|
||||||
|
err := command.Flags().Set("old-config", configFile)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to set old-config flag")
|
||||||
|
}
|
||||||
|
command.Run(nil, nil)
|
||||||
|
_, err = config.BytesToInternalConfig(output.Bytes())
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Could not read output back into internal type: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns the name of the file created and a cleanup callback
|
||||||
|
func tempConfig(t *testing.T, config []byte) (string, func()) {
|
||||||
|
t.Helper()
|
||||||
|
tmpDir, err := ioutil.TempDir("", "kubeadm-migration-test")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Unable to create temporary directory: %v", err)
|
||||||
|
}
|
||||||
|
configFilePath := filepath.Join(tmpDir, "test-config-file")
|
||||||
|
err = ioutil.WriteFile(configFilePath, config, 0644)
|
||||||
|
if err != nil {
|
||||||
|
os.RemoveAll(tmpDir)
|
||||||
|
t.Fatalf("Failed writing a config file: %v", err)
|
||||||
|
}
|
||||||
|
return configFilePath, func() {
|
||||||
|
os.RemoveAll(tmpDir)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user