in app/registry/backup_schedule.go [17:77]
func (a *App) prepareBackupSchedule(ctx *gin.Context, r *registry, values *Values,
secrets map[string]map[string]interface{}, mrActions *[]string) (bool, error) {
globalRaw, ok := values.OriginalYaml[globalIndex]
if !ok {
globalRaw = make(map[string]interface{})
}
globalDict := globalRaw.(map[string]interface{})
if r.BackupScheduleEnabled == "" && values.Global.RegistryBackup.Enabled {
values.Global.RegistryBackup.Enabled = false
globalDict[registryBackupIndex] = values.Global.RegistryBackup
values.OriginalYaml[globalIndex] = globalDict
*mrActions = append(*mrActions, MRActionBackupSchedule)
return true, nil
}
if r.BackupScheduleEnabled != "" {
days, err := strconv.ParseInt(r.CronScheduleDays, 10, 64)
if err != nil {
return false, fmt.Errorf("wrong backup days: %w", err)
}
valuesChanged, err := a.registryBackupValuesChanged(values, r, int(days))
if err != nil {
return false, fmt.Errorf("unable to check if backup values changed, %w", err)
}
if !valuesChanged {
return false, nil
}
values.Global.RegistryBackup.ExpiresInDays = int(days)
values.Global.RegistryBackup.Schedule = r.CronSchedule
values.Global.RegistryBackup.Enabled = true
values.Global.RegistryBackup.OBC.CronExpression = r.OBCCronExpression
values.Global.RegistryBackup.OBC.BackupBucket = r.OBCBackupBucket
values.Global.RegistryBackup.OBC.Endpoint = r.OBCEndpoint
if r.OBCLogin != "" && r.OBCPassword != "" {
vaultPath := a.vaultRegistryPathKey(r.Name, fmt.Sprintf("%s-%s", "buckets-backup",
time.Now().Format("20060201T150405Z")))
values.Global.RegistryBackup.OBC.Credentials = vaultPath
secrets[vaultPath] = map[string]interface{}{
a.Config.BackupBucketAccessKeyID: r.OBCLogin,
a.Config.BackupBucketSecretAccessKey: r.OBCPassword,
}
}
globalDict[registryBackupIndex] = values.Global.RegistryBackup
values.OriginalYaml[globalIndex] = globalDict
*mrActions = append(*mrActions, MRActionBackupSchedule)
return true, nil
}
return false, nil
}