mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
kubeadm: Remove cluster name from JoinConfiguration
This commit is contained in:
parent
b2b25462c1
commit
47b4e04842
@ -140,7 +140,6 @@ func fuzzJoinConfiguration(obj *kubeadm.JoinConfiguration, c fuzz.Continue) {
|
|||||||
|
|
||||||
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
|
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
|
||||||
obj.CACertPath = "foo"
|
obj.CACertPath = "foo"
|
||||||
obj.ClusterName = "bar"
|
|
||||||
obj.Discovery = kubeadm.Discovery{
|
obj.Discovery = kubeadm.Discovery{
|
||||||
BootstrapToken: &kubeadm.BootstrapTokenDiscovery{Token: "baz"},
|
BootstrapToken: &kubeadm.BootstrapTokenDiscovery{Token: "baz"},
|
||||||
TLSBootstrapToken: "qux",
|
TLSBootstrapToken: "qux",
|
||||||
|
@ -286,9 +286,6 @@ type JoinConfiguration struct {
|
|||||||
// Discovery specifies the options for the kubelet to use during the TLS Bootstrap process
|
// Discovery specifies the options for the kubelet to use during the TLS Bootstrap process
|
||||||
Discovery Discovery
|
Discovery Discovery
|
||||||
|
|
||||||
// The cluster name
|
|
||||||
ClusterName string
|
|
||||||
|
|
||||||
// ControlPlane flag specifies that the joining node should host an additional
|
// ControlPlane flag specifies that the joining node should host an additional
|
||||||
// control plane instance.
|
// control plane instance.
|
||||||
ControlPlane bool
|
ControlPlane bool
|
||||||
|
@ -29,6 +29,10 @@ func Convert_v1alpha3_JoinConfiguration_To_kubeadm_JoinConfiguration(in *JoinCon
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(in.ClusterName) != 0 {
|
||||||
|
return errors.New("clusterName has been removed from JoinConfiguration and clusterName from ClusterConfiguration will be used instead. Please cleanup JoinConfiguration.ClusterName fields")
|
||||||
|
}
|
||||||
|
|
||||||
if len(in.FeatureGates) != 0 {
|
if len(in.FeatureGates) != 0 {
|
||||||
return errors.New("featureGates has been removed from JoinConfiguration and featureGates from ClusterConfiguration will be used instead. Please cleanup JoinConfiguration.FeatureGates fields")
|
return errors.New("featureGates has been removed from JoinConfiguration and featureGates from ClusterConfiguration will be used instead. Please cleanup JoinConfiguration.FeatureGates fields")
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,12 @@ func TestJoinConfigurationConversion(t *testing.T) {
|
|||||||
old: &v1alpha3.JoinConfiguration{},
|
old: &v1alpha3.JoinConfiguration{},
|
||||||
expectedErr: "",
|
expectedErr: "",
|
||||||
},
|
},
|
||||||
|
"cluster name fails to be converted": {
|
||||||
|
old: &v1alpha3.JoinConfiguration{
|
||||||
|
ClusterName: "kubernetes",
|
||||||
|
},
|
||||||
|
expectedErr: "clusterName has been removed from JoinConfiguration and clusterName from ClusterConfiguration will be used instead. Please cleanup JoinConfiguration.ClusterName fields",
|
||||||
|
},
|
||||||
"feature gates fails to be converted": {
|
"feature gates fails to be converted": {
|
||||||
old: &v1alpha3.JoinConfiguration{
|
old: &v1alpha3.JoinConfiguration{
|
||||||
FeatureGates: map[string]bool{
|
FeatureGates: map[string]bool{
|
||||||
|
@ -138,9 +138,6 @@ func SetDefaults_JoinConfiguration(obj *JoinConfiguration) {
|
|||||||
Duration: DefaultDiscoveryTimeout,
|
Duration: DefaultDiscoveryTimeout,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if obj.ClusterName == "" {
|
|
||||||
obj.ClusterName = DefaultClusterName
|
|
||||||
}
|
|
||||||
|
|
||||||
SetDefaults_NodeRegistrationOptions(&obj.NodeRegistration)
|
SetDefaults_NodeRegistrationOptions(&obj.NodeRegistration)
|
||||||
SetDefaults_APIEndpoint(&obj.APIEndpoint)
|
SetDefaults_APIEndpoint(&obj.APIEndpoint)
|
||||||
|
@ -495,7 +495,7 @@ func autoConvert_v1alpha3_JoinConfiguration_To_kubeadm_JoinConfiguration(in *Joi
|
|||||||
// WARNING: in.DiscoveryTimeout requires manual conversion: does not exist in peer-type
|
// WARNING: in.DiscoveryTimeout requires manual conversion: does not exist in peer-type
|
||||||
// WARNING: in.TLSBootstrapToken requires manual conversion: does not exist in peer-type
|
// WARNING: in.TLSBootstrapToken requires manual conversion: does not exist in peer-type
|
||||||
// WARNING: in.Token requires manual conversion: does not exist in peer-type
|
// WARNING: in.Token requires manual conversion: does not exist in peer-type
|
||||||
out.ClusterName = in.ClusterName
|
// WARNING: in.ClusterName requires manual conversion: does not exist in peer-type
|
||||||
// WARNING: in.DiscoveryTokenCACertHashes requires manual conversion: does not exist in peer-type
|
// WARNING: in.DiscoveryTokenCACertHashes requires manual conversion: does not exist in peer-type
|
||||||
// WARNING: in.DiscoveryTokenUnsafeSkipCAVerification requires manual conversion: does not exist in peer-type
|
// WARNING: in.DiscoveryTokenUnsafeSkipCAVerification requires manual conversion: does not exist in peer-type
|
||||||
out.ControlPlane = in.ControlPlane
|
out.ControlPlane = in.ControlPlane
|
||||||
@ -512,7 +512,6 @@ func autoConvert_kubeadm_JoinConfiguration_To_v1alpha3_JoinConfiguration(in *kub
|
|||||||
}
|
}
|
||||||
out.CACertPath = in.CACertPath
|
out.CACertPath = in.CACertPath
|
||||||
// WARNING: in.Discovery requires manual conversion: does not exist in peer-type
|
// WARNING: in.Discovery requires manual conversion: does not exist in peer-type
|
||||||
out.ClusterName = in.ClusterName
|
|
||||||
out.ControlPlane = in.ControlPlane
|
out.ControlPlane = in.ControlPlane
|
||||||
if err := Convert_kubeadm_APIEndpoint_To_v1alpha3_APIEndpoint(&in.APIEndpoint, &out.APIEndpoint, s); err != nil {
|
if err := Convert_kubeadm_APIEndpoint_To_v1alpha3_APIEndpoint(&in.APIEndpoint, &out.APIEndpoint, s); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -131,10 +131,6 @@ func SetDefaults_JoinConfiguration(obj *JoinConfiguration) {
|
|||||||
obj.CACertPath = DefaultCACertPath
|
obj.CACertPath = DefaultCACertPath
|
||||||
}
|
}
|
||||||
|
|
||||||
if obj.ClusterName == "" {
|
|
||||||
obj.ClusterName = DefaultClusterName
|
|
||||||
}
|
|
||||||
|
|
||||||
SetDefaults_NodeRegistrationOptions(&obj.NodeRegistration)
|
SetDefaults_NodeRegistrationOptions(&obj.NodeRegistration)
|
||||||
SetDefaults_APIEndpoint(&obj.APIEndpoint)
|
SetDefaults_APIEndpoint(&obj.APIEndpoint)
|
||||||
SetDefaults_Discovery(&obj.Discovery)
|
SetDefaults_Discovery(&obj.Discovery)
|
||||||
|
@ -265,9 +265,6 @@ type JoinConfiguration struct {
|
|||||||
// Discovery specifies the options for the kubelet to use during the TLS Bootstrap process
|
// Discovery specifies the options for the kubelet to use during the TLS Bootstrap process
|
||||||
Discovery Discovery `json:"discovery"`
|
Discovery Discovery `json:"discovery"`
|
||||||
|
|
||||||
// ClusterName is the name for the cluster in kubeconfig.
|
|
||||||
ClusterName string `json:"clusterName,omitempty"`
|
|
||||||
|
|
||||||
// ControlPlane flag specifies that the joining node should host an additional
|
// ControlPlane flag specifies that the joining node should host an additional
|
||||||
// control plane instance.
|
// control plane instance.
|
||||||
ControlPlane bool `json:"controlPlane,omitempty"`
|
ControlPlane bool `json:"controlPlane,omitempty"`
|
||||||
|
@ -662,7 +662,6 @@ func autoConvert_v1beta1_JoinConfiguration_To_kubeadm_JoinConfiguration(in *Join
|
|||||||
if err := Convert_v1beta1_Discovery_To_kubeadm_Discovery(&in.Discovery, &out.Discovery, s); err != nil {
|
if err := Convert_v1beta1_Discovery_To_kubeadm_Discovery(&in.Discovery, &out.Discovery, s); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
out.ClusterName = in.ClusterName
|
|
||||||
out.ControlPlane = in.ControlPlane
|
out.ControlPlane = in.ControlPlane
|
||||||
if err := Convert_v1beta1_APIEndpoint_To_kubeadm_APIEndpoint(&in.APIEndpoint, &out.APIEndpoint, s); err != nil {
|
if err := Convert_v1beta1_APIEndpoint_To_kubeadm_APIEndpoint(&in.APIEndpoint, &out.APIEndpoint, s); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -683,7 +682,6 @@ func autoConvert_kubeadm_JoinConfiguration_To_v1beta1_JoinConfiguration(in *kube
|
|||||||
if err := Convert_kubeadm_Discovery_To_v1beta1_Discovery(&in.Discovery, &out.Discovery, s); err != nil {
|
if err := Convert_kubeadm_Discovery_To_v1beta1_Discovery(&in.Discovery, &out.Discovery, s); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
out.ClusterName = in.ClusterName
|
|
||||||
out.ControlPlane = in.ControlPlane
|
out.ControlPlane = in.ControlPlane
|
||||||
if err := Convert_kubeadm_APIEndpoint_To_v1beta1_APIEndpoint(&in.APIEndpoint, &out.APIEndpoint, s); err != nil {
|
if err := Convert_kubeadm_APIEndpoint_To_v1beta1_APIEndpoint(&in.APIEndpoint, &out.APIEndpoint, s); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -600,6 +600,13 @@ func fetchInitConfigurationFromJoinConfiguration(cfg *kubeadmapi.JoinConfigurati
|
|||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create the final KubeConfig file with the cluster name discovered after fetching the cluster configuration
|
||||||
|
clusterinfo := kubeconfigutil.GetClusterFromKubeConfig(tlsBootstrapCfg)
|
||||||
|
tlsBootstrapCfg.Clusters = map[string]*clientcmdapi.Cluster{
|
||||||
|
initConfiguration.ClusterName: clusterinfo,
|
||||||
|
}
|
||||||
|
tlsBootstrapCfg.Contexts[tlsBootstrapCfg.CurrentContext].Cluster = initConfiguration.ClusterName
|
||||||
|
|
||||||
// injects into the kubeadm configuration the information about the joining node
|
// injects into the kubeadm configuration the information about the joining node
|
||||||
initConfiguration.NodeRegistration = cfg.NodeRegistration
|
initConfiguration.NodeRegistration = cfg.NodeRegistration
|
||||||
initConfiguration.APIEndpoint = cfg.APIEndpoint
|
initConfiguration.APIEndpoint = cfg.APIEndpoint
|
||||||
|
@ -12,6 +12,7 @@ go_library(
|
|||||||
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/discovery",
|
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/discovery",
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
||||||
|
"//cmd/kubeadm/app/apis/kubeadm/v1beta1:go_default_library",
|
||||||
"//cmd/kubeadm/app/discovery/file:go_default_library",
|
"//cmd/kubeadm/app/discovery/file:go_default_library",
|
||||||
"//cmd/kubeadm/app/discovery/https:go_default_library",
|
"//cmd/kubeadm/app/discovery/https:go_default_library",
|
||||||
"//cmd/kubeadm/app/discovery/token:go_default_library",
|
"//cmd/kubeadm/app/discovery/token:go_default_library",
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
|
|
||||||
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
|
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
|
||||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
|
kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/discovery/file"
|
"k8s.io/kubernetes/cmd/kubeadm/app/discovery/file"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/discovery/https"
|
"k8s.io/kubernetes/cmd/kubeadm/app/discovery/https"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/discovery/token"
|
"k8s.io/kubernetes/cmd/kubeadm/app/discovery/token"
|
||||||
@ -48,7 +49,7 @@ func For(cfg *kubeadmapi.JoinConfiguration) (*clientcmdapi.Config, error) {
|
|||||||
clusterinfo := kubeconfigutil.GetClusterFromKubeConfig(config)
|
clusterinfo := kubeconfigutil.GetClusterFromKubeConfig(config)
|
||||||
return kubeconfigutil.CreateWithToken(
|
return kubeconfigutil.CreateWithToken(
|
||||||
clusterinfo.Server,
|
clusterinfo.Server,
|
||||||
cfg.ClusterName,
|
kubeadmapiv1beta1.DefaultClusterName,
|
||||||
TokenUser,
|
TokenUser,
|
||||||
clusterinfo.CertificateAuthorityData,
|
clusterinfo.CertificateAuthorityData,
|
||||||
cfg.Discovery.TLSBootstrapToken,
|
cfg.Discovery.TLSBootstrapToken,
|
||||||
@ -61,9 +62,9 @@ func DiscoverValidatedKubeConfig(cfg *kubeadmapi.JoinConfiguration) (*clientcmda
|
|||||||
case cfg.Discovery.File != nil:
|
case cfg.Discovery.File != nil:
|
||||||
kubeConfigPath := cfg.Discovery.File.KubeConfigPath
|
kubeConfigPath := cfg.Discovery.File.KubeConfigPath
|
||||||
if isHTTPSURL(kubeConfigPath) {
|
if isHTTPSURL(kubeConfigPath) {
|
||||||
return https.RetrieveValidatedConfigInfo(kubeConfigPath, cfg.ClusterName)
|
return https.RetrieveValidatedConfigInfo(kubeConfigPath, kubeadmapiv1beta1.DefaultClusterName)
|
||||||
}
|
}
|
||||||
return file.RetrieveValidatedConfigInfo(kubeConfigPath, cfg.ClusterName)
|
return file.RetrieveValidatedConfigInfo(kubeConfigPath, kubeadmapiv1beta1.DefaultClusterName)
|
||||||
case cfg.Discovery.BootstrapToken != nil:
|
case cfg.Discovery.BootstrapToken != nil:
|
||||||
return token.RetrieveValidatedConfigInfo(cfg)
|
return token.RetrieveValidatedConfigInfo(cfg)
|
||||||
default:
|
default:
|
||||||
|
@ -12,6 +12,7 @@ go_library(
|
|||||||
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/discovery/token",
|
importpath = "k8s.io/kubernetes/cmd/kubeadm/app/discovery/token",
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
||||||
|
"//cmd/kubeadm/app/apis/kubeadm/v1beta1:go_default_library",
|
||||||
"//cmd/kubeadm/app/constants:go_default_library",
|
"//cmd/kubeadm/app/constants:go_default_library",
|
||||||
"//cmd/kubeadm/app/util/kubeconfig:go_default_library",
|
"//cmd/kubeadm/app/util/kubeconfig:go_default_library",
|
||||||
"//cmd/kubeadm/app/util/pubkeypin:go_default_library",
|
"//cmd/kubeadm/app/util/pubkeypin:go_default_library",
|
||||||
|
@ -33,6 +33,7 @@ import (
|
|||||||
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
|
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
|
||||||
bootstrapapi "k8s.io/cluster-bootstrap/token/api"
|
bootstrapapi "k8s.io/cluster-bootstrap/token/api"
|
||||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
|
kubeadmapiv1beta1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig"
|
kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/util/pubkeypin"
|
"k8s.io/kubernetes/cmd/kubeadm/app/util/pubkeypin"
|
||||||
@ -62,7 +63,7 @@ func RetrieveValidatedConfigInfo(cfg *kubeadmapi.JoinConfiguration) (*clientcmda
|
|||||||
// The endpoint that wins the race and completes the task first gets its kubeconfig returned below
|
// The endpoint that wins the race and completes the task first gets its kubeconfig returned below
|
||||||
baseKubeConfig, err := fetchKubeConfigWithTimeout(cfg.Discovery.BootstrapToken.APIServerEndpoint, cfg.Discovery.Timeout.Duration, func(endpoint string) (*clientcmdapi.Config, error) {
|
baseKubeConfig, err := fetchKubeConfigWithTimeout(cfg.Discovery.BootstrapToken.APIServerEndpoint, cfg.Discovery.Timeout.Duration, func(endpoint string) (*clientcmdapi.Config, error) {
|
||||||
|
|
||||||
insecureBootstrapConfig := buildInsecureBootstrapKubeConfig(endpoint, cfg.ClusterName)
|
insecureBootstrapConfig := buildInsecureBootstrapKubeConfig(endpoint, kubeadmapiv1beta1.DefaultClusterName)
|
||||||
clusterName := insecureBootstrapConfig.Contexts[insecureBootstrapConfig.CurrentContext].Cluster
|
clusterName := insecureBootstrapConfig.Contexts[insecureBootstrapConfig.CurrentContext].Cluster
|
||||||
|
|
||||||
insecureClient, err := kubeconfigutil.ToClientSet(insecureBootstrapConfig)
|
insecureClient, err := kubeconfigutil.ToClientSet(insecureBootstrapConfig)
|
||||||
|
@ -2,7 +2,6 @@ APIEndpoint:
|
|||||||
AdvertiseAddress: 192.168.2.2
|
AdvertiseAddress: 192.168.2.2
|
||||||
BindPort: 6443
|
BindPort: 6443
|
||||||
CACertPath: /etc/kubernetes/pki/ca.crt
|
CACertPath: /etc/kubernetes/pki/ca.crt
|
||||||
ClusterName: kubernetes
|
|
||||||
ControlPlane: false
|
ControlPlane: false
|
||||||
Discovery:
|
Discovery:
|
||||||
BootstrapToken:
|
BootstrapToken:
|
||||||
|
@ -3,7 +3,6 @@ apiEndpoint:
|
|||||||
bindPort: 6443
|
bindPort: 6443
|
||||||
apiVersion: kubeadm.k8s.io/v1alpha3
|
apiVersion: kubeadm.k8s.io/v1alpha3
|
||||||
caCertPath: /etc/kubernetes/pki/ca.crt
|
caCertPath: /etc/kubernetes/pki/ca.crt
|
||||||
clusterName: kubernetes
|
|
||||||
discoveryFile: ""
|
discoveryFile: ""
|
||||||
discoveryTimeout: 5m0s
|
discoveryTimeout: 5m0s
|
||||||
discoveryToken: abcdef.0123456789abcdef
|
discoveryToken: abcdef.0123456789abcdef
|
||||||
|
@ -3,7 +3,6 @@ apiEndpoint:
|
|||||||
bindPort: 6443
|
bindPort: 6443
|
||||||
apiVersion: kubeadm.k8s.io/v1beta1
|
apiVersion: kubeadm.k8s.io/v1beta1
|
||||||
caCertPath: /etc/kubernetes/pki/ca.crt
|
caCertPath: /etc/kubernetes/pki/ca.crt
|
||||||
clusterName: kubernetes
|
|
||||||
discovery:
|
discovery:
|
||||||
bootstrapToken:
|
bootstrapToken:
|
||||||
apiServerEndpoint: kube-apiserver:6443
|
apiServerEndpoint: kube-apiserver:6443
|
||||||
|
@ -3,7 +3,6 @@ apiEndpoint:
|
|||||||
bindPort: 6443
|
bindPort: 6443
|
||||||
apiVersion: kubeadm.k8s.io/v1beta1
|
apiVersion: kubeadm.k8s.io/v1beta1
|
||||||
caCertPath: /etc/kubernetes/pki/ca.crt
|
caCertPath: /etc/kubernetes/pki/ca.crt
|
||||||
clusterName: kubernetes
|
|
||||||
discovery:
|
discovery:
|
||||||
bootstrapToken:
|
bootstrapToken:
|
||||||
apiServerEndpoint: kube-apiserver:6443
|
apiServerEndpoint: kube-apiserver:6443
|
||||||
|
Loading…
Reference in New Issue
Block a user