Files
katenary/generator/secret_test.go

96 lines
2.1 KiB
Go
Raw Normal View History

2024-04-23 14:26:23 +02:00
package generator
import (
2024-11-25 11:54:38 +01:00
"bytes"
2024-04-23 14:26:23 +02:00
"fmt"
"katenary/generator/labels"
2024-04-23 14:26:23 +02:00
"os"
"testing"
v1 "k8s.io/api/core/v1"
"sigs.k8s.io/yaml"
)
func TestCreateSecretFromEnvironment(t *testing.T) {
composeFile := `
services:
web:
image: nginx:1.29
environment:
- FOO=bar
- BAR=baz
labels:
%s/secrets: |-
2024-04-23 14:26:23 +02:00
- BAR
`
composeFile = fmt.Sprintf(composeFile, labels.KatenaryLabelPrefix)
2024-04-23 14:26:23 +02:00
tmpDir := setup(composeFile)
defer teardown(tmpDir)
currentDir, _ := os.Getwd()
os.Chdir(tmpDir)
defer os.Chdir(currentDir)
output := internalCompileTest(t, "-s", "templates/web/secret.yaml")
2024-04-23 14:26:23 +02:00
secret := v1.Secret{}
if err := yaml.Unmarshal([]byte(output), &secret); err != nil {
2024-04-23 15:45:31 +02:00
t.Errorf(unmarshalError, err)
2024-04-23 14:26:23 +02:00
}
data := secret.Data
if len(data) != 1 {
t.Errorf("Expected 1 data, got %d", len(data))
}
// v1.Secret.Data is decoded, no problem
if string(data["BAR"]) != "baz" {
t.Errorf("Expected BAR to be baz, got %s", data["BAR"])
}
}
2024-11-25 11:54:38 +01:00
func TestCreateSecretFromEnvironmentWithValue(t *testing.T) {
composeFile := `
services:
web:
image: nginx:1.29
environment:
- FOO=bar
- BAR=baz
labels:
%[1]s/secrets: |-
- BAR
%[1]s/values: |-
- BAR
`
composeFile = fmt.Sprintf(composeFile, labels.KatenaryLabelPrefix)
tmpDir := setup(composeFile)
defer teardown(tmpDir)
currentDir, _ := os.Getwd()
os.Chdir(tmpDir)
defer os.Chdir(currentDir)
force := false
outputDir := "./chart"
profiles := make([]string, 0)
helmdepUpdate := true
var appVersion *string
chartVersion := "0.1.0"
convertOptions := ConvertOptions{
Force: force,
OutputDir: outputDir,
Profiles: profiles,
HelmUpdate: helmdepUpdate,
AppVersion: appVersion,
ChartVersion: chartVersion,
}
if err := Convert(convertOptions, "compose.yml"); err != nil {
t.Fatalf("Failed to convert compose file: %s", err)
}
2024-11-25 11:54:38 +01:00
c, err := os.ReadFile("chart/values.yaml")
if err != nil {
t.Fatal(err)
}
if !bytes.Contains(c, []byte("BAR: baz")) {
t.Errorf("Expected BAR to be baz, got %s", c)
}
}