mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
Merge pull request #98638 from neolit123/1.21-optimize-unit-tests-certs
kubeadm: introduce static defaults for unit tests
This commit is contained in:
commit
645c40fcf6
@ -53,16 +53,6 @@ import (
|
|||||||
utilsexec "k8s.io/utils/exec"
|
utilsexec "k8s.io/utils/exec"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
|
||||||
// placeholderToken is only set statically to make kubeadm not randomize the token on every run
|
|
||||||
placeholderToken = kubeadmapiv1beta2.BootstrapToken{
|
|
||||||
Token: &kubeadmapiv1beta2.BootstrapTokenString{
|
|
||||||
ID: "abcdef",
|
|
||||||
Secret: "0123456789abcdef",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
// newCmdConfig returns cobra.Command for "kubeadm config" command
|
// newCmdConfig returns cobra.Command for "kubeadm config" command
|
||||||
func newCmdConfig(out io.Writer) *cobra.Command {
|
func newCmdConfig(out io.Writer) *cobra.Command {
|
||||||
var kubeConfigFile string
|
var kubeConfigFile string
|
||||||
@ -129,7 +119,7 @@ func newCmdConfigPrintActionDefaults(out io.Writer, action string, configBytesPr
|
|||||||
|
|
||||||
Note that sensitive values like the Bootstrap Token fields are replaced with placeholder values like %q in order to pass validation but
|
Note that sensitive values like the Bootstrap Token fields are replaced with placeholder values like %q in order to pass validation but
|
||||||
not perform the real computation for creating a token.
|
not perform the real computation for creating a token.
|
||||||
`), action, action, placeholderToken),
|
`), action, action, configutil.PlaceholderToken),
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
groups, err := mapLegacyKindsToGroups(kinds)
|
groups, err := mapLegacyKindsToGroups(kinds)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -164,7 +154,7 @@ func runConfigPrintActionDefaults(out io.Writer, componentConfigs []string, conf
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getDefaultComponentConfigBytes(group string) ([]byte, error) {
|
func getDefaultComponentConfigBytes(group string) ([]byte, error) {
|
||||||
defaultedInitConfig, err := getDefaultedInitConfig()
|
defaultedInitConfig, err := configutil.DefaultedStaticInitConfiguration()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []byte{}, err
|
return []byte{}, err
|
||||||
}
|
}
|
||||||
@ -206,22 +196,8 @@ func mapLegacyKindsToGroups(kinds []string) ([]string, error) {
|
|||||||
return groups, nil
|
return groups, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getDefaultedInitConfig() (*kubeadmapi.InitConfiguration, error) {
|
|
||||||
initCfg := &kubeadmapiv1beta2.InitConfiguration{
|
|
||||||
LocalAPIEndpoint: kubeadmapiv1beta2.APIEndpoint{AdvertiseAddress: "1.2.3.4"},
|
|
||||||
BootstrapTokens: []kubeadmapiv1beta2.BootstrapToken{placeholderToken},
|
|
||||||
NodeRegistration: kubeadmapiv1beta2.NodeRegistrationOptions{
|
|
||||||
CRISocket: constants.DefaultDockerCRISocket, // avoid CRI detection
|
|
||||||
},
|
|
||||||
}
|
|
||||||
clusterCfg := &kubeadmapiv1beta2.ClusterConfiguration{
|
|
||||||
KubernetesVersion: constants.CurrentKubernetesVersion.String(), // avoid going to the Internet for the current Kubernetes version
|
|
||||||
}
|
|
||||||
return configutil.DefaultedInitConfiguration(initCfg, clusterCfg)
|
|
||||||
}
|
|
||||||
|
|
||||||
func getDefaultInitConfigBytes() ([]byte, error) {
|
func getDefaultInitConfigBytes() ([]byte, error) {
|
||||||
internalcfg, err := getDefaultedInitConfig()
|
internalcfg, err := configutil.DefaultedStaticInitConfiguration()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []byte{}, err
|
return []byte{}, err
|
||||||
}
|
}
|
||||||
@ -233,7 +209,7 @@ func getDefaultNodeConfigBytes() ([]byte, error) {
|
|||||||
internalcfg, err := configutil.DefaultedJoinConfiguration(&kubeadmapiv1beta2.JoinConfiguration{
|
internalcfg, err := configutil.DefaultedJoinConfiguration(&kubeadmapiv1beta2.JoinConfiguration{
|
||||||
Discovery: kubeadmapiv1beta2.Discovery{
|
Discovery: kubeadmapiv1beta2.Discovery{
|
||||||
BootstrapToken: &kubeadmapiv1beta2.BootstrapTokenDiscovery{
|
BootstrapToken: &kubeadmapiv1beta2.BootstrapTokenDiscovery{
|
||||||
Token: placeholderToken.Token.String(),
|
Token: configutil.PlaceholderToken.Token.String(),
|
||||||
APIServerEndpoint: "kube-apiserver:6443",
|
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
|
UnsafeSkipCAVerification: true, // TODO: UnsafeSkipCAVerification: true needs to be set for validation to pass, but shouldn't be recommended as the default
|
||||||
},
|
},
|
||||||
|
@ -11,8 +11,7 @@ go_test(
|
|||||||
srcs = ["proxy_test.go"],
|
srcs = ["proxy_test.go"],
|
||||||
embed = [":go_default_library"],
|
embed = [":go_default_library"],
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/kubeadm/app/apis/kubeadm/v1beta2:go_default_library",
|
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
||||||
"//cmd/kubeadm/app/constants:go_default_library",
|
|
||||||
"//cmd/kubeadm/app/util:go_default_library",
|
"//cmd/kubeadm/app/util:go_default_library",
|
||||||
"//cmd/kubeadm/app/util/config:go_default_library",
|
"//cmd/kubeadm/app/util/config:go_default_library",
|
||||||
"//staging/src/k8s.io/api/apps/v1:go_default_library",
|
"//staging/src/k8s.io/api/apps/v1:go_default_library",
|
||||||
|
@ -27,8 +27,7 @@ import (
|
|||||||
clientsetfake "k8s.io/client-go/kubernetes/fake"
|
clientsetfake "k8s.io/client-go/kubernetes/fake"
|
||||||
clientsetscheme "k8s.io/client-go/kubernetes/scheme"
|
clientsetscheme "k8s.io/client-go/kubernetes/scheme"
|
||||||
core "k8s.io/client-go/testing"
|
core "k8s.io/client-go/testing"
|
||||||
kubeadmapiv1beta2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
|
||||||
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
|
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
|
||||||
configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config"
|
configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config"
|
||||||
)
|
)
|
||||||
@ -169,21 +168,22 @@ func TestEnsureProxyAddon(t *testing.T) {
|
|||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
// Create a fake client and set up default test configuration
|
// Create a fake client and set up default test configuration
|
||||||
client := clientsetfake.NewSimpleClientset()
|
client := clientsetfake.NewSimpleClientset()
|
||||||
|
|
||||||
// TODO: Consider using a YAML file instead for this that makes it possible to specify YAML documents for the ComponentConfigs
|
// TODO: Consider using a YAML file instead for this that makes it possible to specify YAML documents for the ComponentConfigs
|
||||||
controlPlaneConfig := &kubeadmapiv1beta2.InitConfiguration{
|
initConfiguration, err := configutil.DefaultedStaticInitConfiguration()
|
||||||
LocalAPIEndpoint: kubeadmapiv1beta2.APIEndpoint{
|
if err != nil {
|
||||||
|
t.Errorf("test failed to convert external to internal version: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
initConfiguration.LocalAPIEndpoint = kubeadmapi.APIEndpoint{
|
||||||
AdvertiseAddress: "1.2.3.4",
|
AdvertiseAddress: "1.2.3.4",
|
||||||
BindPort: 1234,
|
BindPort: 1234,
|
||||||
},
|
|
||||||
}
|
|
||||||
controlPlaneClusterConfig := &kubeadmapiv1beta2.ClusterConfiguration{
|
|
||||||
Networking: kubeadmapiv1beta2.Networking{
|
|
||||||
PodSubnet: "5.6.7.8/24",
|
|
||||||
},
|
|
||||||
ImageRepository: "someRepo",
|
|
||||||
KubernetesVersion: constants.MinimumControlPlaneVersion.String(),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initConfiguration.ClusterConfiguration.Networking.PodSubnet = "5.6.7.8/24"
|
||||||
|
initConfiguration.ClusterConfiguration.ImageRepository = "someRepo"
|
||||||
|
|
||||||
// Simulate an error if necessary
|
// Simulate an error if necessary
|
||||||
switch tc.simError {
|
switch tc.simError {
|
||||||
case ServiceAccountError:
|
case ServiceAccountError:
|
||||||
@ -191,18 +191,13 @@ func TestEnsureProxyAddon(t *testing.T) {
|
|||||||
return true, nil, apierrors.NewUnauthorized("")
|
return true, nil, apierrors.NewUnauthorized("")
|
||||||
})
|
})
|
||||||
case InvalidControlPlaneEndpoint:
|
case InvalidControlPlaneEndpoint:
|
||||||
controlPlaneConfig.LocalAPIEndpoint.AdvertiseAddress = "1.2.3"
|
initConfiguration.LocalAPIEndpoint.AdvertiseAddress = "1.2.3"
|
||||||
case IPv6SetBindAddress:
|
case IPv6SetBindAddress:
|
||||||
controlPlaneConfig.LocalAPIEndpoint.AdvertiseAddress = "1:2::3:4"
|
initConfiguration.LocalAPIEndpoint.AdvertiseAddress = "1:2::3:4"
|
||||||
controlPlaneClusterConfig.Networking.PodSubnet = "2001:101::/48"
|
initConfiguration.ClusterConfiguration.Networking.PodSubnet = "2001:101::/48"
|
||||||
}
|
}
|
||||||
|
|
||||||
intControlPlane, err := configutil.DefaultedInitConfiguration(controlPlaneConfig, controlPlaneClusterConfig)
|
err = EnsureProxyAddon(&initConfiguration.ClusterConfiguration, &initConfiguration.LocalAPIEndpoint, client)
|
||||||
if err != nil {
|
|
||||||
t.Errorf("test failed to convert external to internal version: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
err = EnsureProxyAddon(&intControlPlane.ClusterConfiguration, &intControlPlane.LocalAPIEndpoint, client)
|
|
||||||
|
|
||||||
// Compare actual to expected errors
|
// Compare actual to expected errors
|
||||||
actErr := "No error"
|
actErr := "No error"
|
||||||
|
@ -36,8 +36,6 @@ go_test(
|
|||||||
embed = [":go_default_library"],
|
embed = [":go_default_library"],
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
||||||
"//cmd/kubeadm/app/apis/kubeadm/v1beta2:go_default_library",
|
|
||||||
"//cmd/kubeadm/app/constants:go_default_library",
|
|
||||||
"//cmd/kubeadm/app/util/config:go_default_library",
|
"//cmd/kubeadm/app/util/config:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
|
@ -25,8 +25,6 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/version"
|
"k8s.io/apimachinery/pkg/util/version"
|
||||||
"k8s.io/client-go/kubernetes/fake"
|
"k8s.io/client-go/kubernetes/fake"
|
||||||
core "k8s.io/client-go/testing"
|
core "k8s.io/client-go/testing"
|
||||||
kubeadmapiv1beta2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
|
||||||
configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config"
|
configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -51,12 +49,9 @@ func TestCreateConfigMap(t *testing.T) {
|
|||||||
return true, nil, nil
|
return true, nil, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
clusterCfg := &kubeadmapiv1beta2.ClusterConfiguration{
|
internalcfg, err := configutil.DefaultedStaticInitConfiguration()
|
||||||
KubernetesVersion: constants.CurrentKubernetesVersion.String(),
|
|
||||||
}
|
|
||||||
internalcfg, err := configutil.DefaultedInitConfiguration(&kubeadmapiv1beta2.InitConfiguration{}, clusterCfg)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected failure by DefaultedInitConfiguration: %v", err)
|
t.Fatalf("unexpected failure when defaulting InitConfiguration: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := CreateConfigMap(&internalcfg.ClusterConfiguration, client); err != nil {
|
if err := CreateConfigMap(&internalcfg.ClusterConfiguration, client); err != nil {
|
||||||
|
@ -44,7 +44,6 @@ go_test(
|
|||||||
deps = [
|
deps = [
|
||||||
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
||||||
"//cmd/kubeadm/app/apis/kubeadm/scheme:go_default_library",
|
"//cmd/kubeadm/app/apis/kubeadm/scheme:go_default_library",
|
||||||
"//cmd/kubeadm/app/apis/kubeadm/v1beta2:go_default_library",
|
|
||||||
"//cmd/kubeadm/app/constants:go_default_library",
|
"//cmd/kubeadm/app/constants:go_default_library",
|
||||||
"//cmd/kubeadm/app/util/config:go_default_library",
|
"//cmd/kubeadm/app/util/config:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
|
@ -27,7 +27,6 @@ import (
|
|||||||
clientsetfake "k8s.io/client-go/kubernetes/fake"
|
clientsetfake "k8s.io/client-go/kubernetes/fake"
|
||||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme"
|
kubeadmscheme "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme"
|
||||||
kubeadmapiv1beta2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
|
||||||
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config"
|
configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config"
|
||||||
)
|
)
|
||||||
@ -50,33 +49,14 @@ func TestUploadConfiguration(t *testing.T) {
|
|||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t2 *testing.T) {
|
t.Run(tt.name, func(t2 *testing.T) {
|
||||||
initialcfg := &kubeadmapiv1beta2.InitConfiguration{
|
cfg, err := configutil.DefaultedStaticInitConfiguration()
|
||||||
LocalAPIEndpoint: kubeadmapiv1beta2.APIEndpoint{
|
|
||||||
AdvertiseAddress: "1.2.3.4",
|
|
||||||
},
|
|
||||||
BootstrapTokens: []kubeadmapiv1beta2.BootstrapToken{
|
|
||||||
{
|
|
||||||
Token: &kubeadmapiv1beta2.BootstrapTokenString{
|
|
||||||
ID: "abcdef",
|
|
||||||
Secret: "abcdef0123456789",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
NodeRegistration: kubeadmapiv1beta2.NodeRegistrationOptions{
|
|
||||||
Name: "node-foo",
|
|
||||||
CRISocket: "/var/run/custom-cri.sock",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
clustercfg := &kubeadmapiv1beta2.ClusterConfiguration{
|
|
||||||
KubernetesVersion: kubeadmconstants.MinimumControlPlaneVersion.WithPatch(10).String(),
|
|
||||||
}
|
|
||||||
cfg, err := configutil.DefaultedInitConfiguration(initialcfg, clustercfg)
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t2.Fatalf("UploadConfiguration() error = %v", err)
|
t2.Fatalf("UploadConfiguration() error = %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg.ComponentConfigs = kubeadmapi.ComponentConfigMap{}
|
cfg.ComponentConfigs = kubeadmapi.ComponentConfigMap{}
|
||||||
|
cfg.ClusterConfiguration.KubernetesVersion = kubeadmconstants.MinimumControlPlaneVersion.WithPatch(10).String()
|
||||||
|
cfg.NodeRegistration.Name = "node-foo"
|
||||||
|
cfg.NodeRegistration.CRISocket = kubeadmconstants.UnknownCRISocket
|
||||||
|
|
||||||
status := &kubeadmapi.ClusterStatus{
|
status := &kubeadmapi.ClusterStatus{
|
||||||
APIEndpoints: map[string]kubeadmapi.APIEndpoint{
|
APIEndpoints: map[string]kubeadmapi.APIEndpoint{
|
||||||
@ -117,7 +97,7 @@ func TestUploadConfiguration(t *testing.T) {
|
|||||||
decodedCfg.ComponentConfigs = kubeadmapi.ComponentConfigMap{}
|
decodedCfg.ComponentConfigs = kubeadmapi.ComponentConfigMap{}
|
||||||
|
|
||||||
if !reflect.DeepEqual(decodedCfg, &cfg.ClusterConfiguration) {
|
if !reflect.DeepEqual(decodedCfg, &cfg.ClusterConfiguration) {
|
||||||
t2.Errorf("the initial and decoded ClusterConfiguration didn't match:\n%t\n===\n%t", decodedCfg.ComponentConfigs == nil, cfg.ComponentConfigs == nil)
|
t2.Errorf("the initial and decoded ClusterConfiguration didn't match:\n%#v\n===\n%#v", decodedCfg, &cfg.ClusterConfiguration)
|
||||||
}
|
}
|
||||||
|
|
||||||
statusData := controlPlaneCfg.Data[kubeadmconstants.ClusterStatusConfigMapKey]
|
statusData := controlPlaneCfg.Data[kubeadmconstants.ClusterStatusConfigMapKey]
|
||||||
|
@ -36,12 +36,23 @@ import (
|
|||||||
kubeadmapiv1beta2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
kubeadmapiv1beta2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation"
|
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs"
|
"k8s.io/kubernetes/cmd/kubeadm/app/componentconfigs"
|
||||||
|
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
|
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/util/config/strict"
|
"k8s.io/kubernetes/cmd/kubeadm/app/util/config/strict"
|
||||||
kubeadmruntime "k8s.io/kubernetes/cmd/kubeadm/app/util/runtime"
|
kubeadmruntime "k8s.io/kubernetes/cmd/kubeadm/app/util/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// PlaceholderToken is only set statically to make kubeadm not randomize the token on every run
|
||||||
|
PlaceholderToken = kubeadmapiv1beta2.BootstrapToken{
|
||||||
|
Token: &kubeadmapiv1beta2.BootstrapTokenString{
|
||||||
|
ID: "abcdef",
|
||||||
|
Secret: "0123456789abcdef",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
// SetInitDynamicDefaults checks and sets configuration values for the InitConfiguration object
|
// SetInitDynamicDefaults checks and sets configuration values for the InitConfiguration object
|
||||||
func SetInitDynamicDefaults(cfg *kubeadmapi.InitConfiguration) error {
|
func SetInitDynamicDefaults(cfg *kubeadmapi.InitConfiguration) error {
|
||||||
if err := SetBootstrapTokensDynamicDefaults(&cfg.BootstrapTokens); err != nil {
|
if err := SetBootstrapTokensDynamicDefaults(&cfg.BootstrapTokens); err != nil {
|
||||||
@ -169,6 +180,40 @@ func SetClusterDynamicDefaults(cfg *kubeadmapi.ClusterConfiguration, localAPIEnd
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DefaultedStaticInitConfiguration returns the internal InitConfiguration with static defaults.
|
||||||
|
func DefaultedStaticInitConfiguration() (*kubeadmapi.InitConfiguration, error) {
|
||||||
|
versionedInitCfg := &kubeadmapiv1beta2.InitConfiguration{
|
||||||
|
LocalAPIEndpoint: kubeadmapiv1beta2.APIEndpoint{AdvertiseAddress: "1.2.3.4"},
|
||||||
|
BootstrapTokens: []kubeadmapiv1beta2.BootstrapToken{PlaceholderToken},
|
||||||
|
NodeRegistration: kubeadmapiv1beta2.NodeRegistrationOptions{
|
||||||
|
CRISocket: constants.DefaultDockerCRISocket, // avoid CRI detection
|
||||||
|
Name: "node",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
versionedClusterCfg := &kubeadmapiv1beta2.ClusterConfiguration{
|
||||||
|
KubernetesVersion: constants.CurrentKubernetesVersion.String(), // avoid going to the Internet for the current Kubernetes version
|
||||||
|
}
|
||||||
|
|
||||||
|
internalcfg := &kubeadmapi.InitConfiguration{}
|
||||||
|
|
||||||
|
// Takes passed flags into account; the defaulting is executed once again enforcing assignment of
|
||||||
|
// static default values to cfg only for values not provided with flags
|
||||||
|
kubeadmscheme.Scheme.Default(versionedInitCfg)
|
||||||
|
if err := kubeadmscheme.Scheme.Convert(versionedInitCfg, internalcfg, nil); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
kubeadmscheme.Scheme.Default(versionedClusterCfg)
|
||||||
|
if err := kubeadmscheme.Scheme.Convert(versionedClusterCfg, &internalcfg.ClusterConfiguration, nil); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Default all the embedded ComponentConfig structs
|
||||||
|
componentconfigs.Default(&internalcfg.ClusterConfiguration, &internalcfg.LocalAPIEndpoint, &internalcfg.NodeRegistration)
|
||||||
|
|
||||||
|
return internalcfg, nil
|
||||||
|
}
|
||||||
|
|
||||||
// DefaultedInitConfiguration takes a versioned init config (often populated by flags), defaults it and converts it into internal InitConfiguration
|
// DefaultedInitConfiguration takes a versioned init config (often populated by flags), defaults it and converts it into internal InitConfiguration
|
||||||
func DefaultedInitConfiguration(versionedInitCfg *kubeadmapiv1beta2.InitConfiguration, versionedClusterCfg *kubeadmapiv1beta2.ClusterConfiguration) (*kubeadmapi.InitConfiguration, error) {
|
func DefaultedInitConfiguration(versionedInitCfg *kubeadmapiv1beta2.InitConfiguration, versionedClusterCfg *kubeadmapiv1beta2.ClusterConfiguration) (*kubeadmapi.InitConfiguration, error) {
|
||||||
internalcfg := &kubeadmapi.InitConfiguration{}
|
internalcfg := &kubeadmapi.InitConfiguration{}
|
||||||
|
@ -11,7 +11,6 @@ go_library(
|
|||||||
importpath = "k8s.io/kubernetes/cmd/kubeadm/test",
|
importpath = "k8s.io/kubernetes/cmd/kubeadm/test",
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
"//cmd/kubeadm/app/apis/kubeadm:go_default_library",
|
||||||
"//cmd/kubeadm/app/apis/kubeadm/v1beta2:go_default_library",
|
|
||||||
"//cmd/kubeadm/app/constants:go_default_library",
|
"//cmd/kubeadm/app/constants:go_default_library",
|
||||||
"//cmd/kubeadm/app/util/certs:go_default_library",
|
"//cmd/kubeadm/app/util/certs:go_default_library",
|
||||||
"//cmd/kubeadm/app/util/config:go_default_library",
|
"//cmd/kubeadm/app/util/config:go_default_library",
|
||||||
|
@ -23,7 +23,6 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
kubeadmapiv1beta2 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2"
|
|
||||||
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
certtestutil "k8s.io/kubernetes/cmd/kubeadm/app/util/certs"
|
certtestutil "k8s.io/kubernetes/cmd/kubeadm/app/util/certs"
|
||||||
configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config"
|
configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config"
|
||||||
@ -114,10 +113,9 @@ func AssertError(t *testing.T, err error, expected string) {
|
|||||||
|
|
||||||
// GetDefaultInternalConfig returns a defaulted kubeadmapi.InitConfiguration
|
// GetDefaultInternalConfig returns a defaulted kubeadmapi.InitConfiguration
|
||||||
func GetDefaultInternalConfig(t *testing.T) *kubeadmapi.InitConfiguration {
|
func GetDefaultInternalConfig(t *testing.T) *kubeadmapi.InitConfiguration {
|
||||||
internalcfg, err := configutil.DefaultedInitConfiguration(&kubeadmapiv1beta2.InitConfiguration{}, &kubeadmapiv1beta2.ClusterConfiguration{})
|
internalcfg, err := configutil.DefaultedStaticInitConfiguration()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error getting default config: %v", err)
|
t.Fatalf("unexpected error getting default config: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return internalcfg
|
return internalcfg
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user