fix: preserve generated app registrations

This commit is contained in:
eding 2026-09-13 12:27:21 +02:00
parent 9f1c05a4d4
commit 66d42b6ca4
2 changed files with 33 additions and 0 deletions

View file

@ -479,12 +479,34 @@ func renderPlatformDeliveryConfig(dir string, cfg config.Config) error {
func copyAndRenderPlatformDeliveryBases(templateDir, repoDir string, cfg config.Config) error {
bases := []string{"gateway", "tekton", "tekton-triggers"}
apps := filepath.Join(repoDir, "base", "tekton", "apps")
backup := apps + ".maidn-preserve"
if err := os.RemoveAll(backup); err != nil {
return err
}
if _, err := os.Stat(apps); err == nil {
if err := os.Rename(apps, backup); err != nil {
return err
}
} else if !os.IsNotExist(err) {
return err
}
for _, base := range bases {
baseDir := filepath.Join(repoDir, "base", base)
if err := copyDir(filepath.Join(templateDir, "base", base), baseDir, true); err != nil {
return err
}
}
if _, err := os.Stat(backup); err == nil {
if err := os.RemoveAll(apps); err != nil {
return err
}
if err := os.Rename(backup, apps); err != nil {
return err
}
} else if !os.IsNotExist(err) {
return err
}
for _, base := range bases {
baseDir := filepath.Join(repoDir, "base", base)
if err := renderPlatformDeliveryConfig(baseDir, cfg); err != nil {

View file

@ -240,6 +240,13 @@ func TestCopyAndRenderPlatformDeliveryBasesOverwritesExistingMigrationOutput(t *
if err := os.WriteFile(customGatewayFile, []byte("custom: route\n"), 0644); err != nil {
t.Fatal(err)
}
appRegistration := filepath.Join(repoDir, "base", "tekton", "apps", "fixture.yaml")
if err := os.MkdirAll(filepath.Dir(appRegistration), 0755); err != nil {
t.Fatal(err)
}
if err := os.WriteFile(appRegistration, []byte("registered: fixture\n"), 0644); err != nil {
t.Fatal(err)
}
cfg := config.Config{
Git: config.GitConfig{BaseURL: "https://git.example.test", Owner: "user-org"},
@ -259,6 +266,10 @@ func TestCopyAndRenderPlatformDeliveryBasesOverwritesExistingMigrationOutput(t *
if err != nil || string(content) != "custom: route\n" {
t.Fatalf("custom gateway file was not preserved: %q, %v", content, err)
}
content, err = os.ReadFile(appRegistration)
if err != nil || string(content) != "registered: fixture\n" {
t.Fatalf("generated app registration was not preserved: %q, %v", content, err)
}
}
func TestCopyTemplateBaseComponentsRefreshesCNPGAndPreservesGeneratedSecrets(t *testing.T) {