mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-17 15:50:10 +00:00
Merge pull request #119313 from chendave/migrate_config
kubeadm: Support `kubeadm config migrate` for ResetConfiguration
This commit is contained in:
commit
871e6b5b8d
@ -289,6 +289,19 @@ func MigrateOldConfig(oldConfig []byte, allowExperimental bool) ([]byte, error)
|
|||||||
newConfig = append(newConfig, b)
|
newConfig = append(newConfig, b)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Migrate ResetConfiguration if there is any
|
||||||
|
if kubeadmutil.GroupVersionKindsHasResetConfiguration(gvks...) {
|
||||||
|
o, err := documentMapToResetConfiguration(gvkmap, true, allowExperimental)
|
||||||
|
if err != nil {
|
||||||
|
return []byte{}, err
|
||||||
|
}
|
||||||
|
b, err := MarshalKubeadmConfigObject(o, gv)
|
||||||
|
if err != nil {
|
||||||
|
return []byte{}, err
|
||||||
|
}
|
||||||
|
newConfig = append(newConfig, b)
|
||||||
|
}
|
||||||
|
|
||||||
return bytes.Join(newConfig, []byte(constants.YAMLDocumentSeparator)), nil
|
return bytes.Join(newConfig, []byte(constants.YAMLDocumentSeparator)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -425,6 +425,31 @@ func TestMigrateOldConfig(t *testing.T) {
|
|||||||
allowExperimental: false,
|
allowExperimental: false,
|
||||||
expectErr: true,
|
expectErr: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "ResetConfiguration gets migrated from experimental API",
|
||||||
|
oldCfg: dedent.Dedent(fmt.Sprintf(`
|
||||||
|
apiVersion: %s
|
||||||
|
kind: ResetConfiguration
|
||||||
|
force: true
|
||||||
|
cleanupTmpDir: true
|
||||||
|
criSocket: unix:///var/run/containerd/containerd.sock
|
||||||
|
certificatesDir: /etc/kubernetes/pki
|
||||||
|
`, gvExperimental)),
|
||||||
|
expectedKinds: []string{
|
||||||
|
constants.ResetConfigurationKind,
|
||||||
|
},
|
||||||
|
allowExperimental: true,
|
||||||
|
expectErr: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "ResetConfiguration from experimental API cannot be migrated",
|
||||||
|
oldCfg: dedent.Dedent(fmt.Sprintf(`
|
||||||
|
apiVersion: %s
|
||||||
|
kind: ResetConfiguration
|
||||||
|
`, gvExperimental)),
|
||||||
|
allowExperimental: false,
|
||||||
|
expectErr: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
@ -158,3 +158,8 @@ func GroupVersionKindsHasInitConfiguration(gvks ...schema.GroupVersionKind) bool
|
|||||||
func GroupVersionKindsHasJoinConfiguration(gvks ...schema.GroupVersionKind) bool {
|
func GroupVersionKindsHasJoinConfiguration(gvks ...schema.GroupVersionKind) bool {
|
||||||
return GroupVersionKindsHasKind(gvks, constants.JoinConfigurationKind)
|
return GroupVersionKindsHasKind(gvks, constants.JoinConfigurationKind)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GroupVersionKindsHasResetConfiguration returns whether the following gvk slice contains a ResetConfiguration object
|
||||||
|
func GroupVersionKindsHasResetConfiguration(gvks ...schema.GroupVersionKind) bool {
|
||||||
|
return GroupVersionKindsHasKind(gvks, constants.ResetConfigurationKind)
|
||||||
|
}
|
||||||
|
@ -402,3 +402,38 @@ func TestGroupVersionKindsHasJoinConfiguration(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGroupVersionKindsHasResetConfiguration(t *testing.T) {
|
||||||
|
var tests = []struct {
|
||||||
|
name string
|
||||||
|
gvks []schema.GroupVersionKind
|
||||||
|
kind string
|
||||||
|
expected bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "NoResetConfiguration",
|
||||||
|
gvks: []schema.GroupVersionKind{
|
||||||
|
{Group: "foo.k8s.io", Version: "v1", Kind: "Foo"},
|
||||||
|
},
|
||||||
|
expected: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "ResetConfigurationFound",
|
||||||
|
gvks: []schema.GroupVersionKind{
|
||||||
|
{Group: "foo.k8s.io", Version: "v1", Kind: "Foo"},
|
||||||
|
{Group: "bar.k8s.io", Version: "v2", Kind: "ResetConfiguration"},
|
||||||
|
},
|
||||||
|
expected: true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, rt := range tests {
|
||||||
|
t.Run(rt.name, func(t2 *testing.T) {
|
||||||
|
|
||||||
|
actual := GroupVersionKindsHasResetConfiguration(rt.gvks...)
|
||||||
|
if rt.expected != actual {
|
||||||
|
t2.Errorf("expected gvks has ResetConfiguration: %t\n\tactual: %t\n", rt.expected, actual)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user