Installation
To get Testkube up and running:
- Install the kubectl testkube plugin.
- Install Testkube in your cluster.
- Configure Testkube's Dashboard UI Ingress for your ingress-controller, if needed.
Install the Kubectl Testkube Plugin
Installing on MacOS
You can install Testkube from Homebrew (the installed version might be not a latest one, because it's manually approved by brew maintainers)
brew install testkube
Or we're building our own Homebrew tap for each release, so you can easily install latest Testkube version.
brew tap kubeshop/homebrew-testkube
brew install kubeshop/testkube/testkube
If you want to upgrade testkube, please run following command
brew update
brew upgrade testkube
Installing on Linux with apt
You can use apt to install Testkube.
Download our public GPG key, and add them to the trusted keys:
wget -qO - https://repo.testkube.io/key.pub | sudo apt-key add -
Add our repository to your apt sources:
sudo echo "deb https://repo.testkube.io/linux linux main" >> /etc/apt/sources.list
Make sure to get the updates:
sudo apt-get update
Install Testkube:
sudo apt-get install -y testkube
Installing on Linux or MacOS with Install Script
To install on Linux or MacOs, run
bash < <(curl -sSLf https://kubeshop.github.io/testkube/install.sh )
Alternative Installation Method - Manual
If you don't like automatic scripts you can always do a manual install:
- Download binary with the version of your choice (the most recent one is recommended).
- Upack it (tar -zxvf testkube_0.6.5_Linux_arm64.tar.gz).
- Move it to a location in the PATH. For example,
mv testkube_0.6.5_Linux_arm64/kubectl-testkube /usr/local/bin/kubectl-testkube
.
For Windows, download the binary here, unpack the binary and add it to %PATH%
.
We have plans to build installers for the most popular Operating Systems and system distros #161.
Install Testkube Components in Your Cluster
Helm must be installed to use charts.
Please refer to Helm's documentation to get started.
The Testkube kubectl plugin provides an install command to install Testkube in your cluster. Note: you must have helm installed
Run:
kubectl testkube install
The above command will install the following components in your Kubernetes cluster:
- Testkube API
testkube
namespace- CRD for Tests, TestSuites, Executors
- MongoDB
- Minio - default (can be disabled with
--no-minio
flag if you want to use S3 buckets) - Dashboard - default (can be disabled with
--no-dasboard
flag) - Jetstack certificate manager for
testkube
namespace (can be disabled with--no-jetstack
flag). It will not be installed, if it's already installed to your Kubernetes cluster
Confirm that Testkube is running:
kubectl get all -n testkube
Output:
NAME READY STATUS RESTARTS AGE
pod/cert-manager-847544bbd-fw2h8 1/1 Running 0 4m51s
pod/cert-manager-cainjector-5c747645bf-qgftx 1/1 Running 0 4m51s
pod/cert-manager-webhook-77b946cb6d-dl6gb 1/1 Running 0 4m51s
pod/testkube-dashboard-748cbcbb66-q8zzp 1/1 Running 0 4m51s
pod/testkube-api-server-546777c9f7-7g4kg 1/1 Running 0 4m51s
pod/testkube-mongodb-5d95f44fdd-cxqz6 1/1 Running 0 4m51s
pod/testkube-minio-testkube-64cd475b94-562hz 1/1 Running 0 4m51s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/cert-manager ClusterIP 10.106.81.214 <none> 9402/TCP 2d20h
service/cert-manager-webhook ClusterIP 10.104.228.254 <none> 443/TCP 2d20h
service/testkube-minio-service-testkube NodePort 10.43.121.107 <none> 9000:31222/TCP,9090:32002/TCP,9443:32586/TCP 4m51s
service/testkube-api-server NodePort 10.43.66.13 <none> 8088:32203/TCP 4m51s
service/testkube-mongodb ClusterIP 10.43.126.230 <none> 27017/TCP 4m51s
service/testkube-dashboard NodePort 10.43.136.34 <none> 80:31991/TCP 4m51s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/cert-manager 1/1 1 1 4m51s
deployment.apps/cert-manager-cainjector 1/1 1 1 4m51s
deployment.apps/cert-manager-webhook 1/1 1 1 4m51s
deployment.apps/testkube-dashboard 1/1 1 1 4m51s
deployment.apps/testkube-api-server 1/1 1 1 4m51s
deployment.apps/testkube-mongodb 1/1 1 1 4m51s
deployment.apps/testkube-minio-testkube 1/1 1 1 4m51s
NAME DESIRED CURRENT READY AGE
replicaset.apps/cert-manager-847544bbd 1 1 1 4m51s
replicaset.apps/cert-manager-cainjector-5c747645bf 1 1 1 4m51s
replicaset.apps/cert-manager-webhook-77b946cb6d 1 1 1 4m51s
replicaset.apps/testkube-dashboard-748cbcbb66 1 1 1 4m51s
replicaset.apps/testkube-api-server-546777c9f7 1 1 1 4m51s
replicaset.apps/testkube-mongodb-5d95f44fdd 1 1 1 4m51s
replicaset.apps/testkube-minio-testkube-64cd475b94 1 1 1 4m51s
By default Testkube is installed in the testkube
namespace.
Manual Testkube Helm Charts Installation
Helm must be installed to use charts.
Please refer to Helm's documentation to get started.
Once Helm has been set up correctly, add the Kubeshop Helm repository as follows:
helm repo add testkube 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.
We heavily depend on jetstack cert-manager for webhooks TLS configuration. If it is not installed in your cluster, then please install it with the official instructions here.
To install the testkube
chart:
helm install --create-namespace my-testkube testkube/testkube
Please note that, by default, the namespace for the intstallation 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 testkube/testkube
To uninstall the testkube
chart if it was installed into default namespace:
helm delete my-testkube testkube/testkube
And from a namespace other than testkube
:
helm delete --namespace namespace_name my-testkube testkube/testkube
Helm Properties
The following Helm defaults are used in the testkube
chart:
Parameter | Is optional | Default |
---|---|---|
mongodb.auth.enabled | yes | false |
mongodb.service.port | yes | "27017" |
mongodb.service.portNmae | yes | "mongodb" |
mongodb.service.nodePort | yes | true |
mongodb.service.clusterIP | yes | "" |
mongodb.nameOverride | yes | "mongodb" |
mongodb.fullnameOverride | yes | "testkube-mongodb" |
testkube-api.image.repository | yes | "kubeshop/testkube-api-server" |
testkube-api.image.pullPolicy | yes | "Always" |
testkube-api.image.tag | yes | "latest" |
testkube-api.service.type | yes | "NodePort" |
testkube-api.service.port | yes | 8088 |
testkube-api.mongoDSN | yes | "mongodb://testkube-mongodb:27017" |
testkube-api.analyticsEnabled | yes | true |
testkube-api.storage.endpoint | yes | testkube-minio-service-testkube:9000 |
testkube-api.storage.accessKeyId | yes | minio |
testkube-api.storage.accessKey | yes | minio123 |
testkube-api.storage.scrapperEnabled | yes | true |
testkube-api.slackToken | yes | "" |
testkube-api.slackChannelId | yes | "" |
For more configuration parameters of
MongoDB
chart please visit: https://github.com/bitnami/charts/tree/master/bitnami/mongodb#parameters
Uninstall Testkube
Uninstall Testkube using the uninstall command integrated into the Testkube plugin.
kubectl testkube uninstall