Skip to content

Commit 1b11374

Browse files
committed
fix controller manager arguments for v1.12-
1 parent 45c5ddd commit 1b11374

File tree

2 files changed

+159
-16
lines changed

2 files changed

+159
-16
lines changed

cmd/kubeadm/app/phases/controlplane/manifests.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -292,10 +292,14 @@ func getControllerManagerCommand(cfg *kubeadmapi.InitConfiguration, k8sVersion *
292292
"cluster-signing-key-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.CAKeyName),
293293
"use-service-account-credentials": "true",
294294
"controllers": "*,bootstrapsigner,tokencleaner",
295-
"authentication-kubeconfig": filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ControllerManagerKubeConfigFileName),
296-
"authorization-kubeconfig": filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ControllerManagerKubeConfigFileName),
297-
"client-ca-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.CACertName),
298-
"requestheader-client-ca-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.FrontProxyCACertName),
295+
}
296+
297+
//add the extra arguments for v1.12+
298+
if k8sVersion.Major() >= 1 && k8sVersion.Minor() >= 12 {
299+
defaultArguments["authentication-kubeconfig"] = filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ControllerManagerKubeConfigFileName)
300+
defaultArguments["authorization-kubeconfig"] = filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ControllerManagerKubeConfigFileName)
301+
defaultArguments["client-ca-file"] = filepath.Join(cfg.CertificatesDir, kubeadmconstants.CACertName)
302+
defaultArguments["requestheader-client-ca-file"] = filepath.Join(cfg.CertificatesDir, kubeadmconstants.FrontProxyCACertName)
299303
}
300304

301305
// If using external CA, pass empty string to controller manager instead of ca.key/ca.crt path,

cmd/kubeadm/app/phases/controlplane/manifests_test.go

Lines changed: 151 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -663,10 +663,10 @@ func TestGetControllerManagerCommand(t *testing.T) {
663663
expected []string
664664
}{
665665
{
666-
name: "custom certs dir",
666+
name: "custom certs dir for v1.12.0-beta.2",
667667
cfg: &kubeadmapi.ClusterConfiguration{
668668
CertificatesDir: testCertsDir,
669-
KubernetesVersion: "v1.7.0",
669+
KubernetesVersion: "v1.12.0-beta.2",
670670
},
671671
expected: []string{
672672
"kube-controller-manager",
@@ -686,11 +686,11 @@ func TestGetControllerManagerCommand(t *testing.T) {
686686
},
687687
},
688688
{
689-
name: "custom cloudprovider",
689+
name: "custom cloudprovider for v1.12.0-beta.2",
690690
cfg: &kubeadmapi.ClusterConfiguration{
691691
Networking: kubeadmapi.Networking{PodSubnet: "10.0.1.15/16"},
692692
CertificatesDir: testCertsDir,
693-
KubernetesVersion: "v1.7.0",
693+
KubernetesVersion: "v1.12.0-beta.2",
694694
},
695695
expected: []string{
696696
"kube-controller-manager",
@@ -713,12 +713,12 @@ func TestGetControllerManagerCommand(t *testing.T) {
713713
},
714714
},
715715
{
716-
name: "custom extra-args",
716+
name: "custom extra-args for v1.12.0-beta.2",
717717
cfg: &kubeadmapi.ClusterConfiguration{
718718
Networking: kubeadmapi.Networking{PodSubnet: "10.0.1.15/16"},
719719
ControllerManagerExtraArgs: map[string]string{"node-cidr-mask-size": "20"},
720720
CertificatesDir: testCertsDir,
721-
KubernetesVersion: "v1.7.0",
721+
KubernetesVersion: "v1.12.0-beta.2",
722722
},
723723
expected: []string{
724724
"kube-controller-manager",
@@ -741,11 +741,11 @@ func TestGetControllerManagerCommand(t *testing.T) {
741741
},
742742
},
743743
{
744-
name: "custom IPv6 networking",
744+
name: "custom IPv6 networking for v1.12.0-beta.2",
745745
cfg: &kubeadmapi.ClusterConfiguration{
746746
Networking: kubeadmapi.Networking{PodSubnet: "2001:db8::/64"},
747747
CertificatesDir: testCertsDir,
748-
KubernetesVersion: "v1.7.0",
748+
KubernetesVersion: "v1.12.0-beta.2",
749749
},
750750
expected: []string{
751751
"kube-controller-manager",
@@ -767,6 +767,95 @@ func TestGetControllerManagerCommand(t *testing.T) {
767767
"--node-cidr-mask-size=80",
768768
},
769769
},
770+
{
771+
name: "custom certs dir for v1.11.3",
772+
cfg: &kubeadmapi.ClusterConfiguration{
773+
CertificatesDir: testCertsDir,
774+
KubernetesVersion: "v1.11.3",
775+
},
776+
expected: []string{
777+
"kube-controller-manager",
778+
"--address=127.0.0.1",
779+
"--leader-elect=true",
780+
"--kubeconfig=" + kubeadmconstants.KubernetesDir + "/controller-manager.conf",
781+
"--root-ca-file=" + testCertsDir + "/ca.crt",
782+
"--service-account-private-key-file=" + testCertsDir + "/sa.key",
783+
"--cluster-signing-cert-file=" + testCertsDir + "/ca.crt",
784+
"--cluster-signing-key-file=" + testCertsDir + "/ca.key",
785+
"--use-service-account-credentials=true",
786+
"--controllers=*,bootstrapsigner,tokencleaner",
787+
},
788+
},
789+
{
790+
name: "custom cloudprovider for v1.11.3",
791+
cfg: &kubeadmapi.ClusterConfiguration{
792+
Networking: kubeadmapi.Networking{PodSubnet: "10.0.1.15/16"},
793+
CertificatesDir: testCertsDir,
794+
KubernetesVersion: "v1.11.3",
795+
},
796+
expected: []string{
797+
"kube-controller-manager",
798+
"--address=127.0.0.1",
799+
"--leader-elect=true",
800+
"--kubeconfig=" + kubeadmconstants.KubernetesDir + "/controller-manager.conf",
801+
"--root-ca-file=" + testCertsDir + "/ca.crt",
802+
"--service-account-private-key-file=" + testCertsDir + "/sa.key",
803+
"--cluster-signing-cert-file=" + testCertsDir + "/ca.crt",
804+
"--cluster-signing-key-file=" + testCertsDir + "/ca.key",
805+
"--use-service-account-credentials=true",
806+
"--controllers=*,bootstrapsigner,tokencleaner",
807+
"--allocate-node-cidrs=true",
808+
"--cluster-cidr=10.0.1.15/16",
809+
"--node-cidr-mask-size=24",
810+
},
811+
},
812+
{
813+
name: "custom extra-args for v1.11.3",
814+
cfg: &kubeadmapi.ClusterConfiguration{
815+
Networking: kubeadmapi.Networking{PodSubnet: "10.0.1.15/16"},
816+
ControllerManagerExtraArgs: map[string]string{"node-cidr-mask-size": "20"},
817+
CertificatesDir: testCertsDir,
818+
KubernetesVersion: "v1.11.3",
819+
},
820+
expected: []string{
821+
"kube-controller-manager",
822+
"--address=127.0.0.1",
823+
"--leader-elect=true",
824+
"--kubeconfig=" + kubeadmconstants.KubernetesDir + "/controller-manager.conf",
825+
"--root-ca-file=" + testCertsDir + "/ca.crt",
826+
"--service-account-private-key-file=" + testCertsDir + "/sa.key",
827+
"--cluster-signing-cert-file=" + testCertsDir + "/ca.crt",
828+
"--cluster-signing-key-file=" + testCertsDir + "/ca.key",
829+
"--use-service-account-credentials=true",
830+
"--controllers=*,bootstrapsigner,tokencleaner",
831+
"--allocate-node-cidrs=true",
832+
"--cluster-cidr=10.0.1.15/16",
833+
"--node-cidr-mask-size=20",
834+
},
835+
},
836+
{
837+
name: "custom IPv6 networking for v1.11.3",
838+
cfg: &kubeadmapi.ClusterConfiguration{
839+
Networking: kubeadmapi.Networking{PodSubnet: "2001:db8::/64"},
840+
CertificatesDir: testCertsDir,
841+
KubernetesVersion: "v1.11.3",
842+
},
843+
expected: []string{
844+
"kube-controller-manager",
845+
"--address=127.0.0.1",
846+
"--leader-elect=true",
847+
"--kubeconfig=" + kubeadmconstants.KubernetesDir + "/controller-manager.conf",
848+
"--root-ca-file=" + testCertsDir + "/ca.crt",
849+
"--service-account-private-key-file=" + testCertsDir + "/sa.key",
850+
"--cluster-signing-cert-file=" + testCertsDir + "/ca.crt",
851+
"--cluster-signing-key-file=" + testCertsDir + "/ca.key",
852+
"--use-service-account-credentials=true",
853+
"--controllers=*,bootstrapsigner,tokencleaner",
854+
"--allocate-node-cidrs=true",
855+
"--cluster-cidr=2001:db8::/64",
856+
"--node-cidr-mask-size=80",
857+
},
858+
},
770859
}
771860

772861
for _, rt := range tests {
@@ -868,11 +957,11 @@ func TestGetControllerManagerCommandExternalCA(t *testing.T) {
868957
expectedArgFunc func(dir string) []string
869958
}{
870959
{
871-
name: "caKeyPresent-false",
960+
name: "caKeyPresent-false for v1.12.0-beta.2",
872961
cfg: &kubeadmapi.InitConfiguration{
873962
APIEndpoint: kubeadmapi.APIEndpoint{AdvertiseAddress: "1.2.3.4"},
874963
ClusterConfiguration: kubeadmapi.ClusterConfiguration{
875-
KubernetesVersion: "v1.7.0",
964+
KubernetesVersion: "v1.12.0-beta.2",
876965
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
877966
},
878967
},
@@ -897,11 +986,11 @@ func TestGetControllerManagerCommandExternalCA(t *testing.T) {
897986
},
898987
},
899988
{
900-
name: "caKeyPresent true",
989+
name: "caKeyPresent true for v1.12.0-beta.2",
901990
cfg: &kubeadmapi.InitConfiguration{
902991
APIEndpoint: kubeadmapi.APIEndpoint{AdvertiseAddress: "1.2.3.4"},
903992
ClusterConfiguration: kubeadmapi.ClusterConfiguration{
904-
KubernetesVersion: "v1.7.0",
993+
KubernetesVersion: "v1.12.0-beta.2",
905994
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
906995
},
907996
},
@@ -925,6 +1014,56 @@ func TestGetControllerManagerCommandExternalCA(t *testing.T) {
9251014
}
9261015
},
9271016
},
1017+
{
1018+
name: "caKeyPresent-false for v1.11.3",
1019+
cfg: &kubeadmapi.InitConfiguration{
1020+
APIEndpoint: kubeadmapi.APIEndpoint{AdvertiseAddress: "1.2.3.4"},
1021+
ClusterConfiguration: kubeadmapi.ClusterConfiguration{
1022+
KubernetesVersion: "v1.11.3",
1023+
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
1024+
},
1025+
},
1026+
caKeyPresent: false,
1027+
expectedArgFunc: func(tmpdir string) []string {
1028+
return []string{
1029+
"kube-controller-manager",
1030+
"--address=127.0.0.1",
1031+
"--leader-elect=true",
1032+
"--kubeconfig=" + kubeadmconstants.KubernetesDir + "/controller-manager.conf",
1033+
"--root-ca-file=" + tmpdir + "/ca.crt",
1034+
"--service-account-private-key-file=" + tmpdir + "/sa.key",
1035+
"--cluster-signing-cert-file=",
1036+
"--cluster-signing-key-file=",
1037+
"--use-service-account-credentials=true",
1038+
"--controllers=*,bootstrapsigner,tokencleaner",
1039+
}
1040+
},
1041+
},
1042+
{
1043+
name: "caKeyPresent true for v1.11.3",
1044+
cfg: &kubeadmapi.InitConfiguration{
1045+
APIEndpoint: kubeadmapi.APIEndpoint{AdvertiseAddress: "1.2.3.4"},
1046+
ClusterConfiguration: kubeadmapi.ClusterConfiguration{
1047+
KubernetesVersion: "v1.11.3",
1048+
Networking: kubeadmapi.Networking{ServiceSubnet: "10.96.0.0/12", DNSDomain: "cluster.local"},
1049+
},
1050+
},
1051+
caKeyPresent: true,
1052+
expectedArgFunc: func(tmpdir string) []string {
1053+
return []string{
1054+
"kube-controller-manager",
1055+
"--address=127.0.0.1",
1056+
"--leader-elect=true",
1057+
"--kubeconfig=" + kubeadmconstants.KubernetesDir + "/controller-manager.conf",
1058+
"--root-ca-file=" + tmpdir + "/ca.crt",
1059+
"--service-account-private-key-file=" + tmpdir + "/sa.key",
1060+
"--cluster-signing-cert-file=" + tmpdir + "/ca.crt",
1061+
"--cluster-signing-key-file=" + tmpdir + "/ca.key",
1062+
"--use-service-account-credentials=true",
1063+
"--controllers=*,bootstrapsigner,tokencleaner",
1064+
}
1065+
},
1066+
},
9281067
}
9291068

9301069
for _, test := range tests {

0 commit comments

Comments
 (0)