Skip to main content
New to Testkube? Unleash the power of cloud native testing in Kubernetes with Testkube. Get Started >

Testkube Helm Charts

1. Add the Kubeshop Helm repository.

helm repo add kubeshop https://kubeshop.github.io/helm-charts

If this repo already exists, run helm repo update to retrieve the latest versions of the packages. You can then run helm search repo testkube to see the charts.

2. Install the testkube chart.

helm install --create-namespace my-testkube kubeshop/testkube
note

By default, the namespace for the installation will be testkube. If the testkube namespace does not exist, it will be created for you.

If you wish to install into a different namespace, please use following command:

helm install --namespace namespace_name my-testkube kubeshop/testkube

To uninstall the testkube chart if it was installed into the default namespace:

helm delete my-testkube kubeshop/testkube

And from a namespace other than testkube:

helm delete --namespace namespace_name my-testkube kubeshop/testkube

Testkube Multi-namespace Feature

It is possible to deploy multiple Testkube instances into the same Kubernetes cluster. Please follow these installation commands.

1. For new installations:

helm repo add kubeshop https://kubeshop.github.io/helm-charts

helm install testkube kubeshop/testkube --namespace testkube --create-namespace --set testkube-api.multinamespace.enabled=true

helm install testkube1 kubeshop/testkube -n testkube1 --create-namespace --set testkube-api.multinamespace.enabled=true --set testkube-operator.enabled=false

These commands will deploy Testkube components into two namespaces: testkube and testkube1 and will create a watcher role to watch k8s resources in each namespace respectively. If you need to watch resources besides the installation namespace, please add them to the additionalNamespaces variable in testkube-api section:

testkube-api:
additionalNamespaces:
- namespace2
- namespace3

Additionally, It is possible to change the namespace for testkube-operator by setting a value for namespace variable in the testkube-operator section:

testkube-operator:
namespace: testkube-system
note

Please note that the Testkube Operator creates ClusterRoles, so for the second deployment of Testkube, we need to disable the Operator, because it will fail with a resources already exist error. Be aware that the Operator is deployed once with the first chart installation of Testkube. Therefore, if you uninstall the first release, it will uninstall the Operator as well.

2. For the users who already have Testkube installed

Run the following commands to deploy Testkube in another namespace:

helm repo update kubeshop

helm install testkube1 kubeshop/testkube --namespace testkube1 --set testkube-api.multinamespace.enabled=true --set testkube-operator.enabled=false

Helm Properties

The following Helm defaults are used in the testkube chart:

ParameterIs optionalDefault
mongodb.auth.enabledyesfalse
mongodb.service.portyes"27017"
mongodb.service.portNameyes"mongodb"
mongodb.service.nodePortyestrue
mongodb.service.clusterIPyes""
mongodb.nameOverrideyes"mongodb"
mongodb.fullnameOverrideyes"testkube-mongodb"
testkube-api.image.repositoryyes"kubeshop/testkube-api-server"
testkube-api.image.pullPolicyyes"Always"
testkube-api.image.tagyes"latest"
testkube-api.service.typeyes"NodePort"
testkube-api.service.portyes8088
testkube-api.mongodb.dsnyes"mongodb://testkube-mongodb:27017"
testkube-api.nats.uriyes"nats://testkube-nats"
testkube-api.telemetryEnabledyestrue
testkube-api.storage.endpointyestestkube-minio-service-testkube:9000
testkube-api.storage.accessKeyIdyesminio
testkube-api.storage.accessKeyyesminio123
testkube-api.storage.scrapperEnabledyestrue
testkube-api.slackTokenyes""
testkube-api.slackSecretyes""
testkube-api.slackConfigyes""
testkube-api.jobServiceAccountNameyes""
testkube-api.logs.storageno"minio"
testkube-api.logs.bucketno"testkube-logs"
testkube-api.cdeventsTargetyes""
testkube-api.dashboardUriyes""
testkube-api.clusterNameyes""
testkube-api.storage.compressArtifactsyestrue
testkube-api.enableSecretsEndpointyesfalse
testkube-api.disableMongoMigrationsyesfalse
testkube-api.enabledExecutorsyes""
testkube-api.disableSecretCreationyesfalse

For more configuration parameters of a MongoDB chart please visit: https://github.com/bitnami/charts/tree/master/bitnami/mongodb#parameters

For more configuration parameters of an NATS chart please visit: https://docs.nats.io/running-a-nats-service/nats-kubernetes/helm-charts

note

Please note that we use global parameters in our values.yaml:

global:
imageRegistry: ""
imagePullSecrets: []
labels: {}
annotations: {}

They override all sub-chart values for the image parameters if specified.