feat: add helmfile unittest command for helm-unittest integration (#2400)

Adds a new `helmfile unittest` command that integrates the helm-unittest
plugin, allowing users to define unit test paths per release and run them
via helmfile.

Closes #2376

Signed-off-by: Aditya Menon <amenon@canarytechnologies.com>
This commit is contained in:
Aditya Menon
2026-02-16 09:45:10 +08:00
committed by GitHub
parent 503c397810
commit 0129681222
30 changed files with 981 additions and 13 deletions
+6
View File
@@ -0,0 +1,6 @@
processing file "helmfile.yaml" in directory "."
changing working directory to "/path/to"
merged environment: &{default map[] map[] map[]}
0 release(s) matching app=test_non_existent found in helmfile.yaml
changing working directory back to "/path/to"
+17
View File
@@ -0,0 +1,17 @@
processing file "helmfile.yaml" in directory "."
changing working directory to "/path/to"
merged environment: &{default map[] map[] map[]}
2 release(s) matching app=test found in helmfile.yaml
processing 4 groups of releases in this order:
GROUP RELEASES
1 default/kube-system/logging
2 default/kube-system/kubernetes-external-secrets
3 default/default/external-secrets
4 default/default/my-release
processing releases in group 1/4: default/kube-system/logging
processing releases in group 2/4: default/kube-system/kubernetes-external-secrets
processing releases in group 3/4: default/default/external-secrets
processing releases in group 4/4: default/default/my-release
changing working directory back to "/path/to"
@@ -0,0 +1,11 @@
processing file "helmfile.yaml" in directory "."
changing working directory to "/path/to"
merged environment: &{default map[] map[] map[]}
1 release(s) matching name=no-tests found in helmfile.yaml
processing 1 groups of releases in this order:
GROUP RELEASES
1 default/default/no-tests
processing releases in group 1/1: default/default/no-tests
changing working directory back to "/path/to"
+13
View File
@@ -0,0 +1,13 @@
processing file "helmfile.yaml" in directory "."
changing working directory to "/path/to"
merged environment: &{default map[] map[] map[]}
2 release(s) matching app=test found in helmfile.yaml
processing 2 groups of releases in this order:
GROUP RELEASES
1 default/default/external-secrets
2 default/default/my-release
processing releases in group 1/2: default/default/external-secrets
processing releases in group 2/2: default/default/my-release
changing working directory back to "/path/to"
@@ -0,0 +1,17 @@
processing file "helmfile.yaml" in directory "."
changing working directory to "/path/to"
merged environment: &{default map[] map[] map[]}
5 release(s) found in helmfile.yaml
processing 4 groups of releases in this order:
GROUP RELEASES
1 default/kube-system/logging, default/default/no-tests
2 default/kube-system/kubernetes-external-secrets
3 default/default/external-secrets
4 default/default/my-release
processing releases in group 1/4: default/kube-system/logging, default/default/no-tests
processing releases in group 2/4: default/kube-system/kubernetes-external-secrets
processing releases in group 3/4: default/default/external-secrets
processing releases in group 4/4: default/default/my-release
changing working directory back to "/path/to"
+11
View File
@@ -0,0 +1,11 @@
processing file "helmfile.yaml" in directory "."
changing working directory to "/path/to"
merged environment: &{default map[] map[] map[]}
1 release(s) matching name=logging found in helmfile.yaml
processing 1 groups of releases in this order:
GROUP RELEASES
1 default/kube-system/logging
processing releases in group 1/1: default/kube-system/logging
changing working directory back to "/path/to"
@@ -0,0 +1,13 @@
processing file "helmfile.yaml" in directory "."
changing working directory to "/path/to"
merged environment: &{default map[] map[] map[]}
1 release(s) matching name=logging found in helmfile.yaml
processing 1 groups of releases in this order:
GROUP RELEASES
1 default/kube-system/logging
processing releases in group 1/1: default/kube-system/logging
warn: --color flag is not supported with Helm 4 due to flag parsing issues, ignoring
changing working directory back to "/path/to"