The latest version of Testkube is live. This release includes big improvements to performance and multiple new features to make your testing experience smoother.
## Performance improvements
### Streamed logs on UI
With the new implementation of websockets on Testkube Server, you can now stream the logs from Testkube executors to the UI in real time.
There’s been a major improvement for **resilience under heavy load**.
We’ve determined the minimum required resources for core Testkube services, and resource requests have been set. Core services now have a Burstable QoS class and Tests have the lower priority BestEffort.
This means Testkube will remain responsive under high loads, and Tests will be evicted in case of cluster overloading.
## Test Triggers
Test Triggers allow users to automate running Tests or Test Suites based on various Kubernetes events.
Test Triggers run an **action** on a defined **execution** (Test or Test Suite) identified using **testSelector** when a Kubernetes **event** occurs on one or multiple **resources** identified using **resourceSelector**.
## Container Executors
**Container Executors** allow you to run your own container images for executing tests. The Test execution fails if the container exits with an error and succeeds when the container command successfully executes.
You can learn more about Container Executors in the [documentation page](https://kubeshop.github.io/testkube/test-types/container-executor).
## Secret Variables
It’s now possible to load variables from secret references.
You can define test variables in CRD by using references to existing Kubernetes cluster secrets. You don’t need to store any secret values in the Test CRD, they will be dynamically loaded for usage during Test execution time.
To not show secret variables on executor logs, Testkube processes log outputs and obfuscates secrets in addition to the secrets obfuscation. These will be obfuscated even if there is a print in the test of the executor.
### Executor Arguments
You’ll now be able to add arguments to your test execution.
## Test Sources
Sometimes users need to use the details of the test content source multiple times for different tests. In order to minimize efforts for providing and maintaining this information, we’ve introduced a new Testkube CRD called **TestSource**.
It allows you to share test content details among multiple tests. This is implemented similarly to the existing Test CRD content section with a new added Source field to Test CRD specification.
Intending to make source usage as flexible as possible, you only need to provide the required fields at source creation, without checking if a source exists at the moment of test creation.
If you use a source with your Test, you can fill only the necessary fields. Both CLI and API now support management of the TestSource CRD.
A couple of sample CLI commands are listed below:
`kubectl testkube create testsource --name cypress-example --git-uri https://github.com/kubeshop/testkube-example-cypress-project.git --git-branch main kubectl testkube create test --name source-example --source cypress-example --git-path "cypress" --type cypress/project`
### Variables Obfuscation
Secret values will be replaced in the logs of the executors. Testkube API is now adding additional obfuscation to the output of the executors.
## MongoDB fixes
Mongo was downgraded back to Helm Chart 11, since later versions caused multiple conflicts.
**For users who upgraded their Testkube charts using Mongo version 12, we introduced a downgrade script in our helm-chart repo.**
## UI Updates
- Added websocket events to Test and Test Suite details
- Adjusted the upload field when the user wants to add a test using a local file
- Fixed a bug in which users were not able to add tests using git-file
- Fixed minor bugs regarding using the Ingress's PathPrefix
- Reworked labels feature for Tests and Test Suites
- Adjusted Segment Analytics
- Overall performance improvements and bugfixes
### Labels on UI
You can now create labels on the UI for both Tests and Test Suites. You can do this either in the Settings tab or during entity creation.
Selecting components provides the ability to add labels from existing lists, from other tests, or create new labels just in place.
## Give it a go!
Feel free to have a look at the new updates available and let us know what you think or how to make Testkube better! We’ve got a [great demo](https://demo.testkube.io/) you can play with and you can download the release from [GitHub](https://github.com/kubeshop/testkube).
If you’d like more info, or just to come say ‘Hi’ – join our [Discord server](https://discord.gg/hfq44wtR6Q) and follow us on Twitter [@Testkube_io](http://twitter.com/testkube_io). You can also email us directly at [firstname.lastname@example.org](mailto:email@example.com).
We’re looking forward to hearing from you.