From ece1d2ed79446e0b13389b0e1ee6faa1df1b394d Mon Sep 17 00:00:00 2001 From: goll Date: Tue, 26 Mar 2019 19:30:39 +0100 Subject: [PATCH] Update travis to latest minikube, k8s, jsonnet --- .travis.yml | 7 +++++- Makefile | 4 ++-- contrib/kube-prometheus/Makefile | 4 +++- .../kube-prometheus/tests/e2e/travis-e2e.sh | 3 --- hack/generate-in-docker.sh | 1 + scripts/create-minikube.sh | 22 +++++++++++++------ scripts/jsonnet/Dockerfile | 13 ++++++----- scripts/travis-e2e.sh | 3 --- 8 files changed, 34 insertions(+), 23 deletions(-) diff --git a/.travis.yml b/.travis.yml index c61d64140..9db8cc7e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,12 @@ sudo: required +dist: xenial language: go go: -- "1.11" +- "1.11.x" +cache: + directories: + - $GOCACHE + - $GOPATH/pkg/mod services: - docker before_install: diff --git a/Makefile b/Makefile index 23480d7fb..7099c7bc3 100644 --- a/Makefile +++ b/Makefile @@ -214,12 +214,12 @@ test: test-unit test-e2e .PHONY: test-unit test-unit: - @go test -race $(TEST_RUN_ARGS) -short $(pkgs) + @go test -race $(TEST_RUN_ARGS) -short $(pkgs) -count=1 .PHONY: test-e2e test-e2e: KUBECONFIG?=$(HOME)/.kube/config test-e2e: - go test -timeout 55m -v ./test/e2e/ $(TEST_RUN_ARGS) --kubeconfig=$(KUBECONFIG) --operator-image=$(REPO):$(TAG) + go test -timeout 55m -v ./test/e2e/ $(TEST_RUN_ARGS) --kubeconfig=$(KUBECONFIG) --operator-image=$(REPO):$(TAG) -count=1 ######## diff --git a/contrib/kube-prometheus/Makefile b/contrib/kube-prometheus/Makefile index 6b3651ae9..ade9ba2c6 100644 --- a/contrib/kube-prometheus/Makefile +++ b/contrib/kube-prometheus/Makefile @@ -18,6 +18,7 @@ generate-in-docker: ../../hack/jsonnet-docker-image --rm \ -u=$(shell id -u $(USER)):$(shell id -g $(USER)) \ -v $(shell dirname $(dir $(abspath $(dir $$PWD)))):/go/src/github.com/coreos/prometheus-operator/ \ + -v $(shell go env GOCACHE):/.cache/go-build \ --workdir /go/src/github.com/coreos/prometheus-operator/contrib/kube-prometheus \ po-jsonnet make generate @@ -43,7 +44,7 @@ test: $(JB_BINARY) ./test.sh test-e2e: - go test -timeout 55m -v ./tests/e2e + go test -timeout 55m -v ./tests/e2e -count=1 test-in-docker: ../../hack/jsonnet-docker-image @echo ">> Compiling assets and generating Kubernetes manifests" @@ -51,6 +52,7 @@ test-in-docker: ../../hack/jsonnet-docker-image --rm \ -u=$(shell id -u $(USER)):$(shell id -g $(USER)) \ -v $(shell dirname $(dir $(abspath $(dir $$PWD)))):/go/src/github.com/coreos/prometheus-operator/ \ + -v $(shell go env GOCACHE):/.cache/go-build \ --workdir /go/src/github.com/coreos/prometheus-operator/contrib/kube-prometheus \ po-jsonnet make test diff --git a/contrib/kube-prometheus/tests/e2e/travis-e2e.sh b/contrib/kube-prometheus/tests/e2e/travis-e2e.sh index 45fb974a4..d11496979 100755 --- a/contrib/kube-prometheus/tests/e2e/travis-e2e.sh +++ b/contrib/kube-prometheus/tests/e2e/travis-e2e.sh @@ -12,9 +12,6 @@ SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}") "${SCRIPT_DIR}"/../../../../scripts/create-minikube.sh -# waiting for kube-dns to be ready -JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'; until kubectl -n kube-system get pods -lk8s-app=kube-dns -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do sleep 1;echo "waiting for kube-dns to be available"; kubectl get pods --all-namespaces; done - ( cd "${SCRIPT_DIR}"/../.. || exit kubectl apply -f manifests diff --git a/hack/generate-in-docker.sh b/hack/generate-in-docker.sh index 8b17742ca..be023899c 100755 --- a/hack/generate-in-docker.sh +++ b/hack/generate-in-docker.sh @@ -22,4 +22,5 @@ docker run \ --rm \ -u="$(id -u "$USER")":"$(id -g "$USER")" \ -v "${SCRIPTDIR}/..:/go/src/github.com/coreos/prometheus-operator${VOLUME_OPTIONS}" \ + -v "$(go env GOCACHE)":/.cache/go-build \ po-jsonnet make ${MFLAGS[@]} generate diff --git a/scripts/create-minikube.sh b/scripts/create-minikube.sh index 55979a219..e27116d0a 100755 --- a/scripts/create-minikube.sh +++ b/scripts/create-minikube.sh @@ -8,8 +8,8 @@ set -u # print each command before executing it set -x -export MINIKUBE_VERSION=v0.28.0 -export KUBERNETES_VERSION=v1.10.0 +export MINIKUBE_VERSION=v0.35.0 +export KUBERNETES_VERSION=v1.13.4 sudo mount --make-rshared / sudo mount --make-rshared /proc @@ -22,24 +22,32 @@ curl -Lo minikube https://storage.googleapis.com/minikube/releases/$MINIKUBE_VER chmod +x minikube && \ sudo mv minikube /usr/local/bin/ -export MINIKUBE_WANTUPDATENOTIFICATION=false -export MINIKUBE_WANTREPORTERRORPROMPT=false export MINIKUBE_HOME=$HOME export CHANGE_MINIKUBE_NONE_USER=true mkdir "${HOME}"/.kube || true touch "${HOME}"/.kube/config export KUBECONFIG=$HOME/.kube/config + +# minikube config +minikube config set WantUpdateNotification false +minikube config set WantReportErrorPrompt false +minikube config set WantNoneDriverWarning false +minikube config set vm-driver none + minikube version -minikube addons enable storage-provisioner -sudo minikube start --vm-driver=none --bootstrapper=localkube --kubernetes-version=$KUBERNETES_VERSION --extra-config=apiserver.Authorization.Mode=RBAC --extra-config=apiserver.feature-gates=CustomResourceSubresources=true +sudo minikube start --kubernetes-version=$KUBERNETES_VERSION --extra-config=apiserver.authorization-mode=RBAC +sudo chown -R travis: /home/travis/.minikube/ minikube update-context # waiting for node(s) to be ready JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'; until kubectl get nodes -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do sleep 1; done -kubectl apply -f scripts/minikube-rbac.yaml +# waiting for kube-addon-manager to be ready +JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'; until kubectl -n kube-system get pods -lcomponent=kube-addon-manager -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do sleep 1;echo "waiting for kube-addon-manager to be available"; kubectl get pods --all-namespaces; done # waiting for kube-dns to be ready JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'; until kubectl -n kube-system get pods -lk8s-app=kube-dns -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do sleep 1;echo "waiting for kube-dns to be available"; kubectl get pods --all-namespaces; done + +kubectl apply -f scripts/minikube-rbac.yaml diff --git a/scripts/jsonnet/Dockerfile b/scripts/jsonnet/Dockerfile index c1a6f0787..168bbecdd 100644 --- a/scripts/jsonnet/Dockerfile +++ b/scripts/jsonnet/Dockerfile @@ -1,13 +1,14 @@ FROM golang:1.11-stretch -ENV JSONNET_VERSION 0.10.0 +ENV JSONNET_VERSION 0.12.1 -RUN apt-get update -y && apt-get install -y g++ make git jq -RUN cd /tmp && wget https://github.com/google/jsonnet/archive/v${JSONNET_VERSION}.tar.gz && \ - tar xvfz v${JSONNET_VERSION}.tar.gz && \ - cd jsonnet-${JSONNET_VERSION} && \ +RUN apt-get update -y && apt-get install -y g++ make git jq && \ + rm -rf /var/lib/apt/lists/* +RUN curl -Lso - https://github.com/google/jsonnet/archive/v${JSONNET_VERSION}.tar.gz | \ + tar xfz - -C /tmp && \ + cd /tmp/jsonnet-${JSONNET_VERSION} && \ make && mv jsonnet /usr/local/bin && \ - rm -rf /tmp/v${JSONNET_VERSION}.tar.gz /tmp/jsonnet-${JSONNET_VERSION} + rm -rf /tmp/jsonnet-${JSONNET_VERSION} RUN go get github.com/brancz/gojsontoyaml RUN go get github.com/campoy/embedmd RUN go get github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb diff --git a/scripts/travis-e2e.sh b/scripts/travis-e2e.sh index 36951351f..12512bf65 100755 --- a/scripts/travis-e2e.sh +++ b/scripts/travis-e2e.sh @@ -12,9 +12,6 @@ SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}") "${SCRIPT_DIR}"/create-minikube.sh -# waiting for kube-dns to be ready -JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'; until kubectl -n kube-system get pods -lk8s-app=kube-dns -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do sleep 1;echo "waiting for kube-dns to be available"; kubectl get pods --all-namespaces; done - make build image make test-e2e