From 66328996f2bdde63bd64762eba303d9ad6f51260 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Mon, 17 Jul 2017 14:40:53 +0300 Subject: [PATCH] kubeadm: Remove the old KubernetesDir envparam --- cmd/kubeadm/app/apis/kubeadm/BUILD | 1 - cmd/kubeadm/app/apis/kubeadm/env.go | 43 ------------------- cmd/kubeadm/app/apis/kubeadm/types.go | 4 -- cmd/kubeadm/app/cmd/init.go | 6 +-- cmd/kubeadm/app/cmd/join.go | 2 +- cmd/kubeadm/app/cmd/reset.go | 5 +-- cmd/kubeadm/app/constants/constants.go | 7 +-- .../app/phases/controlplane/manifests.go | 10 ++--- .../app/phases/controlplane/manifests_test.go | 20 ++++----- .../phases/selfhosting/selfhosting_volumes.go | 4 +- cmd/kubeadm/app/preflight/checks.go | 6 +-- cmd/kubeadm/app/util/kubeconfig/BUILD | 1 - .../app/util/kubeconfig/kubeconfig_test.go | 11 +---- 13 files changed, 30 insertions(+), 90 deletions(-) delete mode 100644 cmd/kubeadm/app/apis/kubeadm/env.go diff --git a/cmd/kubeadm/app/apis/kubeadm/BUILD b/cmd/kubeadm/app/apis/kubeadm/BUILD index 7bcc07f6104..964fdddefb7 100644 --- a/cmd/kubeadm/app/apis/kubeadm/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/BUILD @@ -11,7 +11,6 @@ go_library( name = "go_default_library", srcs = [ "doc.go", - "env.go", "register.go", "types.go", ], diff --git a/cmd/kubeadm/app/apis/kubeadm/env.go b/cmd/kubeadm/app/apis/kubeadm/env.go deleted file mode 100644 index 415602a653e..00000000000 --- a/cmd/kubeadm/app/apis/kubeadm/env.go +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright 2016 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package kubeadm - -import ( - "fmt" - "os" - "path" - "strings" -) - -var GlobalEnvParams = SetEnvParams() - -func SetEnvParams() *EnvParams { - - envParams := map[string]string{ - "kubernetes_dir": "/etc/kubernetes", - } - - for k := range envParams { - if v := strings.TrimSpace(os.Getenv(fmt.Sprintf("KUBE_%s", strings.ToUpper(k)))); v != "" { - envParams[k] = v - } - } - - return &EnvParams{ - KubernetesDir: path.Clean(envParams["kubernetes_dir"]), - } -} diff --git a/cmd/kubeadm/app/apis/kubeadm/types.go b/cmd/kubeadm/app/apis/kubeadm/types.go index aef57c56d43..ba986368aee 100644 --- a/cmd/kubeadm/app/apis/kubeadm/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/types.go @@ -22,10 +22,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -type EnvParams struct { - KubernetesDir string -} - type MasterConfiguration struct { metav1.TypeMeta diff --git a/cmd/kubeadm/app/cmd/init.go b/cmd/kubeadm/app/cmd/init.go index 51e45c6dc29..2e3e5c2ecac 100644 --- a/cmd/kubeadm/app/cmd/init.go +++ b/cmd/kubeadm/app/cmd/init.go @@ -230,7 +230,7 @@ func (i *Init) Run(out io.Writer) error { // PHASE 2: Generate kubeconfig files for the admin and the kubelet masterEndpoint := fmt.Sprintf("https://%s:%d", i.cfg.API.AdvertiseAddress, i.cfg.API.BindPort) - err = kubeconfigphase.CreateInitKubeConfigFiles(masterEndpoint, i.cfg.CertificatesDir, kubeadmapi.GlobalEnvParams.KubernetesDir, i.cfg.NodeName) + err = kubeconfigphase.CreateInitKubeConfigFiles(masterEndpoint, i.cfg.CertificatesDir, kubeadmconstants.KubernetesDir, i.cfg.NodeName) if err != nil { return err } @@ -240,7 +240,7 @@ func (i *Init) Run(out io.Writer) error { return err } - adminKubeConfigPath := filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, kubeadmconstants.AdminKubeConfigFileName) + adminKubeConfigPath := filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.AdminKubeConfigFileName) client, err := kubeadmutil.CreateClientAndWaitForAPI(adminKubeConfigPath) if err != nil { return err @@ -297,7 +297,7 @@ func (i *Init) Run(out io.Writer) error { } ctx := map[string]string{ - "KubeConfigPath": filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, kubeadmconstants.AdminKubeConfigFileName), + "KubeConfigPath": filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.AdminKubeConfigFileName), "KubeConfigName": kubeadmconstants.AdminKubeConfigFileName, "Token": i.cfg.Token, "MasterIP": i.cfg.API.AdvertiseAddress, diff --git a/cmd/kubeadm/app/cmd/join.go b/cmd/kubeadm/app/cmd/join.go index 9e99c2cfc00..1a43befa338 100644 --- a/cmd/kubeadm/app/cmd/join.go +++ b/cmd/kubeadm/app/cmd/join.go @@ -191,7 +191,7 @@ func (j *Join) Run(out io.Writer) error { return err } - kubeconfigFile := filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, kubeadmconstants.KubeletKubeConfigFileName) + kubeconfigFile := filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.KubeletKubeConfigFileName) if err := kubeconfigutil.WriteToDisk(kubeconfigFile, cfg); err != nil { return err } diff --git a/cmd/kubeadm/app/cmd/reset.go b/cmd/kubeadm/app/cmd/reset.go index 1da7e6bb469..fcba36065c5 100644 --- a/cmd/kubeadm/app/cmd/reset.go +++ b/cmd/kubeadm/app/cmd/reset.go @@ -25,7 +25,6 @@ import ( "github.com/spf13/cobra" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/preflight" @@ -118,7 +117,7 @@ func (r *Reset) Run(out io.Writer) error { // Only clear etcd data when the etcd manifest is found. In case it is not found, we must assume that the user // provided external etcd endpoints. In that case, it is his own responsibility to reset etcd - etcdManifestPath := filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, kubeadmconstants.ManifestsSubDirName, "etcd.yaml") + etcdManifestPath := filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ManifestsSubDirName, "etcd.yaml") if _, err := os.Stat(etcdManifestPath); err == nil { dirsToClean = append(dirsToClean, "/var/lib/etcd") } else { @@ -132,7 +131,7 @@ func (r *Reset) Run(out io.Writer) error { } // Remove contents from the config and pki directories - resetConfigDir(kubeadmapi.GlobalEnvParams.KubernetesDir, r.certsDir) + resetConfigDir(kubeadmconstants.KubernetesDir, r.certsDir) return nil } diff --git a/cmd/kubeadm/app/constants/constants.go b/cmd/kubeadm/app/constants/constants.go index 98c43e4a150..cb95ebfec53 100644 --- a/cmd/kubeadm/app/constants/constants.go +++ b/cmd/kubeadm/app/constants/constants.go @@ -24,10 +24,11 @@ import ( "k8s.io/kubernetes/pkg/util/version" ) -const ( - // KubernetesDir is the directory kubernetes owns for storing various configuration files - KubernetesDir = "/etc/kubernetes" +// KubernetesDir is the directory kubernetes owns for storing various configuration files +// This semi-constant MUST NOT be modified during runtime. It's a variable solely for use in unit testing. +var KubernetesDir = "/etc/kubernetes" +const ( ManifestsSubDirName = "manifests" CACertAndKeyBaseName = "ca" diff --git a/cmd/kubeadm/app/phases/controlplane/manifests.go b/cmd/kubeadm/app/phases/controlplane/manifests.go index 12d2bb7cd21..e807257386b 100644 --- a/cmd/kubeadm/app/phases/controlplane/manifests.go +++ b/cmd/kubeadm/app/phases/controlplane/manifests.go @@ -129,7 +129,7 @@ func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error { staticPodSpecs[etcd] = etcdPod } - manifestsPath := filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, kubeadmconstants.ManifestsSubDirName) + manifestsPath := filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ManifestsSubDirName) if err := os.MkdirAll(manifestsPath, 0700); err != nil { return fmt.Errorf("failed to create directory %q [%v]", manifestsPath, err) } @@ -233,7 +233,7 @@ func k8sVolume() v1.Volume { return v1.Volume{ Name: "k8s", VolumeSource: v1.VolumeSource{ - HostPath: &v1.HostPathVolumeSource{Path: kubeadmapi.GlobalEnvParams.KubernetesDir}, + HostPath: &v1.HostPathVolumeSource{Path: kubeadmconstants.KubernetesDir}, }, } } @@ -241,7 +241,7 @@ func k8sVolume() v1.Volume { func k8sVolumeMount() v1.VolumeMount { return v1.VolumeMount{ Name: "k8s", - MountPath: kubeadmapi.GlobalEnvParams.KubernetesDir, + MountPath: kubeadmconstants.KubernetesDir, ReadOnly: true, } } @@ -371,7 +371,7 @@ func getControllerManagerCommand(cfg *kubeadmapi.MasterConfiguration, selfHosted defaultArguments := map[string]string{ "address": "127.0.0.1", "leader-elect": "true", - "kubeconfig": filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, kubeadmconstants.ControllerManagerKubeConfigFileName), + "kubeconfig": filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ControllerManagerKubeConfigFileName), "root-ca-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.CACertName), "service-account-private-key-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.ServiceAccountPrivateKeyName), "cluster-signing-cert-file": filepath.Join(cfg.CertificatesDir, kubeadmconstants.CACertName), @@ -404,7 +404,7 @@ func getSchedulerCommand(cfg *kubeadmapi.MasterConfiguration, selfHosted bool) [ defaultArguments := map[string]string{ "address": "127.0.0.1", "leader-elect": "true", - "kubeconfig": filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, kubeadmconstants.SchedulerKubeConfigFileName), + "kubeconfig": filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.SchedulerKubeConfigFileName), } command := []string{"kube-scheduler"} diff --git a/cmd/kubeadm/app/phases/controlplane/manifests_test.go b/cmd/kubeadm/app/phases/controlplane/manifests_test.go index 8da0566b84a..8ba45c4f55e 100644 --- a/cmd/kubeadm/app/phases/controlplane/manifests_test.go +++ b/cmd/kubeadm/app/phases/controlplane/manifests_test.go @@ -46,10 +46,8 @@ func TestWriteStaticPodManifests(t *testing.T) { } defer os.RemoveAll(tmpdir) - // set up tmp GlobalEnvParams values for testing - oldEnv := kubeadmapi.GlobalEnvParams - kubeadmapi.GlobalEnvParams.KubernetesDir = fmt.Sprintf("%s/etc/kubernetes", tmpdir) - defer func() { kubeadmapi.GlobalEnvParams = oldEnv }() + // set up tmp KubernetesDir for testing + kubeadmconstants.KubernetesDir = fmt.Sprintf("%s/etc/kubernetes", tmpdir) var tests = []struct { cfg *kubeadmapi.MasterConfiguration @@ -86,7 +84,7 @@ func TestWriteStaticPodManifests(t *testing.T) { // Below is dead code. if rt.expectedAPIProbePort != 0 { - manifest, err := os.Open(filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, kubeadmconstants.ManifestsSubDirName, "kube-apiserver.yaml")) + manifest, err := os.Open(filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ManifestsSubDirName, "kube-apiserver.yaml")) if err != nil { t.Errorf("WriteStaticPodManifests: %v", err) continue @@ -340,7 +338,7 @@ func TestK8sVolume(t *testing.T) { Name: "k8s", VolumeSource: v1.VolumeSource{ HostPath: &v1.HostPathVolumeSource{ - Path: kubeadmapi.GlobalEnvParams.KubernetesDir}, + Path: kubeadmconstants.KubernetesDir}, }}, }, } @@ -371,7 +369,7 @@ func TestK8sVolumeMount(t *testing.T) { { expected: v1.VolumeMount{ Name: "k8s", - MountPath: kubeadmapi.GlobalEnvParams.KubernetesDir, + MountPath: kubeadmconstants.KubernetesDir, ReadOnly: true, }, }, @@ -688,7 +686,7 @@ func TestGetControllerManagerCommand(t *testing.T) { "kube-controller-manager", "--address=127.0.0.1", "--leader-elect=true", - "--kubeconfig=" + kubeadmapi.GlobalEnvParams.KubernetesDir + "/controller-manager.conf", + "--kubeconfig=" + kubeadmconstants.KubernetesDir + "/controller-manager.conf", "--root-ca-file=" + testCertsDir + "/ca.crt", "--service-account-private-key-file=" + testCertsDir + "/sa.key", "--cluster-signing-cert-file=" + testCertsDir + "/ca.crt", @@ -707,7 +705,7 @@ func TestGetControllerManagerCommand(t *testing.T) { "kube-controller-manager", "--address=127.0.0.1", "--leader-elect=true", - "--kubeconfig=" + kubeadmapi.GlobalEnvParams.KubernetesDir + "/controller-manager.conf", + "--kubeconfig=" + kubeadmconstants.KubernetesDir + "/controller-manager.conf", "--root-ca-file=" + testCertsDir + "/ca.crt", "--service-account-private-key-file=" + testCertsDir + "/sa.key", "--cluster-signing-cert-file=" + testCertsDir + "/ca.crt", @@ -727,7 +725,7 @@ func TestGetControllerManagerCommand(t *testing.T) { "kube-controller-manager", "--address=127.0.0.1", "--leader-elect=true", - "--kubeconfig=" + kubeadmapi.GlobalEnvParams.KubernetesDir + "/controller-manager.conf", + "--kubeconfig=" + kubeadmconstants.KubernetesDir + "/controller-manager.conf", "--root-ca-file=" + testCertsDir + "/ca.crt", "--service-account-private-key-file=" + testCertsDir + "/sa.key", "--cluster-signing-cert-file=" + testCertsDir + "/ca.crt", @@ -817,7 +815,7 @@ func TestGetSchedulerCommand(t *testing.T) { "kube-scheduler", "--address=127.0.0.1", "--leader-elect=true", - "--kubeconfig=" + kubeadmapi.GlobalEnvParams.KubernetesDir + "/scheduler.conf", + "--kubeconfig=" + kubeadmconstants.KubernetesDir + "/scheduler.conf", }, }, } diff --git a/cmd/kubeadm/app/phases/selfhosting/selfhosting_volumes.go b/cmd/kubeadm/app/phases/selfhosting/selfhosting_volumes.go index 1e9a9336092..06629d0032c 100644 --- a/cmd/kubeadm/app/phases/selfhosting/selfhosting_volumes.go +++ b/cmd/kubeadm/app/phases/selfhosting/selfhosting_volumes.go @@ -37,7 +37,7 @@ type tlsKeyPair struct { func k8sSelfHostedVolumeMount() v1.VolumeMount { return v1.VolumeMount{ Name: "k8s", - MountPath: kubeadmapi.GlobalEnvParams.KubernetesDir, + MountPath: kubeadmconstants.KubernetesDir, ReadOnly: true, } } @@ -248,7 +248,7 @@ func createOpaqueSecrets(cfg *kubeadmapi.MasterConfiguration, client *clientset. for _, file := range files { secret, err := createOpaqueSecretFromFile( file, - path.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, file), + path.Join(kubeadmconstants.KubernetesDir, file), ) if err != nil { return err diff --git a/cmd/kubeadm/app/preflight/checks.go b/cmd/kubeadm/app/preflight/checks.go index 0d5b080170c..86368844290 100644 --- a/cmd/kubeadm/app/preflight/checks.go +++ b/cmd/kubeadm/app/preflight/checks.go @@ -546,7 +546,7 @@ func RunInitMasterChecks(cfg *kubeadmapi.MasterConfiguration) error { PortOpenCheck{port: 10251}, PortOpenCheck{port: 10252}, HTTPProxyCheck{Proto: "https", Host: cfg.API.AdvertiseAddress, Port: int(cfg.API.BindPort)}, - DirAvailableCheck{Path: filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, kubeadmconstants.ManifestsSubDirName)}, + DirAvailableCheck{Path: filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ManifestsSubDirName)}, DirAvailableCheck{Path: "/var/lib/kubelet"}, FileContentCheck{Path: bridgenf, Content: []byte{'1'}}, InPathCheck{executable: "ip", mandatory: true}, @@ -604,10 +604,10 @@ func RunJoinNodeChecks(cfg *kubeadmapi.NodeConfiguration) error { ServiceCheck{Service: "kubelet", CheckIfActive: false}, ServiceCheck{Service: "docker", CheckIfActive: true}, PortOpenCheck{port: 10250}, - DirAvailableCheck{Path: filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, kubeadmconstants.ManifestsSubDirName)}, + DirAvailableCheck{Path: filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ManifestsSubDirName)}, DirAvailableCheck{Path: "/var/lib/kubelet"}, FileAvailableCheck{Path: cfg.CACertPath}, - FileAvailableCheck{Path: filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, kubeadmconstants.KubeletKubeConfigFileName)}, + FileAvailableCheck{Path: filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.KubeletKubeConfigFileName)}, FileContentCheck{Path: bridgenf, Content: []byte{'1'}}, InPathCheck{executable: "ip", mandatory: true}, InPathCheck{executable: "iptables", mandatory: true}, diff --git a/cmd/kubeadm/app/util/kubeconfig/BUILD b/cmd/kubeadm/app/util/kubeconfig/BUILD index 5fe3083bfcc..4ff7a79be5d 100644 --- a/cmd/kubeadm/app/util/kubeconfig/BUILD +++ b/cmd/kubeadm/app/util/kubeconfig/BUILD @@ -13,7 +13,6 @@ go_test( srcs = ["kubeconfig_test.go"], library = ":go_default_library", tags = ["automanaged"], - deps = ["//cmd/kubeadm/app/apis/kubeadm:go_default_library"], ) go_library( diff --git a/cmd/kubeadm/app/util/kubeconfig/kubeconfig_test.go b/cmd/kubeadm/app/util/kubeconfig/kubeconfig_test.go index 96f3a454606..dc9879148cb 100644 --- a/cmd/kubeadm/app/util/kubeconfig/kubeconfig_test.go +++ b/cmd/kubeadm/app/util/kubeconfig/kubeconfig_test.go @@ -21,10 +21,7 @@ import ( "fmt" "io/ioutil" "os" - "path/filepath" "testing" - - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" ) const ( @@ -144,12 +141,6 @@ func TestWriteKubeconfigToDisk(t *testing.T) { } defer os.RemoveAll(tmpdir) - // set up tmp GlobalEnvParams values for testing - oldEnv := kubeadmapi.GlobalEnvParams - kubeadmapi.GlobalEnvParams = kubeadmapi.SetEnvParams() - kubeadmapi.GlobalEnvParams.KubernetesDir = fmt.Sprintf("%s/etc/kubernetes", tmpdir) - defer func() { kubeadmapi.GlobalEnvParams = oldEnv }() - var writeConfig = []struct { name string cc configClient @@ -168,7 +159,7 @@ func TestWriteKubeconfigToDisk(t *testing.T) { rt.cc.caCert, rt.ccWithToken.token, ) - configPath := filepath.Join(kubeadmapi.GlobalEnvParams.KubernetesDir, fmt.Sprintf("%s.conf", rt.name)) + configPath := fmt.Sprintf("%s/etc/kubernetes/%s.conf", tmpdir, rt.name) err := WriteToDisk(configPath, c) if err != rt.expected { t.Errorf(