Skip to content

Commit

Permalink
Bump version of iter8 chart (#1594)
Browse files Browse the repository at this point in the history
* 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
Alan-Cha authored Aug 25, 2023
1 parent 2de31b7 commit ea5048d
Show file tree
Hide file tree
Showing 6 changed files with 470 additions and 615 deletions.
218 changes: 5 additions & 213 deletions .github/workflows/releaseassets.yaml
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:
Expand Down Expand Up @@ -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 }}
Loading

0 comments on commit ea5048d

Please sign in to comment.