fix: add tests as per PR review
This commit is contained in:
parent
ca15256d4a
commit
e0e53ab7eb
|
|
@ -1078,3 +1078,42 @@ func TestDeployment_excludeLabelPropagationPrefixes(t *testing.T) {
|
||||||
assert.Contains(t, container.Args, "--exclude-label-propagation-prefix=prefix.com/")
|
assert.Contains(t, container.Args, "--exclude-label-propagation-prefix=prefix.com/")
|
||||||
assert.Contains(t, container.Args, "--exclude-label-propagation-prefix=complete.io/label")
|
assert.Contains(t, container.Args, "--exclude-label-propagation-prefix=complete.io/label")
|
||||||
}
|
}
|
||||||
|
func TestNamespaceOverride(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
chartPath := "../../gha-runner-scale-set-controller"
|
||||||
|
|
||||||
|
releaseName := "test"
|
||||||
|
releaseNamespace := "test-" + strings.ToLower(random.UniqueId())
|
||||||
|
namespaceOverride := "test-" + strings.ToLower(random.UniqueId())
|
||||||
|
|
||||||
|
options := &helm.Options{
|
||||||
|
Logger: logger.Discard,
|
||||||
|
SetValues: map[string]string{
|
||||||
|
"namespaceOverride": namespaceOverride,
|
||||||
|
},
|
||||||
|
KubectlOptions: k8s.NewKubectlOptions("", "", releaseNamespace),
|
||||||
|
}
|
||||||
|
templateFiles, err := os.ReadDir(filepath.Join(chartPath, "templates"))
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
for _, f := range templateFiles {
|
||||||
|
if filepath.Ext(f.Name()) != ".yaml" && filepath.Ext(f.Name()) != ".yml" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
templateFile := filepath.Join("templates", f.Name())
|
||||||
|
output, err := helm.RenderTemplateE(t, options, chartPath, releaseName, []string{templateFile})
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
// template is conditional or has dependencies, skip
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
var renderedObject map[string]interface{}
|
||||||
|
helm.UnmarshalK8SYaml(t, output, &renderedObject)
|
||||||
|
|
||||||
|
if renderedObject["metadata"].(map[string]interface{})["namespace"] != nil {
|
||||||
|
assert.Equal(t, namespaceOverride, renderedObject["metadata"].(map[string]interface{})["namespace"], fmt.Sprintf("template %s from chart %s should have namespace %s", f.Name(), chartPath, namespaceOverride))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,7 @@ flags:
|
||||||
# excludeLabelPropagationPrefixes:
|
# excludeLabelPropagationPrefixes:
|
||||||
# - "argocd.argoproj.io/instance"
|
# - "argocd.argoproj.io/instance"
|
||||||
|
|
||||||
# Add the option to deploy in another namespace rather than .Release.Namespace.
|
# Overrides the default `.Release.Namespace` for all resources in this chart.
|
||||||
namespaceOverride: ""
|
namespaceOverride: ""
|
||||||
|
|
||||||
## Defines the K8s client rate limiter parameters.
|
## Defines the K8s client rate limiter parameters.
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package tests
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
@ -2143,3 +2144,43 @@ func TestAutoscalingRunnerSetAnnotationValuesHash(t *testing.T) {
|
||||||
assert.NotEqual(t, firstHash, secondHash)
|
assert.NotEqual(t, firstHash, secondHash)
|
||||||
assert.LessOrEqual(t, len(secondHash), 63)
|
assert.LessOrEqual(t, len(secondHash), 63)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNamespaceOverride(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
chartPath := "../../gha-runner-scale-set"
|
||||||
|
|
||||||
|
releaseName := "test"
|
||||||
|
releaseNamespace := "test-" + strings.ToLower(random.UniqueId())
|
||||||
|
namespaceOverride := "test-" + strings.ToLower(random.UniqueId())
|
||||||
|
|
||||||
|
options := &helm.Options{
|
||||||
|
Logger: logger.Discard,
|
||||||
|
SetValues: map[string]string{
|
||||||
|
"namespaceOverride": namespaceOverride,
|
||||||
|
},
|
||||||
|
KubectlOptions: k8s.NewKubectlOptions("", "", releaseNamespace),
|
||||||
|
}
|
||||||
|
templateFiles, err := os.ReadDir(filepath.Join(chartPath, "templates"))
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
for _, f := range templateFiles {
|
||||||
|
if filepath.Ext(f.Name()) != ".yaml" && filepath.Ext(f.Name()) != ".yml" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
templateFile := filepath.Join("templates", f.Name())
|
||||||
|
output, err := helm.RenderTemplateE(t, options, chartPath, releaseName, []string{templateFile})
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
// template is conditional or has dependencies, skip
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
var renderedObject map[string]interface{}
|
||||||
|
helm.UnmarshalK8SYaml(t, output, &renderedObject)
|
||||||
|
|
||||||
|
if renderedObject["metadata"].(map[string]interface{})["namespace"] != nil {
|
||||||
|
assert.Equal(t, namespaceOverride, renderedObject["metadata"].(map[string]interface{})["namespace"], fmt.Sprintf("template %s from chart %s should have namespace %s", f.Name(), chartPath, namespaceOverride))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue