-
Notifications
You must be signed in to change notification settings - Fork 34
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Bump version Signed-off-by: Alan Cha <[email protected]> * Extend time for experiments to run and verifyuserexperience workflow Signed-off-by: Alan Cha <[email protected]> --------- Signed-off-by: Alan Cha <[email protected]>
- Loading branch information
Showing
6 changed files
with
470 additions
and
615 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,11 @@ | ||
name: Publish binaries and Docker image | ||
name: Release binaries and Docker image | ||
|
||
# Runs when a release is published | ||
|
||
# Build and publish binaries and release Docker image | ||
# Test Docker image | ||
# | ||
# NOTE: completion of this task will trigger verifyuserexperience.yaml | ||
# which will test the released image (with released charts) | ||
|
||
on: | ||
release: | ||
|
@@ -89,214 +91,4 @@ jobs: | |
tags: ${{ env.OWNER }}/iter8:${{ env.VERSION }},${{ env.OWNER }}/iter8:${{ env.MAJOR_MINOR_VERSION }},${{ env.OWNER }}/iter8:latest | ||
push: true | ||
build-args: | | ||
TAG=v${{ env.VERSION }} | ||
kubernetes-http-experiment: | ||
name: Kubernetes HTTP load test | ||
needs: build-and-push | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Install Iter8 | ||
run: GOBIN=/usr/local/bin go install github.com/iter8-tools/[email protected] | ||
- name: Start kind cluster | ||
uses: helm/[email protected] | ||
with: | ||
wait: 300s | ||
- name: Create httpbin application | ||
run: | | ||
kubectl create deployment httpbin --image=kennethreitz/httpbin | ||
kubectl expose deployment httpbin --type=ClusterIP --port=80 | ||
kubectl wait --for=condition=available --timeout=60s deploy/httpbin | ||
- name: Install controller | ||
run: | | ||
helm install --repo https://iter8-tools.github.io/iter8 iter8 controller --set logLevel=trace | ||
kubectl rollout status --watch --timeout=60s statefulset/iter8 | ||
- name: iter8 k launch | ||
run: | | ||
iter8 k launch \ | ||
--set tasks={http} \ | ||
--set http.url="http://httpbin.default/get" \ | ||
--set logLevel=trace | ||
kubectl wait --for=condition=complete --timeout=60s job/default-1-job | ||
- name: Get Kubernetes status | ||
run: | | ||
kubectl get all | ||
- name: Try other iter8 k commands | ||
run: | | ||
iter8 k log | ||
iter8 k delete | ||
- name: Check GET /httpDashboard | ||
run: | | ||
curl "http://localhost:8080/httpDashboard?namespace=default&experiment=default" -f | ||
kubernetes-grpc-experiment: | ||
name: Kubernetes gRPC load test | ||
needs: build-and-push | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Install Iter8 | ||
run: GOBIN=/usr/local/bin go install github.com/iter8-tools/[email protected] | ||
- name: Start kind cluster | ||
uses: helm/[email protected] | ||
with: | ||
wait: 300s | ||
- name: Create routeguide application | ||
run: | | ||
kubectl create deployment routeguide --image=golang --port=50051 \ | ||
-- bash -c "git clone -b v1.52.0 --depth 1 https://github.com/grpc/grpc-go; cd grpc-go/examples/route_guide; sed -i "''" "'"s/localhost//"'" server/server.go; go run server/server.go" | ||
kubectl expose deployment routeguide --port=50051 | ||
kubectl wait --for=condition=available --timeout=60s deployment/routeguide | ||
- name: Install controller | ||
run: | | ||
helm install --repo https://iter8-tools.github.io/iter8 iter8 controller --set logLevel=trace | ||
kubectl rollout status --watch --timeout=60s statefulset/iter8 | ||
- name: Test gRPC service with grpcurl | ||
run: | | ||
curl -sO https://gist.githubusercontent.com/kalantar/510737f0fd58c0432a08e5b6e45ec97f/raw/524d6660284bf653ce0f29f3a25ed0e913c3df80/grpcurl-routeguide.yaml | ||
kubectl apply -f grpcurl-routeguide.yaml | ||
sleep 180 | ||
kubectl logs deploy/sleep | ||
- name: iter8 k launch | ||
run: | | ||
iter8 k launch \ | ||
--set tasks={grpc} \ | ||
--set grpc.host=routeguide.default:50051 \ | ||
--set grpc.protoURL=https://raw.githubusercontent.com/grpc/grpc-go/v1.52.0/examples/route_guide/routeguide/route_guide.proto \ | ||
--set grpc.call=routeguide.RouteGuide.GetFeature \ | ||
--set grpc.dataURL=https://raw.githubusercontent.com/iter8-tools/docs/v0.13.13/samples/grpc-payload/unary.json \ | ||
--set logLevel=trace | ||
kubectl wait --for=condition=complete --timeout=60s job/default-1-job | ||
- name: Get Kubernetes status | ||
run: | | ||
kubectl get all | ||
- name: Try other iter8 k commands | ||
run: | | ||
iter8 k log | ||
iter8 k delete | ||
- name: Check GET /grpcDashboard | ||
run: | | ||
curl "http://localhost:8080/grpcDashboard?namespace=default&experiment=default" -f | ||
kubernetes-grpc-experiment2: | ||
name: Kubernetes gRPC load test 2 | ||
needs: build-and-push | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Install Iter8 | ||
run: GOBIN=/usr/local/bin go install github.com/iter8-tools/[email protected] | ||
- name: Start kind cluster | ||
uses: helm/[email protected] | ||
with: | ||
wait: 300s | ||
- name: Create hello application | ||
run: | | ||
kubectl create deploy hello --image=docker.io/grpc/java-example-hostname:latest --port=50051 | ||
kubectl expose deploy hello --port=50051 | ||
kubectl wait --for=condition=available --timeout=60s deploy/hello | ||
- name: Install controller | ||
run: | | ||
helm install --repo https://iter8-tools.github.io/iter8 iter8 controller --set logLevel=trace | ||
kubectl rollout status --watch --timeout=60s statefulset/iter8 | ||
- name: iter8 k launch | ||
run: | | ||
iter8 k launch \ | ||
--set tasks={grpc} \ | ||
--set grpc.host="hello.default:50051" \ | ||
--set grpc.call="helloworld.Greeter.SayHello" \ | ||
--set grpc.protoURL="https://raw.githubusercontent.com/grpc/grpc-go/master/examples/helloworld/helloworld/helloworld.proto" \ | ||
--set logLevel=trace | ||
kubectl wait --for=condition=complete --timeout=60s job/default-1-job | ||
- name: Get Kubernetes status | ||
run: | | ||
kubectl get all | ||
- name: Try other iter8 k commands | ||
run: | | ||
iter8 k log | ||
iter8 k delete | ||
- name: Check GET /grpcDashboard | ||
run: | | ||
curl "http://localhost:8080/grpcDashboard?namespace=default&experiment=default" -f | ||
readiness: | ||
name: Kubernetes readiness test | ||
needs: build-and-push | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Install Iter8 | ||
run: GOBIN=/usr/local/bin go install github.com/iter8-tools/[email protected] | ||
- name: Start kind cluster | ||
uses: helm/[email protected] | ||
with: | ||
wait: 300s | ||
- name: Create httpbin application | ||
run: | | ||
kubectl create deploy httpbin --image=kennethreitz/httpbin --port=80 | ||
kubectl expose deploy httpbin --port=80 | ||
- name: Install controller | ||
run: | | ||
helm install --repo https://iter8-tools.github.io/iter8 iter8 controller --set logLevel=trace | ||
kubectl rollout status --watch --timeout=60s statefulset/iter8 | ||
- name: k launch with readiness checks | ||
run: | | ||
iter8 k launch \ | ||
--set "tasks={ready,http}" \ | ||
--set ready.deploy="httpbin" \ | ||
--set ready.service="httpbin" \ | ||
--set ready.timeout=60s \ | ||
--set http.url=http://httpbin.default/get \ | ||
--set logLevel=trace | ||
kubectl wait --for=condition=complete --timeout=60s job/default-1-job | ||
- name: Get Kubernetes status | ||
run: | | ||
kubectl get all | ||
- name: Check GET /httpDashboard | ||
run: | | ||
curl "http://localhost:8080/httpDashboard?namespace=default&experiment=default" -f | ||
readiness-with-namespace: | ||
name: Kubernetes readiness test with namespace | ||
needs: build-and-push | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Install Iter8 | ||
run: GOBIN=/usr/local/bin go install github.com/iter8-tools/[email protected] | ||
- name: Start kind cluster | ||
uses: helm/[email protected] | ||
with: | ||
wait: 300s | ||
- name: Create httpbin application | ||
run: | | ||
kubectl create deploy httpbin --image=kennethreitz/httpbin --port=80 | ||
kubectl expose deploy httpbin --port=80 | ||
kubectl create namespace experiments | ||
- name: Install controller | ||
run: | | ||
helm install --repo https://iter8-tools.github.io/iter8 iter8 controller --set logLevel=trace | ||
kubectl rollout status --watch --timeout=60s statefulset/iter8 | ||
- name: k launch with readiness checks | ||
run: | | ||
iter8 k launch -n experiments \ | ||
--set "tasks={ready,http}" \ | ||
--set ready.deploy="httpbin" \ | ||
--set ready.service="httpbin" \ | ||
--set ready.timeout=60s \ | ||
--set ready.namespace=default \ | ||
--set http.url=http://httpbin.default/get \ | ||
--set logLevel=trace | ||
kubectl wait --for=condition=complete --timeout=60s job/default-1-job | ||
- name: Get Kubernetes status | ||
run: | | ||
kubectl get all | ||
- name: Check GET /httpDashboard | ||
run: | | ||
curl "http://localhost:8080/httpDashboard?namespace=default&experiment=default" -f | ||
TAG=v${{ env.VERSION }} |
Oops, something went wrong.