Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various changes #1622

Merged
merged 15 commits into from
Sep 7, 2023
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 24 additions & 42 deletions .github/workflows/testcharts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:
# TODO: add check to verify when a change is made to kustomize, a similar change is made to charts

http-experiment:
name: HTTP load test
name: HTTP performance test
needs: get_versions
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -85,14 +85,11 @@ jobs:
- name: Start performance test
if: steps.modified-files.outputs.any_modified == 'true'
run: |
helm upgrade --install \
--repo https://iter8-tools.github.io/iter8 --version 0.16 httpbin-test iter8 \
--localChart \
--chartName charts/iter8 \
helm upgrade --install httpbin-test charts/iter8 \
--set "tasks={http}" \
--set http.url="http://httpbin.default/get" \
--set logLevel=trace
kubectl wait --for=condition=complete --timeout=180s job/default-1-job
kubectl wait --for=condition=complete --timeout=180s job/httpbin-test-1-job

- name: Get Kubernetes status
if: steps.modified-files.outputs.any_modified == 'true'
Expand All @@ -113,10 +110,10 @@ jobs:
- name: Check GET /httpDashboard
if: steps.modified-files.outputs.any_modified == 'true'
run: |
curl "http://localhost:8080/httpDashboard?namespace=default&experiment=default" -f
curl "http://localhost:8080/httpDashboard?namespace=default&experiment=httpbin-test" -f

http-payload-experiment:
name: HTTP load test with payload
name: HTTP performance test with payload
needs: get_versions
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -156,15 +153,12 @@ jobs:
- name: Start performance test
if: steps.modified-files.outputs.any_modified == 'true'
run: |
helm upgrade --install \
--repo https://iter8-tools.github.io/iter8 --version 0.16 httpbin-test iter8 \
--localChart \
--chartName charts/iter8 \
helm upgrade --install httpbin-test charts/iter8 \
--set "tasks={http}" \
--set http.url="http://httpbin.default/post" \
--set http.payloadStr=hello \
--set logLevel=trace
kubectl wait --for=condition=complete --timeout=180s job/default-1-job
kubectl wait --for=condition=complete --timeout=180s job/httpbin-test-1-job

- name: Get Kubernetes status
if: steps.modified-files.outputs.any_modified == 'true'
Expand All @@ -185,10 +179,10 @@ jobs:
- name: Check GET /httpDashboard
if: steps.modified-files.outputs.any_modified == 'true'
run: |
curl "http://localhost:8080/httpDashboard?namespace=default&experiment=default" -f
curl "http://localhost:8080/httpDashboard?namespace=default&experiment=httpbin-test" -f

http-multiple-experiment:
name: HTTP load test with multiple endpoints
name: HTTP performance test with multiple endpoints
needs: get_versions
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -228,17 +222,14 @@ jobs:
- name: Start performance test
if: steps.modified-files.outputs.any_modified == 'true'
run: |
helm upgrade --install \
--repo https://iter8-tools.github.io/iter8 --version 0.16 httpbin-test iter8 \
--localChart \
--chartName charts/iter8 \
helm upgrade --install httpbin-test charts/iter8 \
--set "tasks={http}" \
--set http.endpoints.get.url=http://httpbin.default/get \
--set http.endpoints.getAnything.url=http://httpbin.default/anything \
--set http.endpoints.post.url=http://httpbin.default/post \
--set http.endpoints.post.payloadStr=hello \
--set logLevel=trace
kubectl wait --for=condition=complete --timeout=180s job/default-1-job
kubectl wait --for=condition=complete --timeout=180s job/httpbin-test-1-job

- name: Get Kubernetes status
if: steps.modified-files.outputs.any_modified == 'true'
Expand All @@ -259,10 +250,10 @@ jobs:
- name: Check GET /httpDashboard
if: steps.modified-files.outputs.any_modified == 'true'
run: |
curl "http://localhost:8080/httpDashboard?namespace=default&experiment=default" -f
curl "http://localhost:8080/httpDashboard?namespace=default&experiment=httpbin-test" -f

grpc-experiment:
name: gRPC load test
name: gRPC performance test
needs: get_versions
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -311,10 +302,7 @@ jobs:
- name: Start performance test
if: steps.modified-files.outputs.any_modified == 'true'
run: |
helm upgrade --install \
--repo https://iter8-tools.github.io/iter8 --version 0.16 routeguide-test iter8 \
--localChart \
--chartName charts/iter8 \
helm upgrade --install routeguide-test charts/iter8 \
--set "tasks={ready,grpc}" \
--set ready.deploy=routeguide \
--set ready.service=routeguide \
Expand All @@ -324,7 +312,7 @@ jobs:
--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=180s job/default-1-job
kubectl wait --for=condition=complete --timeout=180s job/routeguide-test-1-job

- name: Get Kubernetes status
if: steps.modified-files.outputs.any_modified == 'true'
Expand All @@ -345,10 +333,10 @@ jobs:
- name: Check GET /grpcDashboard
if: steps.modified-files.outputs.any_modified == 'true'
run: |
curl "http://localhost:8080/grpcDashboard?namespace=default&experiment=default" -f
curl "http://localhost:8080/grpcDashboard?namespace=default&experiment=routeguide-test" -f

grpc-multiple-experiment:
name: gRPC load test with multiple endpoints
name: gRPC performance test with multiple endpoints
needs: get_versions
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -397,10 +385,7 @@ jobs:
- name: Start performance test
if: steps.modified-files.outputs.any_modified == 'true'
run: |
helm upgrade --install \
--repo https://iter8-tools.github.io/iter8 --version 0.16 routeguide-test iter8 \
--localChart \
--chartName charts/iter8 \
helm upgrade --install routeguide-test charts/iter8 \
--set "tasks={ready,grpc}" \
--set ready.deploy=routeguide \
--set ready.service=routeguide \
Expand All @@ -412,7 +397,7 @@ jobs:
--set grpc.endpoints.listFeatures.call=routeguide.RouteGuide.ListFeatures \
--set grpc.endpoints.listFeatures.dataURL=https://raw.githubusercontent.com/iter8-tools/docs/v0.13.13/samples/grpc-payload/server.json \
--set logLevel=trace
kubectl wait --for=condition=complete --timeout=180s job/default-1-job
kubectl wait --for=condition=complete --timeout=180s job/routeguide-test-1-job

- name: Get Kubernetes status
if: steps.modified-files.outputs.any_modified == 'true'
Expand All @@ -433,10 +418,10 @@ jobs:
- name: Check GET /grpcDashboard
if: steps.modified-files.outputs.any_modified == 'true'
run: |
curl "http://localhost:8080/grpcDashboard?namespace=default&experiment=default" -f
curl "http://localhost:8080/grpcDashboard?namespace=default&experiment=routeguide-test" -f

grpc-experiment2:
name: gRPC load test 2
name: gRPC performance test 2
needs: get_versions
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -476,16 +461,13 @@ jobs:
- name: Start performance test
if: steps.modified-files.outputs.any_modified == 'true'
run: |
helm upgrade --install \
--repo https://iter8-tools.github.io/iter8 --version 0.16 hello-test iter8 \
--localChart \
--chartName charts/iter8 \
helm upgrade --install hello-test charts/iter8 \
--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=180s job/default-1-job
kubectl wait --for=condition=complete --timeout=180s job/hello-test-1-job

- name: Get Kubernetes status
if: steps.modified-files.outputs.any_modified == 'true'
Expand All @@ -506,4 +488,4 @@ jobs:
- name: Check GET /grpcDashboard
if: steps.modified-files.outputs.any_modified == 'true'
run: |
curl "http://localhost:8080/grpcDashboard?namespace=default&experiment=default" -f
curl "http://localhost:8080/grpcDashboard?namespace=default&experiment=hello-test" -f
12 changes: 6 additions & 6 deletions .github/workflows/verifyuserexperience.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ on:

jobs:
http-experiment:
name: HTTP load test
name: HTTP performance test
runs-on: ubuntu-latest

steps:
Expand Down Expand Up @@ -60,7 +60,7 @@ jobs:
curl "http://localhost:8080/httpDashboard?namespace=default&experiment=default" -f

http-payload-experiment:
name: HTTP load test with payload
name: HTTP performance test with payload
runs-on: ubuntu-latest

steps:
Expand Down Expand Up @@ -109,7 +109,7 @@ jobs:
curl "http://localhost:8080/httpDashboard?namespace=default&experiment=default" -f

http-multiple-experiment:
name: HTTP load test with multiple endpoints
name: HTTP performance test with multiple endpoints
runs-on: ubuntu-latest

steps:
Expand Down Expand Up @@ -158,7 +158,7 @@ jobs:
curl "http://localhost:8080/httpDashboard?namespace=default&experiment=default" -f

grpc-experiment:
name: gRPC load test
name: gRPC performance test
runs-on: ubuntu-latest

steps:
Expand Down Expand Up @@ -219,7 +219,7 @@ jobs:
curl "http://localhost:8080/grpcDashboard?namespace=default&experiment=default" -f

grpc-multiple-experiment:
name: gRPC load test with multiple endpoints
name: gRPC performance test with multiple endpoints
runs-on: ubuntu-latest

steps:
Expand Down Expand Up @@ -282,7 +282,7 @@ jobs:
curl "http://localhost:8080/grpcDashboard?namespace=default&experiment=default" -f

grpc-experiment2:
name: gRPC load test 2
name: gRPC performance test 2
runs-on: ubuntu-latest

steps:
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ If anything doesn't make sense, or doesn't work when you run it, please open a b

We welcome many types of contributions including:

* [CLI and Iter8 experiment charts](#iter8-toolsiter8)
* [CLI and Iter8 performance test charts](#iter8-toolsiter8)
* [Docs](#iter8-toolsdocs)
* CI, builds, and tests
* Reviewing pull requests
Expand Down Expand Up @@ -71,7 +71,7 @@ repository, you can amend your commit with the sign-off by running:

The Iter8 project consists of the following repos.

1. [iter8-tools/iter8](https://github.com/iter8-tools/iter8): source for the Iter8 CLI, experiment, and controller charts
1. [iter8-tools/iter8](https://github.com/iter8-tools/iter8): source for the Iter8 CLI, performance test, and controller charts
2. [iter8-tools/docs](https://github.com/iter8-tools/docs): source for Iter8 docs

### iter8-tools/iter8
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@ Iter8 supports the following use-cases:
3. A/B/n testing of applications and ML models
4. Reliable and automated routing: blue-green and canary

## :rocket: Iter8 experiment
## :rocket: Iter8 performance test

Iter8 introduces the notion of an experiment, which is a list of configurable tasks that are executed in a specific sequence.
Iter8 introduces a set of tasks which which can be composed in order to conduct a variety of performance tests.

<p align='center'>
<img alt-text="Iter8 experiment" src="https://iter8-tools.github.io/docs/0.9/images/iter8-intro-dark.png" width="70%" />
<img alt-text="Iter8 performance test" src="https://iter8-tools.github.io/docs/0.9/images/iter8-intro-dark.png" width="70%" />
</p>

Iter8 packs a number of powerful features that facilitate Kubernetes app testing and experimentation. They include the following.
Iter8 packs a number of powerful features that facilitate Kubernetes app testing. They include the following.

1. **Generating load and collecting built-in metrics for HTTP and gRPC services.** Simplifies performance testing by eliminating the need to setup and use metrics databases.
2. **Readiness check.** The performance testing portion of the experiment begins only after the service is ready.
3. **Experiment anywhere.** Iter8 experiments can be launched inside a Kubernetes cluster, in local environments, or inside a GitHub Actions pipeline.
2. **Readiness check.** The performance testing portion can be configured to start only after the service is ready.
3. **Test anywhere.** Iter8 performance tests can be launched inside a Kubernetes cluster, in local environments, or inside a GitHub Actions pipeline.
4. **Traffic controller.** Automatically and dynamically reconfigures routing resources based on the state of Kubernetes apps/ML models.
5. **Client-side SDK.** Facilitates routing and metrics collection task associated with distributed (i.e., client-server architecture-based) A/B/n testing in Kubernetes.

Expand Down
28 changes: 0 additions & 28 deletions action/delete.go

This file was deleted.

33 changes: 0 additions & 33 deletions action/delete_test.go

This file was deleted.

Loading