Circleci e2e config

Additional scripts, changes in Makefile and circleci config required to
run dind cluster
pull/2846/head
Maciej Kwiek 8 years ago
parent 0b007ef0ac
commit 7d694f16d1

@ -2,12 +2,24 @@ version: 2
jobs: jobs:
build: build:
working_directory: /go/src/k8s.io/helm working_directory: /go/src/k8s.io/helm
parallelism: 3 parallelism: 4
docker: docker:
- image: golang:1.8 - image: golang:1.8
environment: environment:
PROJECT_NAME: "kubernetes-helm" PROJECT_NAME: "kubernetes-helm"
DOCKER_VERSION: "17.03.0-ce"
steps: steps:
- setup_remote_docker
- run:
name: Install Docker client
command: |
set -x
curl -sSL -o "/tmp/docker-${DOCKER_VERSION}.tgz" "https://get.docker.com/builds/Linux/x86_64/docker-${DOCKER_VERSION}.tgz"
tar -xz -C /tmp -f "/tmp/docker-${DOCKER_VERSION}.tgz"
mv /tmp/docker/* /usr/bin
- run:
name: Install socat
command: apt-get update && apt-get install -y socat
- checkout - checkout
- run: - run:
name: install dependencies name: install dependencies

@ -8,7 +8,7 @@ APP = helm
# go option # go option
GO ?= go GO ?= go
PKG := $(shell glide novendor) PKG := ./pkg/... ./cmd/...
TAGS := TAGS :=
TESTS := . TESTS := .
TESTFLAGS := TESTFLAGS :=
@ -117,6 +117,18 @@ clean:
coverage: coverage:
@scripts/coverage.sh @scripts/coverage.sh
.PHONY: dind
dind: docker-build
dind:
@scripts/portforward.sh start
@scripts/dind.sh
@scripts/import-docker-image.sh
.PHONY: e2e
e2e: dind
e2e:
go test -v ./e2e --cluster-url http://localhost:8080 --helm-bin ../bin/helm
HAS_GLIDE := $(shell command -v glide;) HAS_GLIDE := $(shell command -v glide;)
HAS_GOX := $(shell command -v gox;) HAS_GOX := $(shell command -v gox;)
HAS_GIT := $(shell command -v git;) HAS_GIT := $(shell command -v git;)

@ -46,6 +46,7 @@ var _ = Describe("Basic Suite", func() {
Clientset: clientset, Clientset: clientset,
HelmBin: helmBinPath, HelmBin: helmBinPath,
TillerHost: tillerHost, TillerHost: tillerHost,
UseCanary: true,
} }
if !localTiller { if !localTiller {
Expect(helm.InstallTiller()).NotTo(HaveOccurred()) Expect(helm.InstallTiller()).NotTo(HaveOccurred())

@ -63,12 +63,16 @@ type BinaryHelmManager struct {
Namespace string Namespace string
HelmBin string HelmBin string
TillerHost string TillerHost string
UseCanary bool
} }
func (m *BinaryHelmManager) InstallTiller() error { func (m *BinaryHelmManager) InstallTiller() error {
arg := make([]string, 0, 5) arg := make([]string, 0, 5)
var err error var err error
arg = append(arg, "init", "--tiller-namespace", m.Namespace) arg = append(arg, "init", "--tiller-namespace", m.Namespace)
if m.UseCanary {
arg = append(arg, "--canary-image")
}
_, err = m.executeUsingHelm(arg...) _, err = m.executeUsingHelm(arg...)
if err != nil { if err != nil {
return err return err

@ -42,6 +42,10 @@ run_docs_check() {
make verify-docs make verify-docs
} }
run_e2e_test() {
make e2e
}
# Build to ensure packages are compiled # Build to ensure packages are compiled
echo "Running 'make build'" echo "Running 'make build'"
make build make build
@ -50,4 +54,5 @@ case "${CIRCLE_NODE_INDEX-0}" in
0) run_unit_test ;; 0) run_unit_test ;;
1) run_style_check ;; 1) run_style_check ;;
2) run_docs_check ;; 2) run_docs_check ;;
3) run_e2e_test ;;
esac esac

@ -0,0 +1,22 @@
#!/usr/bin/env bash
# Copyright 2017 The Kubernetes Authors All rights reserved.
#
# 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.
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
export PATH="$HOME/.kubeadm-dind-cluster:$PATH"

@ -0,0 +1,27 @@
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail
set -o xtrace
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-"}
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
set +o xtrace
echo "Finished copying docker image to dind nodes"
}
import-image
Loading…
Cancel
Save