1
0
Fork 0
mirror of https://github.com/dragonflydb/dragonfly.git synced 2024-12-14 11:58:02 +00:00
dragonflydb-dragonfly/contrib/charts/dragonfly/golden_test.go
Fabiano Arruda 30ec81c456
Improve Helm chart to be rendered locally and on machines where is not the application target (#2706)
* fix(helm): add issuer group to create the certificate without wait for the previous created issuer

Signed-off-by: Fabiano Arruda Ferreira das Graças <fafg@fafg-mbm1.fritz.box>

* fix(helm): remove condition that can prevent the helm chart be rendered on machines where monitoring.coreos.com is not installed or is not the end target of the helm template command

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* fix(helm): lint - remove blank line

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* add(helm): missing service monitor test files

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* add(helm): add missing cert-manager test files

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* fix(helm): lint - add missing blank lines

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* fix(helm): rebase

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* Revert "fix(helm): rebase"

This reverts commit c4ce16b76e.

* fix(helm): fix service monitor namespace rendering

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* fix(helm): add missing up to date golden file

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* fix(helm): merge upstream

Signed-off-by: fafg <fabiano.arruda@hotmail.com>

* update golden files

* also install prom operator dependencies

* also install cert-manager

* skip cert-manager chart

* skip cert-manager value

* remove CI TLS files

* fix formatting

* fix formatting

* fix actions

---------

Signed-off-by: Fabiano Arruda Ferreira das Graças <fafg@fafg-mbm1.fritz.box>
Signed-off-by: fafg <fabiano.arruda@hotmail.com>
Co-authored-by: Tarun Pothulapati <tarun@dragonflydb.io>
Co-authored-by: Tarun Pothulapati <tarunpothulapati@outlook.com>
2024-03-25 12:29:42 +05:30

58 lines
1.3 KiB
Go

package golden
import (
"flag"
"fmt"
"os"
"path/filepath"
"regexp"
"strings"
"testing"
"github.com/gruntwork-io/terratest/modules/helm"
)
var update = flag.Bool("update", false, "update golden test output files")
func TestHelmRender(t *testing.T) {
files, err := os.ReadDir("./ci")
if err != nil {
t.Fatal(err)
}
for _, f := range files {
if !f.IsDir() && strings.HasSuffix(f.Name(), ".yaml") && !strings.HasSuffix(f.Name(), ".golden.yaml") {
// Render this values.yaml file
output := helm.RenderTemplate(t,
&helm.Options{
ValuesFiles: []string{"ci/" + f.Name()},
},
"../dragonfly",
"test",
nil,
)
goldenFile := "ci/" + strings.TrimSuffix(f.Name(), filepath.Ext(".yaml")) + ".golden.yaml"
regex := regexp.MustCompile(`\s+helm.sh/chart:\s+.*`)
bytes := regex.ReplaceAll([]byte(output), []byte(""))
output = fmt.Sprintf("%s\n", string(bytes))
if *update {
err := os.WriteFile(goldenFile, []byte(output), 0644)
if err != nil {
t.Fatal(err)
}
}
expected, err := os.ReadFile(goldenFile)
if err != nil {
t.Fatal(err)
}
if string(expected) != output {
t.Fatalf("Expected %s, but got %s\n. Update golden files by running `go test -v ./... -update`", string(expected), output)
}
}
}
}