Testkube v1.3: Slack, ArgoCD, and more

July 8, 2022
Est. reading time:
1 min
Welcome to v.1.3 from Testkube, which features an updated UI to add Basic and Secret variables to Tests and Test Suites, ARM64 support, Slack Integration, ArgoCD integration and much more.
Vladislav Sukhin
Sr. Software Engineer
Table of Contents

[Testkube](https://testkube.io/), the Cloud Native testing framework that makes running tests directly in Kubernetes clusters possible, has seen a lot of changes lately with improvements, clean-ups, some features added, and some new integrations. We are constantly improving the Testkube user experience regarding testing tools in the Kubernetes environment. Learn more about the latest 1.3 release below.

# New UI features:

## 1. Show Test CRD Definition

We added a special tab to the UI Test details in order to show the Kubernetes CRD Test definitions. You can copy the definition to use it to create a test manually or to store it in your repository for future synchronization using GitOps tools.

## 2. Define Basic and Secret Variables for Test

We continue to synchronize a feature set between CLI and our Testkube UI. Now it is possible to define Basic and Secret variables for any Test. Simply open the Variables tab and provide desired values.

# New CLI features:

## 1. Get CRD definitions of resources using the –crd-only flag.

We are committed to support GitOps tools like ArgoCD, as well as automation over our Testkube plugins. You can request the CRD definition for any native Kubernetes resources like Webhook, Executor, Test or Test Suite for the CLI Get command by adding the ```–crd-only``` flag. For example, if you want to get CRDs for all your tests, just use ```kubectl testkube get tests –crd-only```. If you need to implement automation over CLI using a pipeline, use ```kubectl testkube get tests --crd-only | yq .spec.type```.

# New API Features

## 1. Get CRD definition of resources using text/yaml Accept header for API calls.

If you directly call our API methods, you can now get the CRD definition of any existing Kubernetes resource by supplying the Accept: text/yaml header for any Get resource API call.

## 2. Order Test and Test Suite lists by latest execution time.

We improved the ordering of elements in Test and Test Suite lists showing first the ones that have never been executed, followed by items with the latest execution time.

# ArgoCD Integration:

Following multiple user requests to simplify the integration between Testkube and ArgoCD, we prepared a special repository [https://github.com/kubeshop/testkube-argocd](https://github.com/kubeshop/testkube-argocd) which contains ArgoCD customization files, the ArgoCD Testkube application, and examples of usage and setup scripts. We automatically build a Docker image for ArgoCD for each new Testkube release. Users can set up their ArgoCD installation by running the provided script with required parameters. And later, use ArgoCD Synchronization flow to automatically synchronize the content of their GitOps repository and Kubernetes cluster.

# Argo Rollouts:

Some of our users use Testkube together with Argo Rollouts. 'canary deployments. Argo Rollouts' allows you to run K8S jobs before and after a promotion. Many of them use bash scripts to execute curl commands to test if the application is working correctly. Testkube now provides an option to replace these scripts with Testkube instead. We added the Sync flag to our API methods responsible for Test and Test Suite executions in order to make a blocking call and wait until the Test or Test Suite is finished.

# Improvements:

## 1. Build Testkube Docker images for both AMD64 and ARM64.

We support a multi-platform Docker Testkube image in order to run natively on different computer platforms. The first additional platform (besides default AMD64) became ARM64 and users can run the Testkube framework natively on their Mac computers.

## 2. Change the Dashboard command for the Windows platform.

We changed an approach to start Testkube dashboard using kubectl plugin. It support the newest Windows OS versions.

## 3. Collect logs for the Init Pod of Testkube executors

We previously did not collect logs from Init Pods that are run before the main Testkube executors and prepare data for the last ones. We improved this so users can see all details related to test execution.

## 4. Refactored Prometheus metrics for Testkube API.

Some of our users started analyzing Test and Test Suite executions using the Prometheus metrics that Testkube exposes. We added additional metrics and updated the existing ones in order to reflect the latest changes in our Testkube work.

# Bug fixes:

## 1. Slack templates and notifications optimized.

We changed the Slack templates and solved issues with missing notifications for some Test executions.

## 2. Properly handle errors for the K6 executor.

We weren't handling errors properly for the K6 executor. Now it works similarly to other Testkube executors.

## 3. Delete Test and Test Suite executions for deleted Tests and Test Suites.

Previously, Test and Test Suite executions were not deleted when we deleted Tests or Test Suites themselves. With the Testkube 1.3 release, we clean the execution list after deleting the main Testkube resources.

## 4. Support Cypress 10 for the Cypress executor.

We added Cypress 10 support for Testkube.

# Conclusion:

In the latest Testkube release, we continued our efforts to respond to user requests in order to make Testkube more convenient to use, support different scenarios for integrating with Testkube, and improve the UX and stability of Testkube components. [Install now the latest version](https://testkube.kubeshop.io/download). In our next release, we plan to allow users to create Test Suites using the UI, add Maven & Gradle executors and many more updates. Stay tuned!