How to package and run chainsaw tests as user-facing E2E tests running in production clusters ? #2610
gberche-orange
started this conversation in
Ideas
Replies: 1 comment
-
|
Would like to ask the same question. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
background
AFAIK, chainsaw is currently targetting the testing of k8s operators, and currently focusing on the persona of a k8s operator contributor. The k8s operator contributor is testing his operator code in a CI/CD environment using Chainsaw CLI and chainsaw github action, helping taking decision as whether a k8s operator code base can be released when test suite passes.
Another useful personal is the k8s operator user who is responsible for configuring, installating and operating a k8s operator.
Here is a typical user story
As a k8s operator user,
In order to make sure that the installed k8s operator is properly installed and running,
I need to run end-to-end tests in my production system, triggered from different criterias:
Let's take the example of a managed database operator such as cnpg which is planning this use-case in cloudnative-pg/cloudnative-pg#9220 CNPG tests are currently written in go (see https://github.com/cloudnative-pg/cloudnative-pg/tree/main/tests/e2e and https://github.com/cloudnative-pg/cloudnative-pg/blob/release-1.24/docs/src/e2e.md) and don't yet leverage the chainsaw declarative approach.
Kyverno seems to package such E2E tests as helm tests at https://github.com/kyverno/kyverno/tree/main/charts/kyverno/templates/tests, in such as kyverno/kyverno#6085 They seem limited in scope and not yet leveraging chainsaw.
Prior art ?
Is the prior art to using chainsaw for user-facing E2E tests that I missed ?
Possible enhancements
Here are some ideas of potential features to support user-facing E2E running in production
helm chart
package chainsaw as an helm chart:
k8s controller
introduce a chainsaw k8s controller that reconciles CRDs, such as TestExecution.chainsaw.kyverno.io/v1alpha2 that surfaces the chainsaw test cli command
I have previously worked on a similar approach with kuttl and the following custom scaffolding
This experiment suffered from limited user experience to leverage kuttl outputs
See also related attempt to leverage in cluster test-kube tool with kuttl in https://github.com/kubeshop/testkube/issues/1142 and kubeshop/testkube#4069
Schedule within argoworflow
Beta Was this translation helpful? Give feedback.
All reactions