Update unit tests to use the new NodeRegistration object

This commit is contained in:
Lucas Käldström 2018-05-29 17:52:10 +03:00
parent b48f23b786
commit fd47f8b20c
No known key found for this signature in database
GPG Key ID: 3FA3783D77751514
14 changed files with 100 additions and 101 deletions

View File

@ -119,7 +119,7 @@ func TestValidateNodeName(t *testing.T) {
actual := ValidateNodeName(rt.s, rt.f) actual := ValidateNodeName(rt.s, rt.f)
if (len(actual) == 0) != rt.expected { if (len(actual) == 0) != rt.expected {
t.Errorf( t.Errorf(
"failed ValidateNodeName:\n\texpected: %t\n\t actual: %t", "failed ValidateNodeRegistration: kubeadm.NodeRegistrationOptions{Name:\n\texpected: %t\n\t actual: %t",
rt.expected, rt.expected,
(len(actual) == 0), (len(actual) == 0),
) )
@ -407,8 +407,8 @@ func TestValidateMasterConfiguration(t *testing.T) {
ServiceSubnet: "10.96.0.1/12", ServiceSubnet: "10.96.0.1/12",
DNSDomain: "cluster.local", DNSDomain: "cluster.local",
}, },
CertificatesDir: "/some/cert/dir", CertificatesDir: "/some/cert/dir",
NodeName: nodename, NodeRegistration: kubeadm.NodeRegistrationOptions{Name: nodename, CRISocket: "/some/path"},
}, false}, }, false},
{"invalid missing token with IPv6 service subnet", {"invalid missing token with IPv6 service subnet",
&kubeadm.MasterConfiguration{ &kubeadm.MasterConfiguration{
@ -420,8 +420,8 @@ func TestValidateMasterConfiguration(t *testing.T) {
ServiceSubnet: "2001:db8::1/98", ServiceSubnet: "2001:db8::1/98",
DNSDomain: "cluster.local", DNSDomain: "cluster.local",
}, },
CertificatesDir: "/some/cert/dir", CertificatesDir: "/some/cert/dir",
NodeName: nodename, NodeRegistration: kubeadm.NodeRegistrationOptions{Name: nodename, CRISocket: "/some/path"},
}, false}, }, false},
{"invalid missing node name", {"invalid missing node name",
&kubeadm.MasterConfiguration{ &kubeadm.MasterConfiguration{
@ -447,9 +447,9 @@ func TestValidateMasterConfiguration(t *testing.T) {
DNSDomain: "cluster.local", DNSDomain: "cluster.local",
PodSubnet: "10.0.1.15", PodSubnet: "10.0.1.15",
}, },
CertificatesDir: "/some/other/cert/dir", CertificatesDir: "/some/other/cert/dir",
Token: "abcdef.0123456789abcdef", Token: "abcdef.0123456789abcdef",
NodeName: nodename, NodeRegistration: kubeadm.NodeRegistrationOptions{Name: nodename, CRISocket: "/some/path"},
}, false}, }, false},
{"valid master configuration with IPv4 service subnet", {"valid master configuration with IPv4 service subnet",
&kubeadm.MasterConfiguration{ &kubeadm.MasterConfiguration{
@ -493,9 +493,9 @@ func TestValidateMasterConfiguration(t *testing.T) {
DNSDomain: "cluster.local", DNSDomain: "cluster.local",
PodSubnet: "10.0.1.15/16", PodSubnet: "10.0.1.15/16",
}, },
CertificatesDir: "/some/other/cert/dir", CertificatesDir: "/some/other/cert/dir",
Token: "abcdef.0123456789abcdef", Token: "abcdef.0123456789abcdef",
NodeName: nodename, NodeRegistration: kubeadm.NodeRegistrationOptions{Name: nodename, CRISocket: "/some/path"},
}, true}, }, true},
{"valid master configuration using IPv6 service subnet", {"valid master configuration using IPv6 service subnet",
&kubeadm.MasterConfiguration{ &kubeadm.MasterConfiguration{
@ -538,9 +538,9 @@ func TestValidateMasterConfiguration(t *testing.T) {
ServiceSubnet: "2001:db8::1/98", ServiceSubnet: "2001:db8::1/98",
DNSDomain: "cluster.local", DNSDomain: "cluster.local",
}, },
CertificatesDir: "/some/other/cert/dir", CertificatesDir: "/some/other/cert/dir",
Token: "abcdef.0123456789abcdef", Token: "abcdef.0123456789abcdef",
NodeName: nodename, NodeRegistration: kubeadm.NodeRegistrationOptions{Name: nodename, CRISocket: "/some/path"},
}, true}, }, true},
} }
for _, rt := range tests { for _, rt := range tests {

View File

@ -254,9 +254,9 @@ func TestSubCmdCertsCreateFilesWithConfigFile(t *testing.T) {
certdir := tmpdir certdir := tmpdir
cfg := &kubeadmapi.MasterConfiguration{ cfg := &kubeadmapi.MasterConfiguration{
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", BindPort: 1234}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", BindPort: 1234},
CertificatesDir: certdir, CertificatesDir: certdir,
NodeName: "valid-node-name", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-node-name"},
} }
configPath := testutil.SetupMasterConfigurationFile(t, tmpdir, cfg) configPath := testutil.SetupMasterConfigurationFile(t, tmpdir, cfg)

View File

@ -277,9 +277,9 @@ func TestKubeConfigSubCommandsThatCreateFilesWithConfigFile(t *testing.T) {
// Adds a master configuration file // Adds a master configuration file
cfg := &kubeadmapi.MasterConfiguration{ cfg := &kubeadmapi.MasterConfiguration{
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", BindPort: 1234}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", BindPort: 1234},
CertificatesDir: pkidir, CertificatesDir: pkidir,
NodeName: "valid-node-name", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-node-name"},
} }
cfgPath := testutil.SetupMasterConfigurationFile(t, tmpdir, cfg) cfgPath := testutil.SetupMasterConfigurationFile(t, tmpdir, cfg)

View File

@ -65,7 +65,9 @@ func TestPrintConfiguration(t *testing.T) {
dnsDomain: "" dnsDomain: ""
podSubnet: "" podSubnet: ""
serviceSubnet: "" serviceSubnet: ""
nodeName: "" nodeRegistration:
criSocket: ""
name: ""
token: "" token: ""
unifiedControlPlaneImage: "" unifiedControlPlaneImage: ""
`), `),
@ -108,7 +110,9 @@ func TestPrintConfiguration(t *testing.T) {
dnsDomain: "" dnsDomain: ""
podSubnet: "" podSubnet: ""
serviceSubnet: 10.96.0.1/12 serviceSubnet: 10.96.0.1/12
nodeName: "" nodeRegistration:
criSocket: ""
name: ""
token: "" token: ""
unifiedControlPlaneImage: "" unifiedControlPlaneImage: ""
`), `),

View File

@ -273,9 +273,9 @@ func TestNewAPIServerCertAndKey(t *testing.T) {
advertiseAddresses := []string{"1.2.3.4", "1:2:3::4"} advertiseAddresses := []string{"1.2.3.4", "1:2:3::4"}
for _, addr := range advertiseAddresses { for _, addr := range advertiseAddresses {
cfg := &kubeadmapi.MasterConfiguration{ cfg := &kubeadmapi.MasterConfiguration{
API: kubeadmapi.API{AdvertiseAddress: addr}, API: kubeadmapi.API{AdvertiseAddress: addr},
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"}, Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
NodeName: hostname, NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: hostname},
} }
caCert, caKey, err := NewCACertAndKey() caCert, caKey, err := NewCACertAndKey()
if err != nil { if err != nil {
@ -357,8 +357,8 @@ func TestNewEtcdPeerCertAndKey(t *testing.T) {
advertiseAddresses := []string{"1.2.3.4", "1:2:3::4"} advertiseAddresses := []string{"1.2.3.4", "1:2:3::4"}
for _, addr := range advertiseAddresses { for _, addr := range advertiseAddresses {
cfg := &kubeadmapi.MasterConfiguration{ cfg := &kubeadmapi.MasterConfiguration{
API: kubeadmapi.API{AdvertiseAddress: addr}, API: kubeadmapi.API{AdvertiseAddress: addr},
NodeName: hostname, NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: hostname},
Etcd: kubeadmapi.Etcd{ Etcd: kubeadmapi.Etcd{
Local: &kubeadmapi.LocalEtcd{ Local: &kubeadmapi.LocalEtcd{
PeerCertSANs: []string{ PeerCertSANs: []string{
@ -481,10 +481,10 @@ func TestUsingExternalCA(t *testing.T) {
defer os.RemoveAll(dir) defer os.RemoveAll(dir)
cfg := &kubeadmapi.MasterConfiguration{ cfg := &kubeadmapi.MasterConfiguration{
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4"}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4"},
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"}, Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
NodeName: "valid-hostname", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-hostname"},
CertificatesDir: dir, CertificatesDir: dir,
} }
for _, f := range test.setupFuncs { for _, f := range test.setupFuncs {
@ -564,10 +564,10 @@ func TestValidateMethods(t *testing.T) {
test.loc.pkiDir = dir test.loc.pkiDir = dir
cfg := &kubeadmapi.MasterConfiguration{ cfg := &kubeadmapi.MasterConfiguration{
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4"}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4"},
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"}, Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
NodeName: "valid-hostname", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-hostname"},
CertificatesDir: dir, CertificatesDir: dir,
} }
fmt.Println("Testing", test.name) fmt.Println("Testing", test.name)
@ -696,11 +696,11 @@ func TestCreateCertificateFilesMethods(t *testing.T) {
defer os.RemoveAll(tmpdir) defer os.RemoveAll(tmpdir)
cfg := &kubeadmapi.MasterConfiguration{ cfg := &kubeadmapi.MasterConfiguration{
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4"}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4"},
Etcd: kubeadmapi.Etcd{Local: &kubeadmapi.LocalEtcd{}}, Etcd: kubeadmapi.Etcd{Local: &kubeadmapi.LocalEtcd{}},
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"}, Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
NodeName: "valid-hostname", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-hostname"},
CertificatesDir: tmpdir, CertificatesDir: tmpdir,
} }
if test.externalEtcd { if test.externalEtcd {

View File

@ -448,7 +448,7 @@ func TestGetAPIServerAltNames(t *testing.T) {
cfg: &kubeadmapi.MasterConfiguration{ cfg: &kubeadmapi.MasterConfiguration{
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", ControlPlaneEndpoint: "api.k8s.io:6443"}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", ControlPlaneEndpoint: "api.k8s.io:6443"},
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"}, Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
NodeName: "valid-hostname", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-hostname"},
APIServerCertSANs: []string{"10.1.245.94", "10.1.245.95", "1.2.3.L", "invalid,commas,in,DNS"}, APIServerCertSANs: []string{"10.1.245.94", "10.1.245.95", "1.2.3.L", "invalid,commas,in,DNS"},
}, },
expectedDNSNames: []string{"valid-hostname", "kubernetes", "kubernetes.default", "kubernetes.default.svc", "kubernetes.default.svc.cluster.local", "api.k8s.io"}, expectedDNSNames: []string{"valid-hostname", "kubernetes", "kubernetes.default", "kubernetes.default.svc", "kubernetes.default.svc.cluster.local", "api.k8s.io"},
@ -459,7 +459,7 @@ func TestGetAPIServerAltNames(t *testing.T) {
cfg: &kubeadmapi.MasterConfiguration{ cfg: &kubeadmapi.MasterConfiguration{
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", ControlPlaneEndpoint: "4.5.6.7:6443"}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", ControlPlaneEndpoint: "4.5.6.7:6443"},
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"}, Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
NodeName: "valid-hostname", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-hostname"},
APIServerCertSANs: []string{"10.1.245.94", "10.1.245.95", "1.2.3.L", "invalid,commas,in,DNS"}, APIServerCertSANs: []string{"10.1.245.94", "10.1.245.95", "1.2.3.L", "invalid,commas,in,DNS"},
}, },
expectedDNSNames: []string{"valid-hostname", "kubernetes", "kubernetes.default", "kubernetes.default.svc", "kubernetes.default.svc.cluster.local"}, expectedDNSNames: []string{"valid-hostname", "kubernetes", "kubernetes.default", "kubernetes.default.svc", "kubernetes.default.svc.cluster.local"},
@ -561,8 +561,8 @@ func TestGetEtcdPeerAltNames(t *testing.T) {
proxyIP := "10.10.10.100" proxyIP := "10.10.10.100"
advertiseIP := "1.2.3.4" advertiseIP := "1.2.3.4"
cfg := &kubeadmapi.MasterConfiguration{ cfg := &kubeadmapi.MasterConfiguration{
API: kubeadmapi.API{AdvertiseAddress: advertiseIP}, API: kubeadmapi.API{AdvertiseAddress: advertiseIP},
NodeName: hostname, NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: hostname},
Etcd: kubeadmapi.Etcd{ Etcd: kubeadmapi.Etcd{
Local: &kubeadmapi.LocalEtcd{ Local: &kubeadmapi.LocalEtcd{
PeerCertSANs: []string{ PeerCertSANs: []string{

View File

@ -838,7 +838,7 @@ func TestGetControllerManagerCommandExternalCA(t *testing.T) {
KubernetesVersion: "v1.7.0", KubernetesVersion: "v1.7.0",
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4"}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4"},
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"}, Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
NodeName: "valid-hostname", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-hostname"},
}, },
caKeyPresent: false, caKeyPresent: false,
expectedArgFunc: func(tmpdir string) []string { expectedArgFunc: func(tmpdir string) []string {
@ -862,7 +862,7 @@ func TestGetControllerManagerCommandExternalCA(t *testing.T) {
KubernetesVersion: "v1.7.0", KubernetesVersion: "v1.7.0",
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4"}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4"},
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"}, Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
NodeName: "valid-hostname", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-hostname"},
}, },
caKeyPresent: true, caKeyPresent: true,
expectedArgFunc: func(tmpdir string) []string { expectedArgFunc: func(tmpdir string) []string {

View File

@ -67,29 +67,29 @@ func TestGetKubeConfigSpecs(t *testing.T) {
// Creates Master Configurations pointing to the pkidir folder // Creates Master Configurations pointing to the pkidir folder
cfgs := []*kubeadmapi.MasterConfiguration{ cfgs := []*kubeadmapi.MasterConfiguration{
{ {
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", BindPort: 1234}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", BindPort: 1234},
CertificatesDir: pkidir, CertificatesDir: pkidir,
NodeName: "valid-node-name", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-node-name"},
}, },
{ {
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", ControlPlaneEndpoint: "api.k8s.io", BindPort: 1234}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", ControlPlaneEndpoint: "api.k8s.io", BindPort: 1234},
CertificatesDir: pkidir, CertificatesDir: pkidir,
NodeName: "valid-node-name", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-node-name"},
}, },
{ {
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", ControlPlaneEndpoint: "api.k8s.io:4321", BindPort: 1234}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", ControlPlaneEndpoint: "api.k8s.io:4321", BindPort: 1234},
CertificatesDir: pkidir, CertificatesDir: pkidir,
NodeName: "valid-node-name", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-node-name"},
}, },
{ {
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", ControlPlaneEndpoint: "api.k8s.io", BindPort: 1234}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", ControlPlaneEndpoint: "api.k8s.io", BindPort: 1234},
CertificatesDir: pkidir, CertificatesDir: pkidir,
NodeName: "valid-node-name", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-node-name"},
}, },
{ {
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", ControlPlaneEndpoint: "api.k8s.io:4321", BindPort: 1234}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4", ControlPlaneEndpoint: "api.k8s.io:4321", BindPort: 1234},
CertificatesDir: pkidir, CertificatesDir: pkidir,
NodeName: "valid-node-name", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "valid-node-name"},
}, },
} }
@ -106,7 +106,7 @@ func TestGetKubeConfigSpecs(t *testing.T) {
}, },
{ {
kubeConfigFile: kubeadmconstants.KubeletKubeConfigFileName, kubeConfigFile: kubeadmconstants.KubeletKubeConfigFileName,
clientName: fmt.Sprintf("system:node:%s", cfg.NodeName), clientName: fmt.Sprintf("system:node:%s", cfg.NodeRegistration.Name),
organizations: []string{kubeadmconstants.NodesGroup}, organizations: []string{kubeadmconstants.NodesGroup},
}, },
{ {

View File

@ -33,7 +33,7 @@ func TestCreateConfigMap(t *testing.T) {
nodeName := "fake-node" nodeName := "fake-node"
client := fake.NewSimpleClientset() client := fake.NewSimpleClientset()
cfg := &kubeadmapi.MasterConfiguration{ cfg := &kubeadmapi.MasterConfiguration{
NodeName: nodeName, NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: nodeName},
KubernetesVersion: "v1.11.0", KubernetesVersion: "v1.11.0",
KubeletConfiguration: kubeadmapi.KubeletConfiguration{ KubeletConfiguration: kubeadmapi.KubeletConfiguration{
BaseConfig: &kubeletconfigv1beta1.KubeletConfiguration{}, BaseConfig: &kubeletconfigv1beta1.KubeletConfiguration{},

View File

@ -24,6 +24,7 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/kubernetes/fake"
core "k8s.io/client-go/testing" core "k8s.io/client-go/testing"
kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis"
"k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/pkg/util/version"
) )
@ -33,7 +34,8 @@ func TestEnableDynamicConfigForNode(t *testing.T) {
client.PrependReactor("get", "nodes", func(action core.Action) (bool, runtime.Object, error) { client.PrependReactor("get", "nodes", func(action core.Action) (bool, runtime.Object, error) {
return true, &v1.Node{ return true, &v1.Node{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Name: nodeName, Name: nodeName,
Labels: map[string]string{kubeletapis.LabelHostname: nodeName},
}, },
Spec: v1.NodeSpec{ Spec: v1.NodeSpec{
ConfigSource: &v1.NodeConfigSource{ ConfigSource: &v1.NodeConfigSource{

View File

@ -40,52 +40,52 @@ func TestMarkMaster(t *testing.T) {
// will need to change if strategicpatch's behavior changes in the // will need to change if strategicpatch's behavior changes in the
// future. // future.
tests := []struct { tests := []struct {
name string name string
existingLabel string existingLabel string
existingTaint *v1.Taint existingTaints []v1.Taint
wantTaint bool newTaints []v1.Taint
expectedPatch string expectedPatch string
}{ }{
{ {
"master label and taint missing", "master label and taint missing",
"", "",
nil, nil,
true, []v1.Taint{kubeadmconstants.MasterTaint},
"{\"metadata\":{\"labels\":{\"node-role.kubernetes.io/master\":\"\"}},\"spec\":{\"taints\":[{\"effect\":\"NoSchedule\",\"key\":\"node-role.kubernetes.io/master\"}]}}", "{\"metadata\":{\"labels\":{\"node-role.kubernetes.io/master\":\"\"}},\"spec\":{\"taints\":[{\"effect\":\"NoSchedule\",\"key\":\"node-role.kubernetes.io/master\"}]}}",
}, },
{ {
"master label and taint missing but taint not wanted", "master label and taint missing but taint not wanted",
"", "",
nil, nil,
false, nil,
"{\"metadata\":{\"labels\":{\"node-role.kubernetes.io/master\":\"\"}}}", "{\"metadata\":{\"labels\":{\"node-role.kubernetes.io/master\":\"\"}}}",
}, },
{ {
"master label missing", "master label missing",
"", "",
&kubeadmconstants.MasterTaint, []v1.Taint{kubeadmconstants.MasterTaint},
true, []v1.Taint{kubeadmconstants.MasterTaint},
"{\"metadata\":{\"labels\":{\"node-role.kubernetes.io/master\":\"\"}}}", "{\"metadata\":{\"labels\":{\"node-role.kubernetes.io/master\":\"\"}}}",
}, },
{ {
"master taint missing", "master taint missing",
kubeadmconstants.LabelNodeRoleMaster, kubeadmconstants.LabelNodeRoleMaster,
nil, nil,
true, []v1.Taint{kubeadmconstants.MasterTaint},
"{\"spec\":{\"taints\":[{\"effect\":\"NoSchedule\",\"key\":\"node-role.kubernetes.io/master\"}]}}", "{\"spec\":{\"taints\":[{\"effect\":\"NoSchedule\",\"key\":\"node-role.kubernetes.io/master\"}]}}",
}, },
{ {
"nothing missing", "nothing missing",
kubeadmconstants.LabelNodeRoleMaster, kubeadmconstants.LabelNodeRoleMaster,
&kubeadmconstants.MasterTaint, []v1.Taint{kubeadmconstants.MasterTaint},
true, []v1.Taint{kubeadmconstants.MasterTaint},
"{}", "{}",
}, },
{ {
"nothing missing but taint unwanted", "nothing missing but taint unwanted",
kubeadmconstants.LabelNodeRoleMaster, kubeadmconstants.LabelNodeRoleMaster,
&kubeadmconstants.MasterTaint, []v1.Taint{kubeadmconstants.MasterTaint},
false, nil,
"{\"spec\":{\"taints\":null}}", "{\"spec\":{\"taints\":null}}",
}, },
} }
@ -105,8 +105,8 @@ func TestMarkMaster(t *testing.T) {
masterNode.ObjectMeta.Labels[tc.existingLabel] = "" masterNode.ObjectMeta.Labels[tc.existingLabel] = ""
} }
if tc.existingTaint != nil { if tc.existingTaints != nil {
masterNode.Spec.Taints = append(masterNode.Spec.Taints, *tc.existingTaint) masterNode.Spec.Taints = tc.existingTaints
} }
jsonNode, err := json.Marshal(masterNode) jsonNode, err := json.Marshal(masterNode)
@ -144,8 +144,7 @@ func TestMarkMaster(t *testing.T) {
t.Fatalf("MarkMaster(%s): unexpected error building clientset: %v", tc.name, err) t.Fatalf("MarkMaster(%s): unexpected error building clientset: %v", tc.name, err)
} }
err = MarkMaster(cs, hostname, tc.wantTaint) if err := MarkMaster(cs, hostname, tc.newTaints); err != nil {
if err != nil {
t.Errorf("MarkMaster(%s) returned unexpected error: %v", tc.name, err) t.Errorf("MarkMaster(%s) returned unexpected error: %v", tc.name, err)
} }

View File

@ -131,9 +131,9 @@ func TestRollbackFiles(t *testing.T) {
func TestShouldBackupAPIServerCertAndKey(t *testing.T) { func TestShouldBackupAPIServerCertAndKey(t *testing.T) {
cfg := &kubeadmapi.MasterConfiguration{ cfg := &kubeadmapi.MasterConfiguration{
API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4"}, API: kubeadmapi.API{AdvertiseAddress: "1.2.3.4"},
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"}, Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
NodeName: "test-node", NodeRegistration: kubeadmapi.NodeRegistrationOptions{Name: "test-node"},
} }
for desc, test := range map[string]struct { for desc, test := range map[string]struct {

View File

@ -66,7 +66,9 @@ networking:
dnsDomain: cluster.local dnsDomain: cluster.local
podSubnet: "" podSubnet: ""
serviceSubnet: 10.96.0.0/12 serviceSubnet: 10.96.0.0/12
nodeName: thegopher nodeRegistration:
name: foo
criSocket: ""
schedulerExtraArgs: null schedulerExtraArgs: null
token: ce3aa5.5ec8455bb76b379f token: ce3aa5.5ec8455bb76b379f
tokenTTL: 24h tokenTTL: 24h

View File

@ -24,19 +24,17 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme"
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1"
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha2"
kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util"
) )
const ( const (
node_v1alpha1YAML = "testdata/conversion/node/v1alpha1.yaml" node_v1alpha1YAML = "testdata/conversion/node/v1alpha1.yaml"
node_v1alpha2YAML = "testdata/conversion/node/v1alpha2.yaml" node_v1alpha2YAML = "testdata/conversion/node/v1alpha2.yaml"
node_internalYAML = "testdata/conversion/node/internal.yaml" node_internalYAML = "testdata/conversion/node/internal.yaml"
node_incompleteYAML = "testdata/defaulting/node/incomplete.yaml" node_incompleteYAML = "testdata/defaulting/node/incomplete.yaml"
node_defaultedv1alpha1YAML = "testdata/defaulting/node/defaulted_v1alpha1.yaml" node_defaultedYAML = "testdata/defaulting/node/defaulted.yaml"
node_defaultedv1alpha2YAML = "testdata/defaulting/node/defaulted_v1alpha2.yaml" node_invalidYAML = "testdata/validation/invalid_nodecfg.yaml"
node_invalidYAML = "testdata/validation/invalid_nodecfg.yaml"
) )
func TestNodeConfigFileAndDefaultsToInternalConfig(t *testing.T) { func TestNodeConfigFileAndDefaultsToInternalConfig(t *testing.T) {
@ -67,16 +65,10 @@ func TestNodeConfigFileAndDefaultsToInternalConfig(t *testing.T) {
}, },
// These tests are reading one file that has only a subset of the fields populated, loading it using NodeConfigFileAndDefaultsToInternalConfig, // These tests are reading one file that has only a subset of the fields populated, loading it using NodeConfigFileAndDefaultsToInternalConfig,
// and then marshals the internal object to the expected groupVersion // and then marshals the internal object to the expected groupVersion
{ // v1alpha1 -> default -> validate -> internal -> v1alpha1
name: "incompleteYAMLToDefaulted",
in: node_incompleteYAML,
out: node_defaultedv1alpha1YAML,
groupVersion: v1alpha1.SchemeGroupVersion,
},
{ // v1alpha1 -> default -> validate -> internal -> v1alpha2 { // v1alpha1 -> default -> validate -> internal -> v1alpha2
name: "incompleteYAMLToDefaulted", name: "incompleteYAMLToDefaulted",
in: node_incompleteYAML, in: node_incompleteYAML,
out: node_defaultedv1alpha2YAML, out: node_defaultedYAML,
groupVersion: v1alpha2.SchemeGroupVersion, groupVersion: v1alpha2.SchemeGroupVersion,
}, },
{ // v1alpha1 (faulty) -> validation should fail { // v1alpha1 (faulty) -> validation should fail