- Notifications
You must be signed in to change notification settings - Fork173
An operator for running distributed k6 tests.
License
grafana/k6-operator
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
grafana/k6-operator
is a Kubernetes operator for running distributedk6 tests in your cluster. k6 Operator introduces two CRDs:
TestRun
CRDPrivateLoadZone
CRD
TheTestRun
CRD is a representation of a single k6 test executed once.TestRun
supports various configuration options that allow you to adapt to different Kubernetes setups. You can find a description of the more common optionshere, and the full list of options can be found in thedefinition itself.
ThePrivateLoadZone
CRD is a representation of aload zone, which is a k6 term for a set of nodes within a cluster designated to execute k6 test runs.PrivateLoadZone
is integrated withGrafana Cloud k6 and requires aGrafana Cloud account. You can find a guide describing how to set up aPrivateLoadZone
here, while billing details can be foundhere.
You can find the latest k6 Operator documentation in theGrafana k6 OSS docs.
For additional resources:
- 📖 A guideRunning distributed load tests on Kubernetes.
- 📖 A guideRunning distributed tests.
- 🎥 Grafana Office HoursLoad Testing on Kubernetes with k6 Private Load Zones.
Common samples are available in theconfig/samples
ande2e/
folders in this repo, both for theTestRun
andPrivateLoadZone
CRDs.
We are always interested in your feedback! If you encounter problems during the k6 Operator usage, check out thetroubleshooting guide. If you have questions on how to use the k6 Operator, you can post them on theGrafana community forum.
For new feature requests and bug reports, consider opening an issue in this repository. First, check theexisting issues in case a similar report already exists. If it does, add a comment about your use case or upvote it.
For bug reports, please usethis template. If you think there is a missing feature, please usethis template.
When submitting a PR, it's preferable to work on an open issue. If an issue does not exist, create it. An issue allows us to validate the problem, gather additional feedback from the community, and avoid unnecessary work.
There are many options for setting up a local Kubernetes cluster for development, and any of them can be used for local development of the k6 Operator. One option is to create akind cluster.
Additionally, you'll need to install the following tooling:
- Golang
- kustomize
- operator-sdk: optional as most common changes can be done without it
To execute unit tests, use these commands:
make test-setup# only need to run oncemaketest
To execute e2e test locally:
make e2e
for kustomize andmake e2e-helm
for Helm- validate tests have been run
make e2e-cleanup
About
An operator for running distributed k6 tests.