From 273f84b3745cdcddfd28b6723fc1ca84e0986666 Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Fri, 28 Feb 2020 13:43:28 +0200 Subject: [PATCH 1/4] tester: Fix health.proto permissions --- Dockerfile.loadtester | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile.loadtester b/Dockerfile.loadtester index 651ec3d7..e2e6c558 100644 --- a/Dockerfile.loadtester +++ b/Dockerfile.loadtester @@ -51,6 +51,7 @@ ADD https://raw.githubusercontent.com/grpc/grpc-proto/master/grpc/health/v1/heal COPY ./bin/loadtester . RUN chown -R app:app ./ +RUN chown -R app:app /tmp/ghz USER app From 981abdbc85a02fb8f8ad5d12fc0094c0a6f5394b Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Fri, 28 Feb 2020 17:17:05 +0200 Subject: [PATCH 2/4] tester: Update Helm binaries and bash --- Dockerfile.loadtester | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Dockerfile.loadtester b/Dockerfile.loadtester index e2e6c558..1ad4fb1c 100644 --- a/Dockerfile.loadtester +++ b/Dockerfile.loadtester @@ -1,16 +1,16 @@ -FROM alpine:3.10.3 as build +FROM alpine:3.11 as build RUN apk --no-cache add alpine-sdk perl curl RUN curl -sSLo hey "https://storage.googleapis.com/hey-release/hey_linux_amd64" && \ chmod +x hey && mv hey /usr/local/bin/hey -RUN HELM2_VERSION=2.16.1 && \ +RUN HELM2_VERSION=2.16.3 && \ curl -sSL "https://get.helm.sh/helm-v${HELM2_VERSION}-linux-amd64.tar.gz" | tar xvz && \ chmod +x linux-amd64/helm && mv linux-amd64/helm /usr/local/bin/helm && \ chmod +x linux-amd64/tiller && mv linux-amd64/tiller /usr/local/bin/tiller -RUN HELM3_VERSION=3.0.1 && \ +RUN HELM3_VERSION=3.1.1 && \ curl -sSL "https://get.helm.sh/helm-v${HELM3_VERSION}-linux-amd64.tar.gz" | tar xvz && \ chmod +x linux-amd64/helm && mv linux-amd64/helm /usr/local/bin/helmv3 @@ -30,7 +30,7 @@ RUN WRK_VERSION=4.0.2 && \ cd /tmp && git clone -b ${WRK_VERSION} https://github.com/wg/wrk RUN cd /tmp/wrk && make -FROM bats/bats:v1.1.0 +FROM bash:5.0 RUN addgroup -S app && \ adduser -S -g app app && \ @@ -38,6 +38,9 @@ apk --no-cache add ca-certificates curl jq libgcc WORKDIR /home/app +COPY --from=bats/bats:v1.1.0 /opt/bats/ /opt/bats/ +RUN ln -s /opt/bats/bin/bats /usr/local/bin/ + COPY --from=build /usr/local/bin/hey /usr/local/bin/ COPY --from=build /tmp/wrk/wrk /usr/local/bin/ COPY --from=build /usr/local/bin/helm /usr/local/bin/ @@ -46,6 +49,7 @@ COPY --from=build /usr/local/bin/ghz /usr/local/bin/ COPY --from=build /usr/local/bin/helmv3 /usr/local/bin/ COPY --from=build /usr/local/bin/grpc_health_probe /usr/local/bin/ COPY --from=build /tmp/helm-tiller /tmp/helm-tiller + ADD https://raw.githubusercontent.com/grpc/grpc-proto/master/grpc/health/v1/health.proto /tmp/ghz/health.proto COPY ./bin/loadtester . From baadc19a4276db641dd503bf48115891d53f8912 Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Fri, 28 Feb 2020 17:46:43 +0200 Subject: [PATCH 3/4] build: cleanup makefile --- .circleci/config.yml | 2 +- .gitignore | 3 +- Makefile | 78 ++------------------------------------------ 3 files changed, 6 insertions(+), 77 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1f7ca709..867044a5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -289,4 +289,4 @@ workflows: branches: ignore: /.*/ tags: - ignore: /^chart.*/ \ No newline at end of file + ignore: /^chart.*/ diff --git a/.gitignore b/.gitignore index 20da41e8..257109fc 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,5 @@ bin/ _tmp/ artifacts/gcloud/ -.idea \ No newline at end of file +.idea +Makefile.dev \ No newline at end of file diff --git a/Makefile b/Makefile index 4bbef9de..9e2dddf3 100644 --- a/Makefile +++ b/Makefile @@ -1,40 +1,11 @@ TAG?=latest VERSION?=$(shell grep 'VERSION' pkg/version/version.go | awk '{ print $$4 }' | tr -d '"') -VERSION_MINOR:=$(shell grep 'VERSION' pkg/version/version.go | awk '{ print $$4 }' | tr -d '"' | rev | cut -d'.' -f2- | rev) -PATCH:=$(shell grep 'VERSION' pkg/version/version.go | awk '{ print $$4 }' | tr -d '"' | awk -F. '{print $$NF}') LT_VERSION?=$(shell grep 'VERSION' cmd/loadtester/main.go | awk '{ print $$4 }' | tr -d '"' | head -n1) -TS=$(shell date +%Y-%m-%d_%H-%M-%S) - -run: - GO111MODULE=on go run cmd/flagger/* -kubeconfig=$$HOME/.kube/config -log-level=info -mesh-provider=istio -namespace=test-istio \ - -metrics-server=https://prometheus.istio.flagger.dev - -run-appmesh: - GO111MODULE=on go run cmd/flagger/* -kubeconfig=$$HOME/.kube/config -log-level=info -mesh-provider=appmesh \ - -metrics-server=http://acfc235624ca911e9a94c02c4171f346-1585187926.us-west-2.elb.amazonaws.com:9090 - -run-nginx: - GO111MODULE=on go run cmd/flagger/* -kubeconfig=$$HOME/.kube/config -log-level=info -mesh-provider=nginx -namespace=nginx \ - -metrics-server=http://prometheus-weave.istio.weavedx.com - -run-smi: - GO111MODULE=on go run cmd/flagger/* -kubeconfig=$$HOME/.kube/config -log-level=info -mesh-provider=smi:istio -namespace=smi \ - -metrics-server=https://prometheus.istio.weavedx.com - -run-gloo: - GO111MODULE=on go run cmd/flagger/* -kubeconfig=$$HOME/.kube/config -log-level=info -mesh-provider=gloo -namespace=gloo \ - -metrics-server=https://prometheus.istio.weavedx.com - -run-nop: - GO111MODULE=on go run cmd/flagger/* -kubeconfig=$$HOME/.kube/config -log-level=info -mesh-provider=none -namespace=bg \ - -metrics-server=https://prometheus.istio.weavedx.com - -run-linkerd: - GO111MODULE=on go run cmd/flagger/* -kubeconfig=$$HOME/.kube/config -log-level=info -mesh-provider=linkerd -namespace=dev \ - -metrics-server=https://prometheus.linkerd.flagger.dev build: - GIT_COMMIT=$$(git rev-list -1 HEAD) && GO111MODULE=on CGO_ENABLED=0 GOOS=linux go build -ldflags "-s -w -X github.com/weaveworks/flagger/pkg/version.REVISION=$${GIT_COMMIT}" -a -installsuffix cgo -o ./bin/flagger ./cmd/flagger/* + GIT_COMMIT=$$(git rev-list -1 HEAD) && CGO_ENABLED=0 GOOS=linux go build \ + -ldflags "-s -w -X github.com/weaveworks/flagger/pkg/version.REVISION=$${GIT_COMMIT}" \ + -a -installsuffix cgo -o ./bin/flagger ./cmd/flagger/* docker build -t weaveworks/flagger:$(TAG) . -f Dockerfile push: @@ -59,16 +30,6 @@ crd: cat artifacts/flagger/crd.yaml > charts/flagger/crds/crd.yaml cat artifacts/flagger/crd.yaml > kustomize/base/flagger/crd.yaml -helm-package: - cd charts/ && helm package ./* - mv charts/*.tgz bin/ - curl -s https://raw.githubusercontent.com/weaveworks/flagger/gh-pages/index.yaml > ./bin/index.yaml - helm repo index bin --url https://flagger.app --merge ./bin/index.yaml - -helm-up: - helm upgrade --install flagger ./charts/flagger --namespace=istio-system --set crd.create=false - helm upgrade --install flagger-grafana ./charts/grafana --namespace=istio-system - version-set: @next="$(TAG)" && \ current="$(VERSION)" && \ @@ -80,47 +41,14 @@ version-set: sed -i '' "s/newTag: $$current/newTag: $$next/g" kustomize/base/flagger/kustomization.yaml && \ echo "Version $$next set in code, deployment, chart and kustomize" -version-up: - @next="$(VERSION_MINOR).$$(($(PATCH) + 1))" && \ - current="$(VERSION)" && \ - sed -i '' "s/$$current/$$next/g" pkg/version/version.go && \ - sed -i '' "s/flagger:$$current/flagger:$$next/g" artifacts/flagger/deployment.yaml && \ - sed -i '' "s/tag: $$current/tag: $$next/g" charts/flagger/values.yaml && \ - sed -i '' "s/appVersion: $$current/appVersion: $$next/g" charts/flagger/Chart.yaml && \ - echo "Version $$next set in code, deployment and chart" - -dev-up: version-up - @echo "Starting build/push/deploy pipeline for $(VERSION)" - docker build -t quay.io/stefanprodan/flagger:$(VERSION) . -f Dockerfile - docker push quay.io/stefanprodan/flagger:$(VERSION) - kubectl apply -f ./artifacts/flagger/crd.yaml - helm upgrade -i flagger ./charts/flagger --namespace=istio-system --set crd.create=false - release: git tag $(VERSION) git push origin $(VERSION) -release-set: fmt version-set helm-package - git add . - git commit -m "Release $(VERSION)" - git push origin master - git tag $(VERSION) - git push origin $(VERSION) - release-notes: cd /tmp && GH_REL_URL="https://github.com/buchanae/github-release-notes/releases/download/0.2.0/github-release-notes-linux-amd64-0.2.0.tar.gz" && \ curl -sSL $${GH_REL_URL} | tar xz && sudo mv github-release-notes /usr/local/bin/ -reset-test: - kubectl delete -f ./artifacts/namespaces - kubectl apply -f ./artifacts/namespaces - kubectl apply -f ./artifacts/canaries - -loadtester-run: loadtester-build - docker build -t weaveworks/flagger-loadtester:$(LT_VERSION) . -f Dockerfile.loadtester - docker rm -f tester || true - docker run -dp 8888:9090 --name tester weaveworks/flagger-loadtester:$(LT_VERSION) - loadtester-build: GO111MODULE=on CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o ./bin/loadtester ./cmd/loadtester/* From dd7a045542f4850b7c06833f67539346634326d9 Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Fri, 28 Feb 2020 17:58:39 +0200 Subject: [PATCH 4/4] Release loadtester v0.13.0 --- artifacts/loadtester/deployment.yaml | 2 +- charts/loadtester/Chart.yaml | 4 ++-- charts/loadtester/values.yaml | 2 +- cmd/loadtester/main.go | 2 +- kustomize/tester/deployment.yaml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/artifacts/loadtester/deployment.yaml b/artifacts/loadtester/deployment.yaml index 7572e021..09862656 100644 --- a/artifacts/loadtester/deployment.yaml +++ b/artifacts/loadtester/deployment.yaml @@ -17,7 +17,7 @@ spec: spec: containers: - name: loadtester - image: weaveworks/flagger-loadtester:0.12.1 + image: weaveworks/flagger-loadtester:0.13.0 imagePullPolicy: IfNotPresent ports: - name: http diff --git a/charts/loadtester/Chart.yaml b/charts/loadtester/Chart.yaml index f8419090..a5b970e9 100644 --- a/charts/loadtester/Chart.yaml +++ b/charts/loadtester/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 name: loadtester -version: 0.12.1 -appVersion: 0.12.1 +version: 0.13.0 +appVersion: 0.13.0 kubeVersion: ">=1.11.0-0" engine: gotpl description: Flagger's load testing services based on rakyll/hey and bojand/ghz that generates traffic during canary analysis when configured as a webhook. diff --git a/charts/loadtester/values.yaml b/charts/loadtester/values.yaml index 17d7c1ea..33befbd9 100644 --- a/charts/loadtester/values.yaml +++ b/charts/loadtester/values.yaml @@ -2,7 +2,7 @@ replicaCount: 1 image: repository: weaveworks/flagger-loadtester - tag: 0.12.1 + tag: 0.13.0 pullPolicy: IfNotPresent podAnnotations: diff --git a/cmd/loadtester/main.go b/cmd/loadtester/main.go index db01eef8..f767f210 100644 --- a/cmd/loadtester/main.go +++ b/cmd/loadtester/main.go @@ -11,7 +11,7 @@ import ( "go.uber.org/zap" ) -var VERSION = "0.12.1" +var VERSION = "0.13.0" var ( logLevel string port string diff --git a/kustomize/tester/deployment.yaml b/kustomize/tester/deployment.yaml index 2accda76..ff0d6b8d 100644 --- a/kustomize/tester/deployment.yaml +++ b/kustomize/tester/deployment.yaml @@ -18,7 +18,7 @@ spec: spec: containers: - name: loadtester - image: weaveworks/flagger-loadtester:0.12.1 + image: weaveworks/flagger-loadtester:0.13.0 imagePullPolicy: IfNotPresent ports: - name: http