Iter8 GitHub Action¶
The load-test-grpc
experiment can be invoked as part of a GitHub Actions workflow using the Iter8 Action.
Basic example¶
The following example demonstrates the use of the Iter8 Action to benchmark and validate a gRPC service. This is the GitHub Actions equivalent of the CLI-driven basic gRPC example.
# An earlier step in the workflow is assumed to have started the gRPC service
# Configure experiment using a YAML file
- run: |
cat << EOF > myvalues.yaml
host: 127.0.0.1:50051
call: helloworld.Greeter.SayHello
protoURL: https://raw.githubusercontent.com/grpc/grpc-go/master/examples/helloworld/helloworld/helloworld.proto
EOF
# Run Iter8 experiment
- uses: iter8-tools/iter8-action@v1
with:
chart: load-test-grpc
valuesFile: myvalues.yaml
Experiment configuration¶
The basic usage tutorial describes various configurable parameters of the load-test-grpc
experiment. Their default values are documented in the chart's values.yaml
file and can be viewed as follows.
iter8 hub -c load-test-grpc
cat load-test-grpc/values.yaml
Automated SLO validation¶
You can specify service-level objectives (SLOs) as part of the load-test-grpc
experiment. If the SLOs are not satisfied, then the action will fail. You can disable this behavior by setting the validateSLOs
input to false
.
- uses: iter8-tools/iter8-action@v1
with:
chart: load-test-grpc
valuesFile: myvalues.yaml
validateSLOs: false
Logging¶
The Iter8 Action logs contain the following.
- output of
iter8 version
- the
experiment.yaml
file generated by Iter8 - logs from the experiment run
- output of
iter8 report
- output of
iter8 assert -c completed -c nofailures -c slos
Complete example¶
A complete GitHub Actions workflow which exercises the Iter8 Action using the load-test-grpc
experiment is available as part of the Iter8 docs repo. Run this example as follows.
-
Fork the Iter8 docs repo: https://github.com/iter8-tools/docs to your organization, myorg.
-
If necessary, enable GitHub Actions workflows on the your forked repo by navigating to https://github.com/myorg/docs/actions.
-
Run the workflow:
- Navigate to the Actions tab of your forked repository: https://github.com/myorg/docs/actions.
- Select the workflow end-to-end tests.
- Click the Run workflow button.
-
When the workflow has completed, there will be a new entry for the execution. Select the latest, then the entry for the local grpc tests job. View the logs generated by the Iter8 GitHub Action by clicking on the steps labeled Run iter8-tools/iter8-action@v1.
Iter8 Action inputs¶
The list of inputs that can be configured for the Iter8 GitHub Action is documented here.