Skip to content

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.

  1. Fork the Iter8 docs repo: https://github.com/iter8-tools/docs to your organization, myorg.

  2. If necessary, enable GitHub Actions workflows on the your forked repo by navigating to https://github.com/myorg/docs/actions.

  3. Run the workflow:

  4. 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.

Back to top