From f4d78a15b38aefaf9d8befa7e5468e8ba1c1816c Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Thu, 8 Mar 2018 12:54:19 -0800 Subject: [PATCH] code cleanup --- e2e/e2e_test.go | 10 +++--- e2e/helm_client.go | 64 ++++++++++++++-------------------- e2e/utils.go | 14 ++++---- scripts/dind.sh | 9 ++--- scripts/import-docker-image.sh | 24 +++++-------- scripts/portforward.sh | 15 ++++---- 6 files changed, 60 insertions(+), 76 deletions(-) diff --git a/e2e/e2e_test.go b/e2e/e2e_test.go index 5249f16c0..2d22e3388 100644 --- a/e2e/e2e_test.go +++ b/e2e/e2e_test.go @@ -25,9 +25,11 @@ import ( ) var _ = Describe("Basic Suite", func() { - var helm HelmManager - var namespace *v1.Namespace - var clientset kubernetes.Interface + var ( + helm HelmManager + namespace *v1.Namespace + clientset kubernetes.Interface + ) BeforeEach(func() { var err error @@ -39,7 +41,7 @@ var _ = Describe("Basic Suite", func() { GenerateName: "e2e-helm-", }, } - namespace, err = clientset.Core().Namespaces().Create(namespaceObj) + namespace, err = clientset.CoreV1().Namespaces().Create(namespaceObj) Expect(err).NotTo(HaveOccurred()) helm = &BinaryHelmManager{ Namespace: namespace.Name, diff --git a/e2e/helm_client.go b/e2e/helm_client.go index 39a3646d0..ef5833e04 100644 --- a/e2e/helm_client.go +++ b/e2e/helm_client.go @@ -62,20 +62,17 @@ type BinaryHelmManager struct { } func (m *BinaryHelmManager) InstallTiller() error { - arg := make([]string, 0, 5) - var err error - arg = append(arg, "init", "--tiller-namespace", m.Namespace) + args := []string{"init"} if m.UseCanary { - arg = append(arg, "--canary-image") + args = append(args, "--canary-image") } if m.UseServiceAccount { - arg = append(arg, "--service-account", "tiller") - if err = m.InstallServiceAccounts(); err != nil { + args = append(args, "--service-account", "tiller") + if err := m.InstallServiceAccounts(); err != nil { return err } } - _, err = m.executeUsingHelm(arg...) - if err != nil { + if _, err := m.executeUsingHelm(args...); err != nil { return err } By("Waiting for tiller pod") @@ -84,16 +81,12 @@ func (m *BinaryHelmManager) InstallTiller() error { } func (m *BinaryHelmManager) DeleteTiller(removeHelmHome bool) error { - arg := []string{} - arg = append(arg, "reset", "--tiller-namespace", m.Namespace, "--force") + args := []string{"reset", "--force"} if removeHelmHome { - arg = append(arg, "--remove-helm-home") - } - _, err := m.executeUsingHelm(arg...) - if err != nil { - return err + args = append(args, "--remove-helm-home") } - return nil + _, err := m.executeUsingHelm(args...) + return err } func (m *BinaryHelmManager) Install(chartName string, values map[string]string) (string, error) { @@ -106,7 +99,7 @@ func (m *BinaryHelmManager) Install(chartName string, values map[string]string) // Status reports nil if release is considered to be succesfull func (m *BinaryHelmManager) Status(releaseName string) error { - stdout, err := m.executeUsingHelm("status", releaseName, "--tiller-namespace", m.Namespace) + stdout, err := m.executeUsingHelm("status", releaseName) if err != nil { return err } @@ -118,41 +111,37 @@ func (m *BinaryHelmManager) Status(releaseName string) error { } func (m *BinaryHelmManager) Delete(releaseName string) error { - _, err := m.executeUsingHelm("delete", releaseName, "--tiller-namespace", m.Namespace) + _, err := m.executeUsingHelm("delete", releaseName) return err } func (m *BinaryHelmManager) Upgrade(chartName, releaseName string, values map[string]string) error { - arg := make([]string, 0, 9) - arg = append(arg, "upgrade", releaseName, chartName) + args := []string{"upgrade", releaseName, chartName} if len(values) > 0 { - arg = append(arg, "--set", prepareArgsFromValues(values)) + args = append(args, "--set", prepareArgsFromValues(values)) } - _, err := m.executeUsingHelmInNamespace(arg...) + _, err := m.executeUsingHelmInNamespace(args...) return err } func (m *BinaryHelmManager) Rollback(releaseName string, revision int) error { - arg := make([]string, 0, 6) - arg = append(arg, "rollback", releaseName, strconv.Itoa(revision), "--tiller-namespace", m.Namespace) - _, err := m.executeUsingHelm(arg...) + _, err := m.executeUsingHelm("rollback", releaseName, strconv.Itoa(revision)) return err } -func (m *BinaryHelmManager) executeUsingHelmInNamespace(arg ...string) (string, error) { - arg = append(arg, "--namespace", m.Namespace, "--tiller-namespace", m.Namespace) - return m.executeUsingHelm(arg...) +func (m *BinaryHelmManager) executeUsingHelmInNamespace(args ...string) (string, error) { + return m.executeUsingHelm(append(args, "--namespace", m.Namespace)...) } -func (m *BinaryHelmManager) executeUsingHelm(arg ...string) (string, error) { +func (m *BinaryHelmManager) executeUsingHelm(args ...string) (string, error) { if m.TillerHost != "" { - arg = append(arg, "--host", m.TillerHost) + args = append(args, "--host", m.TillerHost) } - return m.executeUsingBinary(m.HelmBin, arg...) + return m.executeUsingBinary(m.HelmBin, append(args, "--tiller-namespace", m.Namespace)...) } -func (m *BinaryHelmManager) executeUsingBinary(binary string, arg ...string) (string, error) { - cmd := exec.Command(binary, arg...) +func (m *BinaryHelmManager) executeUsingBinary(binary string, args ...string) (string, error) { + cmd := exec.Command(binary, args...) Logf("Running command %+v\n", cmd.Args) stdout, err := cmd.Output() if err != nil { @@ -169,13 +158,12 @@ func (m *BinaryHelmManager) executeUsingBinary(binary string, arg ...string) (st } func (m *BinaryHelmManager) executeCommandWithValues(releaseName, command string, values map[string]string) (string, error) { - arg := make([]string, 0, 8) - arg = append(arg, command, releaseName) + args := []string{command, releaseName} if len(values) > 0 { vals := prepareArgsFromValues(values) - arg = append(arg, "--set", vals) + args = append(args, "--set", vals) } - return m.executeUsingHelmInNamespace(arg...) + return m.executeUsingHelmInNamespace(args...) } func (m *BinaryHelmManager) InstallServiceAccounts() error { @@ -214,7 +202,7 @@ func getStatusFromHelmOutput(output string) string { func waitTillerPod(clientset kubernetes.Interface, namespace string) { Eventually(func() bool { - pods, err := clientset.Core().Pods(namespace).List(metav1.ListOptions{}) + pods, err := clientset.CoreV1().Pods(namespace).List(metav1.ListOptions{}) if err != nil { return false } diff --git a/e2e/utils.go b/e2e/utils.go index 942615bfe..f58ab0d4e 100644 --- a/e2e/utils.go +++ b/e2e/utils.go @@ -30,10 +30,12 @@ import ( "k8s.io/client-go/tools/clientcmd" ) -var url string -var tillerHost string -var helmBinPath string -var localTiller bool +var ( + url string + tillerHost string + helmBinPath string + localTiller bool +) func init() { flag.StringVar(&url, "cluster-url", "http://127.0.0.1:8080", "apiserver address to use with restclient") @@ -57,7 +59,7 @@ func KubeClient() (*kubernetes.Clientset, error) { func DeleteNS(clientset kubernetes.Interface, namespace *v1.Namespace) { defer GinkgoRecover() - err := clientset.Core().Namespaces().Delete(namespace.Name, nil) + err := clientset.CoreV1().Namespaces().Delete(namespace.Name, nil) Expect(err).NotTo(HaveOccurred()) } @@ -69,7 +71,7 @@ func WaitForPod(clientset kubernetes.Interface, namespace string, name string, p defer GinkgoRecover() var podUpdated *v1.Pod Eventually(func() error { - podUpdated, err := clientset.Core().Pods(namespace).Get(name, metav1.GetOptions{}) + podUpdated, err := clientset.CoreV1().Pods(namespace).Get(name, metav1.GetOptions{}) if err != nil { return err } diff --git a/scripts/dind.sh b/scripts/dind.sh index ca447e80f..4c36a939d 100755 --- a/scripts/dind.sh +++ b/scripts/dind.sh @@ -13,10 +13,11 @@ # 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. +set -euo pipefail -scripts/portforward.sh 8080& +scripts/portforward.sh 8080 & -wget https://cdn.rawgit.com/Mirantis/kubeadm-dind-cluster/master/fixed/dind-cluster-v1.7.sh -chmod +x dind-cluster-v1.7.sh -RUN_ON_BTRFS_ANYWAY=trololo bash -x ./dind-cluster-v1.7.sh up +wget https://cdn.rawgit.com/Mirantis/kubeadm-dind-cluster/master/fixed/dind-cluster-v1.9.sh +chmod +x dind-cluster-v1.9.sh +RUN_ON_BTRFS_ANYWAY=trololo bash -x ./dind-cluster-v1.9.sh up export PATH="$HOME/.kubeadm-dind-cluster:$PATH" diff --git a/scripts/import-docker-image.sh b/scripts/import-docker-image.sh index cbc3ddd2f..0be37f6db 100755 --- a/scripts/import-docker-image.sh +++ b/scripts/import-docker-image.sh @@ -13,29 +13,23 @@ # 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. - -set -o errexit -set -o nounset -set -o pipefail -set -o xtrace +set -euxo pipefail IMAGE_REPO=${IMAGE_REPO:-gcr.io/kubernetes-helm/tiller} IMAGE_TAG=${IMAGE_TAG:-canary} TMP_IMAGE_PATH=${TMP_IMAGE_PATH:-/tmp/image.tar} NODE_PATTERN=${NODE_PATTERN:-"kube-node-"} +import-image() { + docker save "${IMAGE_REPO}:${IMAGE_TAG}" -o "${TMP_IMAGE_PATH}" -function import-image { - docker save ${IMAGE_REPO}:${IMAGE_TAG} -o "${TMP_IMAGE_PATH}" - - for node in `docker ps --format "{{.Names}}" | grep ${NODE_PATTERN}`; - do - docker cp "${TMP_IMAGE_PATH}" $node:/image.tar - docker exec -ti "$node" docker load -i /image.tar - done + for node in $(docker ps --format "{{.Names}}" | grep "${NODE_PATTERN}"); do + docker cp "${TMP_IMAGE_PATH}" "${node}:/image.tar" + docker exec -ti "${node}" docker load -i /image.tar + done - set +o xtrace - echo "Finished copying docker image to dind nodes" + set +o xtrace + echo "Finished copying docker image to dind nodes" } import-image diff --git a/scripts/portforward.sh b/scripts/portforward.sh index 283602065..09001e554 100755 --- a/scripts/portforward.sh +++ b/scripts/portforward.sh @@ -15,19 +15,16 @@ # limitations under the License. # Portforward hack for CircleCI remote docker -set -o errexit -set -o nounset -set -o pipefail -set -o errtrace +set -euxo pipefail -if [[ ${1:-} = start ]]; then +if [[ ${1:-} == start ]]; then docker run -d -it \ - --name portforward --net=host \ - --entrypoint /bin/sh \ - bobrik/socat -c "while true; do sleep 1000; done" + --name portforward --net=host \ + --entrypoint /bin/sh \ + bobrik/socat -c "while true; do sleep 1000; done" elif [[ ${1} ]]; then socat "TCP-LISTEN:${1},reuseaddr,fork" \ - EXEC:"'docker exec -i portforward socat STDIO TCP-CONNECT:localhost:${1}'" + EXEC:"'docker exec -i portforward socat STDIO TCP-CONNECT:localhost:${1}'" else echo "Must specify either start or the port number" >&2 exit 1