mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 03:03:59 +00:00
kubeadm: add 'kubeadm config print reset-defaults' command for ResetConfiguration
This commit is contained in:
parent
13172cba5c
commit
22f0f2e210
@ -36,7 +36,8 @@ import (
|
||||
|
||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||
kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme"
|
||||
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||
kubeadmapiv1old "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta4"
|
||||
outputapischeme "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/scheme"
|
||||
outputapiv1alpha2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/output/v1alpha2"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
|
||||
@ -93,6 +94,7 @@ func newCmdConfigPrint(out io.Writer) *cobra.Command {
|
||||
}
|
||||
cmd.AddCommand(newCmdConfigPrintInitDefaults(out))
|
||||
cmd.AddCommand(newCmdConfigPrintJoinDefaults(out))
|
||||
cmd.AddCommand(newCmdConfigPrintResetDefaults(out))
|
||||
return cmd
|
||||
}
|
||||
|
||||
@ -106,6 +108,11 @@ func newCmdConfigPrintJoinDefaults(out io.Writer) *cobra.Command {
|
||||
return newCmdConfigPrintActionDefaults(out, "join", getDefaultNodeConfigBytes)
|
||||
}
|
||||
|
||||
// newCmdConfigPrintResetDefaults returns cobra.Command for "kubeadm config print reset-defaults" command
|
||||
func newCmdConfigPrintResetDefaults(out io.Writer) *cobra.Command {
|
||||
return newCmdConfigPrintActionDefaults(out, "reset", getDefaultResetConfigBytes)
|
||||
}
|
||||
|
||||
func newCmdConfigPrintActionDefaults(out io.Writer, action string, configBytesProc func() ([]byte, error)) *cobra.Command {
|
||||
kinds := []string{}
|
||||
cmd := &cobra.Command{
|
||||
@ -199,19 +206,19 @@ func getDefaultInitConfigBytes() ([]byte, error) {
|
||||
return []byte{}, err
|
||||
}
|
||||
|
||||
return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1.SchemeGroupVersion)
|
||||
return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1old.SchemeGroupVersion)
|
||||
}
|
||||
|
||||
func getDefaultNodeConfigBytes() ([]byte, error) {
|
||||
internalcfg, err := configutil.DefaultedJoinConfiguration(&kubeadmapiv1.JoinConfiguration{
|
||||
Discovery: kubeadmapiv1.Discovery{
|
||||
BootstrapToken: &kubeadmapiv1.BootstrapTokenDiscovery{
|
||||
internalcfg, err := configutil.DefaultedJoinConfiguration(&kubeadmapiv1old.JoinConfiguration{
|
||||
Discovery: kubeadmapiv1old.Discovery{
|
||||
BootstrapToken: &kubeadmapiv1old.BootstrapTokenDiscovery{
|
||||
Token: configutil.PlaceholderToken.Token.String(),
|
||||
APIServerEndpoint: "kube-apiserver:6443",
|
||||
UnsafeSkipCAVerification: true, // TODO: UnsafeSkipCAVerification: true needs to be set for validation to pass, but shouldn't be recommended as the default
|
||||
},
|
||||
},
|
||||
NodeRegistration: kubeadmapiv1.NodeRegistrationOptions{
|
||||
NodeRegistration: kubeadmapiv1old.NodeRegistrationOptions{
|
||||
CRISocket: constants.DefaultCRISocket, // avoid CRI detection
|
||||
},
|
||||
})
|
||||
@ -219,6 +226,17 @@ func getDefaultNodeConfigBytes() ([]byte, error) {
|
||||
return []byte{}, err
|
||||
}
|
||||
|
||||
return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1old.SchemeGroupVersion)
|
||||
}
|
||||
|
||||
func getDefaultResetConfigBytes() ([]byte, error) {
|
||||
internalcfg, err := configutil.DefaultedResetConfiguration(&kubeadmapiv1.ResetConfiguration{
|
||||
CRISocket: constants.DefaultCRISocket, // avoid CRI detection
|
||||
})
|
||||
if err != nil {
|
||||
return []byte{}, err
|
||||
}
|
||||
|
||||
return configutil.MarshalKubeadmConfigObject(internalcfg, kubeadmapiv1.SchemeGroupVersion)
|
||||
}
|
||||
|
||||
@ -243,7 +261,7 @@ func newCmdConfigMigrate(out io.Writer) *cobra.Command {
|
||||
|
||||
In other words, the output of this command is what kubeadm actually would read internally if you
|
||||
submitted this file to "kubeadm init"
|
||||
`), kubeadmapiv1.SchemeGroupVersion, kubeadmapiv1.SchemeGroupVersion),
|
||||
`), kubeadmapiv1old.SchemeGroupVersion, kubeadmapiv1old.SchemeGroupVersion),
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
if len(oldCfgPath) == 0 {
|
||||
return errors.New("the --old-config flag is mandatory")
|
||||
@ -293,7 +311,7 @@ func newCmdConfigValidate(out io.Writer) *cobra.Command {
|
||||
|
||||
In this version of kubeadm, the following API versions are supported:
|
||||
- %s
|
||||
`), kubeadmapiv1.SchemeGroupVersion),
|
||||
`), kubeadmapiv1old.SchemeGroupVersion),
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
if len(cfgPath) == 0 {
|
||||
return errors.Errorf("the --%s flag is mandatory", options.CfgPath)
|
||||
@ -332,9 +350,9 @@ func newCmdConfigImages(out io.Writer) *cobra.Command {
|
||||
|
||||
// newCmdConfigImagesPull returns the `kubeadm config images pull` command
|
||||
func newCmdConfigImagesPull() *cobra.Command {
|
||||
externalClusterCfg := &kubeadmapiv1.ClusterConfiguration{}
|
||||
externalClusterCfg := &kubeadmapiv1old.ClusterConfiguration{}
|
||||
kubeadmscheme.Scheme.Default(externalClusterCfg)
|
||||
externalInitCfg := &kubeadmapiv1.InitConfiguration{}
|
||||
externalInitCfg := &kubeadmapiv1old.InitConfiguration{}
|
||||
kubeadmscheme.Scheme.Default(externalInitCfg)
|
||||
var cfgPath, featureGatesString string
|
||||
var err error
|
||||
@ -379,7 +397,7 @@ func PullControlPlaneImages(runtime utilruntime.ContainerRuntime, cfg *kubeadmap
|
||||
|
||||
// newCmdConfigImagesList returns the "kubeadm config images list" command
|
||||
func newCmdConfigImagesList(out io.Writer, mockK8sVersion *string) *cobra.Command {
|
||||
externalcfg := &kubeadmapiv1.ClusterConfiguration{}
|
||||
externalcfg := &kubeadmapiv1old.ClusterConfiguration{}
|
||||
kubeadmscheme.Scheme.Default(externalcfg)
|
||||
var cfgPath, featureGatesString string
|
||||
var err error
|
||||
@ -421,7 +439,7 @@ func newCmdConfigImagesList(out io.Writer, mockK8sVersion *string) *cobra.Comman
|
||||
}
|
||||
|
||||
// NewImagesList returns the underlying struct for the "kubeadm config images list" command
|
||||
func NewImagesList(cfgPath string, cfg *kubeadmapiv1.ClusterConfiguration) (*ImagesList, error) {
|
||||
func NewImagesList(cfgPath string, cfg *kubeadmapiv1old.ClusterConfiguration) (*ImagesList, error) {
|
||||
initcfg, err := configutil.LoadOrDefaultInitConfiguration(cfgPath, cmdutil.DefaultInitConfiguration(), cfg)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "could not convert cfg to an internal cfg")
|
||||
@ -476,7 +494,7 @@ func (i *ImagesList) Run(out io.Writer, printer output.Printer) error {
|
||||
}
|
||||
|
||||
// AddImagesCommonConfigFlags adds the flags that configure kubeadm (and affect the images kubeadm will use)
|
||||
func AddImagesCommonConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiv1.ClusterConfiguration, cfgPath *string, featureGatesString *string) {
|
||||
func AddImagesCommonConfigFlags(flagSet *flag.FlagSet, cfg *kubeadmapiv1old.ClusterConfiguration, cfgPath *string, featureGatesString *string) {
|
||||
options.AddKubernetesVersionFlag(flagSet, &cfg.KubernetesVersion)
|
||||
options.AddFeatureGatesStringFlag(flagSet, featureGatesString)
|
||||
options.AddImageMetaFlags(flagSet, &cfg.ImageRepository)
|
||||
|
@ -451,6 +451,32 @@ func TestNewCmdConfigPrintActionDefaults(t *testing.T) {
|
||||
componentConfigs: "KubeProxyConfiguration,KubeletConfiguration",
|
||||
cmdProc: newCmdConfigPrintJoinDefaults,
|
||||
},
|
||||
{
|
||||
name: "ResetConfiguration: No component configs",
|
||||
expectedKinds: []string{
|
||||
constants.ResetConfigurationKind,
|
||||
},
|
||||
cmdProc: newCmdConfigPrintResetDefaults,
|
||||
},
|
||||
{
|
||||
name: "JoinConfiguration: KubeProxyConfiguration",
|
||||
expectedKinds: []string{
|
||||
"KubeProxyConfiguration",
|
||||
constants.ResetConfigurationKind,
|
||||
},
|
||||
componentConfigs: "KubeProxyConfiguration",
|
||||
cmdProc: newCmdConfigPrintResetDefaults,
|
||||
},
|
||||
{
|
||||
name: "JoinConfiguration: KubeProxyConfiguration and KubeletConfiguration",
|
||||
expectedKinds: []string{
|
||||
"KubeProxyConfiguration",
|
||||
"KubeletConfiguration",
|
||||
constants.ResetConfigurationKind,
|
||||
},
|
||||
componentConfigs: "KubeProxyConfiguration,KubeletConfiguration",
|
||||
cmdProc: newCmdConfigPrintResetDefaults,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
Loading…
Reference in New Issue
Block a user