in app/cluster/key.go [112:156]
func (a *App) updateKey(ctx *gin.Context) error {
ck := clusterKey{}
if err := ctx.ShouldBind(&ck); err != nil {
_, ok := err.(validator.ValidationErrors)
if !ok {
return errors.Wrap(err, "unable to parse registry form")
}
return err
}
values, err := registry.GetValuesFromGit(a.Config.CodebaseName, registry.MasterBranch, a.Gerrit)
if err != nil {
return errors.Wrap(err, "unable to get values from git")
}
vaultSecretData := make(map[string]map[string]interface{})
vaultPath := a.vaultPlatformPathKey(fmt.Sprintf("%s-%s", registry.KeyManagementVaultPath, time.Now().Format("20060201T150405Z")))
repoFiles := make(map[string]string)
if _, err := registry.PrepareRegistryKeys(keyManagement{r: &ck, vaultSecretPath: vaultPath}, ctx.Request,
vaultSecretData, values.OriginalYaml, repoFiles); err != nil {
return errors.Wrap(err, "unable to create registry keys")
}
if err := registry.CacheRepoFiles(a.TempFolder, a.ClusterRepo, repoFiles, a.appCache); err != nil {
return fmt.Errorf("unable to cache repo files")
}
if len(values.OriginalYaml) > 0 || len(repoFiles) > 0 {
if err := registry.CreateEditMergeRequest(ctx, a.Config.CodebaseName, values.OriginalYaml, a.Gerrit, []string{}); err != nil {
return errors.Wrap(err, "unable to create edit merge request")
}
}
if len(vaultSecretData) > 0 {
if err := registry.CreateVaultSecrets(a.Vault, vaultSecretData, false); err != nil {
return errors.Wrap(err, "unable to create vault secrets")
}
}
return nil
}