From 97ea818cc8bd9602b53218eb328cab03164a1f95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Tue, 13 Jun 2017 16:17:13 +0300 Subject: [PATCH] kubeadm: Fix subtle versioning ordering issue with v1.8.0-alpha.0 --- cmd/kubeadm/app/master/manifests.go | 4 +++- cmd/kubeadm/app/phases/apiconfig/clusterroles.go | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cmd/kubeadm/app/master/manifests.go b/cmd/kubeadm/app/master/manifests.go index 912129b3a81..7e290685109 100644 --- a/cmd/kubeadm/app/master/manifests.go +++ b/cmd/kubeadm/app/master/manifests.go @@ -355,7 +355,9 @@ func getAPIServerCommand(cfg *kubeadmapi.MasterConfiguration, selfHosted bool, k defaultArguments["proxy-client-cert-file"] = filepath.Join(cfg.CertificatesDir, kubeadmconstants.FrontProxyClientCertName) defaultArguments["proxy-client-key-file"] = filepath.Join(cfg.CertificatesDir, kubeadmconstants.FrontProxyClientKeyName) } - if k8sVersion.AtLeast(kubeadmconstants.MinimumNodeAuthorizerVersion) { + // TODO: That we have to exclude v1.8.0-alpha.0 here is based on the way kubernetes branches work + // v1.7.0-beta.0 == v1.8.0.alpha.0 but they are sorted/compared differently + if k8sVersion.AtLeast(kubeadmconstants.MinimumNodeAuthorizerVersion) && cfg.KubernetesVersion != "v1.8.0-alpha.0" { // enable the NodeRestriction admission plugin defaultArguments["admission-control"] = defaultv17AdmissionControl } diff --git a/cmd/kubeadm/app/phases/apiconfig/clusterroles.go b/cmd/kubeadm/app/phases/apiconfig/clusterroles.go index 37181df5a69..848d87cac85 100644 --- a/cmd/kubeadm/app/phases/apiconfig/clusterroles.go +++ b/cmd/kubeadm/app/phases/apiconfig/clusterroles.go @@ -254,7 +254,9 @@ func deletePermissiveNodesBindingWhenUsingNodeAuthorization(clientset *clientset // If the server version is higher than the Node Authorizer's minimum, try to delete the Group=system:nodes->ClusterRole=system:node binding // which is much more permissive than the Node Authorizer - if k8sVersion.AtLeast(kubeadmconstants.MinimumNodeAuthorizerVersion) { + // TODO: That we have to exclude v1.8.0-alpha.0 here is based on the way kubernetes branches work + // v1.7.0-beta.0 == v1.8.0.alpha.0 but they are sorted/compared differently + if k8sVersion.AtLeast(kubeadmconstants.MinimumNodeAuthorizerVersion) && cfg.KubernetesVersion != "v1.8.0-alpha.0" { nodesRoleBinding, err := clientset.RbacV1beta1().ClusterRoleBindings().Get(kubeadmconstants.NodesClusterRoleBinding, metav1.GetOptions{}) if err != nil {