Merge pull request 'fix: propagate Tekton template updates' (#3) from fix/copy-tekton-template into main

This commit is contained in:
eding 2026-07-30 01:01:52 +02:00
commit 047f812d74
2 changed files with 40 additions and 1 deletions

View file

@ -125,7 +125,7 @@ func (r Runner) Run() error {
if err := renderCiliumConfig(filepath.Join(dir, "base", "cilium-config"), r.Config); err != nil {
return err
}
if err := renderDeliveryConfig(filepath.Join(dir, "base", "tekton"), r.Config); err != nil {
if err := copyAndRenderTektonBase(cicdTemplateDir, dir, r.Config); err != nil {
return err
}
if err := renderDeliveryConfig(filepath.Join(dir, "base", "tekton-triggers"), r.Config); err != nil {
@ -256,6 +256,14 @@ func renderDeliveryConfig(dir string, cfg config.Config) error {
})
}
func copyAndRenderTektonBase(templateDir, repoDir string, cfg config.Config) error {
tektonDir := filepath.Join(repoDir, "base", "tekton")
if err := copyDir(filepath.Join(templateDir, "base", "tekton"), tektonDir, true); err != nil {
return err
}
return renderDeliveryConfig(tektonDir, cfg)
}
func writeDemocraticCSISecret(path string, csi config.DemocraticCSIConfig, ageKeyPath string) error {
plaintext, err := renderDemocraticCSISecret(csi)
if err != nil {

View file

@ -51,6 +51,37 @@ func TestRenderDeliveryConfig(t *testing.T) {
}
}
func TestCopyAndRenderTektonBaseOverwritesExistingMigrationOutput(t *testing.T) {
templateDir := t.TempDir()
repoDir := t.TempDir()
templateCatalog := filepath.Join(templateDir, "base", "tekton", "catalog-source.yaml")
outputCatalog := filepath.Join(repoDir, "base", "tekton", "catalog-source.yaml")
if err := os.MkdirAll(filepath.Dir(templateCatalog), 0755); err != nil {
t.Fatal(err)
}
if err := os.MkdirAll(filepath.Dir(outputCatalog), 0755); err != nil {
t.Fatal(err)
}
if err := os.WriteFile(templateCatalog, []byte("url: ${TEKTON_CATALOG_REPO_URL}\nref: ${TEKTON_CATALOG_REPO_REF}\n"), 0644); err != nil {
t.Fatal(err)
}
if err := os.WriteFile(outputCatalog, []byte("stale: catalog\n"), 0644); err != nil {
t.Fatal(err)
}
cfg := config.Config{Templates: config.TemplateConfig{TektonCatalogRepoURL: "https://catalog.example.test/tekton.git", TektonCatalogRepoRef: "release"}}
if err := copyAndRenderTektonBase(templateDir, repoDir, cfg); err != nil {
t.Fatal(err)
}
content, err := os.ReadFile(outputCatalog)
if err != nil {
t.Fatal(err)
}
if string(content) != "url: https://catalog.example.test/tekton.git\nref: release\n" {
t.Fatalf("Tekton catalog source was not copied and rendered: %q", content)
}
}
func TestRenderDemocraticCSISecret(t *testing.T) {
secret, err := renderDemocraticCSISecret(config.DemocraticCSIConfig{TrueNASAPIKey: "api-key", TrueNASHost: "truenas.example.test", TargetPortal: "truenas.example.test:3260", ShareHost: "truenas.example.test", DatasetParentNFS: "pool/kubernetes/nfs/v", DatasetSnapshotsNFS: "pool/kubernetes/nfs/s", AllowedNetworks: "192.168.45.0/24", NameSuffix: "-test", PortalGroup: "1", InitiatorGroup: "1"})
if err != nil {