Skip to content

ci(load-tests): add GitHub Actions workflow for load testing on k8s #4051

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

Open
wants to merge 46 commits into
base: master
Choose a base branch
from

Conversation

Elvis339
Copy link
Contributor

@Elvis339 Elvis339 commented Jul 3, 2025

Why this should be merged

Enables CI execution on platform-chaos-k8s addressing three critical EVM performance testing requirements:

  1. Access to larger nodes than GitHub provides
  2. Controlled latency simulation between nodes using chaos mesh for geographic distribution testing
  3. Secure cluster access without exposing credentials to GitHub Actions.

This foundation supports the EVM performance testing initiative and future regression analysis capabilities.

How this works

GitHub workflows can now leverage platform-chaos-k8s infrastructure for EVM load testing. Workflows automatically provision test environments. This provides a self-service testing environment without requiring direct cluster access or manual infrastructure setup.

How this was tested

Need to be documented in RELEASES.md?

No

@Elvis339 Elvis339 self-assigned this Jul 3, 2025
@Copilot Copilot AI review requested due to automatic review settings July 3, 2025 11:21
@Elvis339 Elvis339 requested a review from maru-ava as a code owner July 3, 2025 11:21
@Elvis339 Elvis339 added the ci This focuses on changes to the CI process label Jul 3, 2025
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Adds a new GitHub Actions workflow to run EVM load tests against a Kubernetes cluster using a custom self-hosted runner and Nix for environment management.

  • Introduces .github/workflows/load-tests.yaml for on-demand load testing via workflow_dispatch
  • Configures dependencies (apt, Go, Nix) inside a container and checks out full repository history
  • Executes Go-based load tests with a Nix-powered shell
Comments suppressed due to low confidence (1)

.github/workflows/load-tests.yaml:32

  • Enhance robustness by prepending the script with set -euo pipefail so the job fails fast on any command error or undefined variable within the shell step.
        shell: nix develop --command bash -x {0}

@Elvis339 Elvis339 requested a review from maru-ava July 7, 2025 12:31
- Select "Load Tests on k8s" workflow
- Click "Run workflow"
- Specify image (defaults to avaplatform/avalanchego:latest)
- Additional parameters can be passed via workflow inputs (duration, connections, node count)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(No action required) Are you intending to add these inputs before merge? If not, maybe remove this line.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added duration, node count should be merged soon so this is fine to stay I think.

- Specify image (defaults to avaplatform/avalanchego:latest)
- Additional parameters can be passed via workflow inputs (duration, connections, node count)

## Visualize metrics in Grafana
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(No action required) Maybe replace this section with a link to the relevant sections in the tmpnet README?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Elvis339 Elvis339 added load-test Run load test on self-hosted runners and removed load-test Run load test on self-hosted runners labels Jul 11, 2025
@Elvis339 Elvis339 added the load-test Run load test on self-hosted runners label Jul 11, 2025
@Elvis339 Elvis339 removed the load-test Run load test on self-hosted runners label Jul 11, 2025
@Elvis339 Elvis339 added the load-test-exclusive Run load tests on self-hosted runners with exclusive scheduling. label Jul 11, 2025
@Elvis339 Elvis339 removed the load-test-exclusive Run load tests on self-hosted runners with exclusive scheduling. label Jul 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci This focuses on changes to the CI process
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

3 participants