kubeadm: Remove cluster name from JoinConfiguration

parent b2b25462
...@@ -140,7 +140,6 @@ func fuzzJoinConfiguration(obj *kubeadm.JoinConfiguration, c fuzz.Continue) { ...@@ -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 { ...@@ -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 ...@@ -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) { ...@@ -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) { ...@@ -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 ...@@ -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 ...@@ -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) { ...@@ -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 { ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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( ...@@ -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 ( ...@@ -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) { ...@@ -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 ...@@ -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( ...@@ -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 ( ...@@ -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 ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment