in app/registry/edit.go [378:440]
func (a *App) editRegistry(ctx context.Context, ginContext *gin.Context, r *registry, cb *codebase.Codebase,
cbService codebase.ServiceInterface) error {
cb.Spec.Description = &r.Description
if cb.Annotations == nil {
cb.Annotations = make(map[string]string)
}
values, err := GetValuesFromGit(r.Name, MasterBranch, a.Gerrit)
if err != nil {
return fmt.Errorf("unable to get values from git, %w", err)
}
var (
vaultSecretData = make(map[string]map[string]interface{})
mrActions = make([]string, 0)
valuesChanged = false
repoFiles = make(map[string]string)
)
for _, proc := range a.createUpdateRegistryProcessors() {
procValuesChanged, err := proc(ginContext, r, values, vaultSecretData, &mrActions)
if err != nil {
return fmt.Errorf("error during registry create, %w", err)
}
if procValuesChanged {
valuesChanged = true
}
}
keysModified, err := PrepareRegistryKeys(keyManagement{
r: r,
vaultSecretPath: a.vaultRegistryPathKey(r.Name, fmt.Sprintf("%s-%s", KeyManagementVaultPath,
time.Now().Format("20060201T150405Z"))),
}, ginContext.Request, vaultSecretData, values.OriginalYaml, repoFiles)
if err != nil {
return fmt.Errorf("unable to create registry keys, %w", err)
}
if keysModified {
if err := CacheRepoFiles(a.TempFolder, r.Name, repoFiles, a.Cache); err != nil {
return fmt.Errorf("unable to cache repo file, %w", err)
}
}
if valuesChanged || len(repoFiles) > 0 || keysModified {
if err := CreateEditMergeRequest(ginContext, r.Name, values.OriginalYaml, a.Gerrit, mrActions); err != nil {
return fmt.Errorf("unable to create edit merge request, %w", err)
}
}
if len(vaultSecretData) > 0 {
if err := CreateVaultSecrets(a.Vault, vaultSecretData, false); err != nil {
return fmt.Errorf("unable to create vault secrets, %w", err)
}
}
if err := cbService.Update(ctx, cb); err != nil {
return fmt.Errorf("unable to update codebase, %w", err)
}
return nil
}