From b6cf82062b541727554f74f1f5d41d7d7bae6e65 Mon Sep 17 00:00:00 2001 From: nxtcoder17 Date: Fri, 16 Feb 2024 15:58:30 +0530 Subject: [PATCH] fix(apps/console): fixes applying configmap and secret to target cluster --- apps/console/internal/domain/config.go | 42 ++++++++++----------- apps/console/internal/domain/environment.go | 2 +- apps/console/internal/domain/secret.go | 25 +++++++----- 3 files changed, 38 insertions(+), 31 deletions(-) diff --git a/apps/console/internal/domain/config.go b/apps/console/internal/domain/config.go index 0375a6b4e..c8b7ab6cf 100644 --- a/apps/console/internal/domain/config.go +++ b/apps/console/internal/domain/config.go @@ -1,8 +1,6 @@ package domain import ( - "maps" - "github.com/kloudlite/api/apps/console/internal/entities" fc "github.com/kloudlite/api/apps/console/internal/entities/field-constants" "github.com/kloudlite/api/common" @@ -101,10 +99,12 @@ func (d *domain) CreateConfig(ctx ResourceContext, config entities.Config) (*ent config.AccountName = ctx.AccountName config.ProjectName = ctx.ProjectName config.EnvironmentName = ctx.EnvironmentName + if config.Annotations == nil { - config.Annotations = types.ConfigWatchingAnnotation - } else { - maps.Copy(config.Annotations, types.ConfigWatchingAnnotation) + config.Annotations = make(map[string]string, len(types.ConfigWatchingAnnotation)) + } + for k, v := range types.ConfigWatchingAnnotation { + config.Annotations[k] = v } return d.createAndApplyConfig(ctx, &config) @@ -126,8 +126,8 @@ func (d *domain) createAndApplyConfig(ctx ResourceContext, config *entities.Conf return nil, errors.NewE(err) } - if err := d.applyK8sResource(ctx, config.ProjectName, &cfg.ConfigMap, cfg.RecordVersion); err != nil { - return cfg, errors.NewE(err) + if err := d.applyK8sResource(ctx, cfg.ProjectName, &cfg.ConfigMap, cfg.RecordVersion); err != nil { + return nil, errors.NewE(err) } return cfg, nil @@ -140,27 +140,27 @@ func (d *domain) UpdateConfig(ctx ResourceContext, config entities.Config) (*ent config.SetGroupVersionKind(fn.GVK("v1", "ConfigMap")) - patchForUpdate := common.PatchForUpdate( - ctx, - &config, - common.PatchOpts{ - XPatch: repos.Document{ - fc.ConfigData: config.Data, - }, - }) + if config.Annotations == nil { + config.Annotations = make(map[string]string, len(types.ConfigWatchingAnnotation)) + } - upConfig, err := d.configRepo.Patch( - ctx, - ctx.DBFilters().Add(fields.MetadataName, config.Name), - patchForUpdate, + for k, v := range types.ConfigWatchingAnnotation { + config.Annotations[k] = v + } + + upConfig, err := d.configRepo.Patch(ctx, ctx.DBFilters().Add(fields.MetadataName, config.Name), + common.PatchForUpdate(ctx, &config, common.PatchOpts{XPatch: repos.Document{ + fc.ConfigData: config.Data, + }}), ) if err != nil { return nil, errors.NewE(err) } + d.resourceEventPublisher.PublishResourceEvent(ctx, entities.ResourceTypeConfig, upConfig.Name, PublishUpdate) - if err := d.applyK8sResource(ctx, ctx.ProjectName, &upConfig.ConfigMap, upConfig.RecordVersion); err != nil { - return upConfig, errors.NewE(err) + if err := d.applyK8sResource(ctx, upConfig.ProjectName, &upConfig.ConfigMap, upConfig.RecordVersion); err != nil { + return nil, errors.NewE(err) } return upConfig, nil diff --git a/apps/console/internal/domain/environment.go b/apps/console/internal/domain/environment.go index 2a3a99126..9f290ac6a 100644 --- a/apps/console/internal/domain/environment.go +++ b/apps/console/internal/domain/environment.go @@ -478,7 +478,7 @@ func (d *domain) DeleteEnvironment(ctx ConsoleContext, projectName string, name if err := d.deleteK8sResource(ctx, uenv.ProjectName, &uenv.Environment); err != nil { if errors.Is(err, ErrNoClusterAttached) { - return d.appRepo.DeleteById(ctx, uenv.Id) + return d.environmentRepo.DeleteById(ctx, uenv.Id) } return errors.NewE(err) } diff --git a/apps/console/internal/domain/secret.go b/apps/console/internal/domain/secret.go index 867d9e01f..f918e973d 100644 --- a/apps/console/internal/domain/secret.go +++ b/apps/console/internal/domain/secret.go @@ -118,6 +118,14 @@ func (d *domain) CreateSecret(ctx ResourceContext, secret entities.Secret) (*ent secret.EnvironmentName = ctx.EnvironmentName secret.SyncStatus = t.GenSyncStatus(t.SyncActionApply, secret.RecordVersion) + if secret.Annotations == nil { + secret.Annotations = make(map[string]string, len(types.SecretWatchingAnnotation)) + } + + for k, v := range types.SecretWatchingAnnotation { + secret.Annotations[k] = v + } + return d.createAndApplySecret(ctx, &secret) } @@ -125,7 +133,6 @@ func (d *domain) createAndApplySecret(ctx ResourceContext, secret *entities.Secr if _, err := d.upsertEnvironmentResourceMapping(ctx, secret); err != nil { return nil, errors.NewE(err) } - nsecret, err := d.secretRepo.Create(ctx, secret) if err != nil { if d.secretRepo.ErrAlreadyExists(err) { @@ -135,14 +142,6 @@ func (d *domain) createAndApplySecret(ctx ResourceContext, secret *entities.Secr return nil, errors.NewE(err) } - if nsecret.Annotations == nil { - nsecret.Annotations = make(map[string]string) - } - - for k, v := range types.SecretWatchingAnnotation { - nsecret.Annotations[k] = v - } - if err := d.applyK8sResource(ctx, nsecret.ProjectName, &nsecret.Secret, nsecret.RecordVersion); err != nil { return nsecret, errors.NewE(err) } @@ -155,6 +154,14 @@ func (d *domain) UpdateSecret(ctx ResourceContext, secret entities.Secret) (*ent return nil, errors.NewE(err) } + if secret.Annotations == nil { + secret.Annotations = make(map[string]string, len(types.SecretWatchingAnnotation)) + } + + for k, v := range types.SecretWatchingAnnotation { + secret.Annotations[k] = v + } + patchForUpdate := common.PatchForUpdate( ctx, &secret,