Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.
Install k6 Operator
This guide provides step-by-step instructions on how to install k6 Operator.
Before you begin
To install k6 Operator, you’ll need:
- A Kubernetes cluster, along with access to it.
 - kubectl.
 
Deploy the operator
There are three different options that you can use to deploy the k6 Operator.
Deploy with bundle
The easiest way to install the operator is with bundle:
curl https://raw.githubusercontent.com/grafana/k6-operator/main/bundle.yaml | kubectl apply -f -Bundle includes default manifests for k6 Operator, including a k6-operator-system namespace and k6 Operator deployment with the latest tagged Docker image. Customizations can be made on top of this manifest as needed, for example, with kustomize.
Deploy with Helm
Helm releases of k6 Operator are published together with other Grafana Helm charts. You can install it with the following commands:
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm install k6-operator grafana/k6-operatorYou can also pass additional configuration options with a values.yaml file:
helm install k6-operator grafana/k6-operator -f values.yamlRefer to the k6 Operator samples folder for an example file.
You can find a complete list of Helm options in the k6 Operator charts folder.
Deploy with Makefile
In order to install the operator with a Makefile, you’ll need:
A more manual, low-level way to install the k6 operator is by running the command below:
make deployThis method may be more useful for development of the k6 Operator, depending on specifics of the setup.
Install the CRD
The k6 Operator includes custom resources called TestRun, PrivateLoadZone, and K6. They’re automatically installed when you do a deployment or install a bundle, but you can also manually install them by running:
make installWarning
The
K6CRD has been replaced by theTestRunCRD and will be deprecated in the future. We recommend using theTestRunCRD.
Watch namespace
By default, the k6 Operator watches the TestRun and PrivateLoadZone custom resources in all namespaces. You can also configure the k6 Operator to watch a specific namespace by setting the WATCH_NAMESPACE environment variable for the operator’s deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: k6-operator-controller-manager
  namespace: k6-operator-system
spec:
  template:
    spec:
      containers:
        - name: manager
          image: ghcr.io/grafana/k6-operator:controller-v0.0.14
          env:
            - name: WATCH_NAMESPACE
              value: 'some-ns'
# ...Uninstall k6 Operator
You can remove all of the resources created by the k6 Operator with bundle:
curl https://raw.githubusercontent.com/grafana/k6-operator/main/bundle.yaml | kubectl delete -f -Or with the make command:
make delete

