From 9b2db23cafba897001a448762af30363643c5fd3 Mon Sep 17 00:00:00 2001 From: Sergey Smolnikov Date: Mon, 14 Oct 2024 11:10:16 +0200 Subject: [PATCH] Fixed sync radix environment error (#1210) --- charts/radix-operator/Chart.yaml | 4 ++-- pkg/apis/environment/status.go | 21 ++++++++++++--------- pkg/apis/environment/testdata/re.yaml | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/charts/radix-operator/Chart.yaml b/charts/radix-operator/Chart.yaml index fb337f2ea..7076022b4 100644 --- a/charts/radix-operator/Chart.yaml +++ b/charts/radix-operator/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: radix-operator -version: 1.43.0 -appVersion: 1.63.0 +version: 1.43.1 +appVersion: 1.63.1 kubeVersion: ">=1.24.0" description: Radix Operator keywords: diff --git a/pkg/apis/environment/status.go b/pkg/apis/environment/status.go index 006ed8a73..fe1bc9671 100644 --- a/pkg/apis/environment/status.go +++ b/pkg/apis/environment/status.go @@ -12,19 +12,13 @@ import ( ) func (env *Environment) syncStatus(ctx context.Context, radixEnvironment *radixv1.RadixEnvironment, time metav1.Time) error { - if err := updateRadixEnvironmentStatus(ctx, env.radixclient, env.appConfig, radixEnvironment, time); err != nil { + if err := env.updateRadixEnvironmentStatus(ctx, env.radixclient, env.appConfig, radixEnvironment, time); err != nil { return fmt.Errorf("failed to update status on environment %s: %w", radixEnvironment.Spec.EnvName, err) } - currentEnv, err := env.radixclient.RadixV1().RadixEnvironments().Get(ctx, radixEnvironment.Spec.EnvName, metav1.GetOptions{}) - if err != nil { - return err - } - env.config = currentEnv - env.logger.Debug().Msgf("updated status of RadixEnvironment (revision %s)", currentEnv.GetResourceVersion()) return nil } -func updateRadixEnvironmentStatus(ctx context.Context, radixClient versioned.Interface, radixApplication *radixv1.RadixApplication, radixEnvironment *radixv1.RadixEnvironment, time metav1.Time) error { +func (env *Environment) updateRadixEnvironmentStatus(ctx context.Context, radixClient versioned.Interface, radixApplication *radixv1.RadixApplication, radixEnvironment *radixv1.RadixEnvironment, time metav1.Time) error { radixEnvironmentInterface := radixClient.RadixV1().RadixEnvironments() return retry.RetryOnConflict(retry.DefaultRetry, func() error { name := radixEnvironment.GetName() @@ -33,7 +27,16 @@ func updateRadixEnvironmentStatus(ctx context.Context, radixClient versioned.Int return err } changeStatus(radixApplication, radixEnvironment.Spec.EnvName, ¤tEnv.Status, time) - _, err = radixEnvironmentInterface.UpdateStatus(ctx, currentEnv, metav1.UpdateOptions{}) + updated, err := radixEnvironmentInterface.UpdateStatus(ctx, currentEnv, metav1.UpdateOptions{}) + if err == nil && env.config.GetName() == name { + currentEnv, err = radixEnvironmentInterface.Get(ctx, name, metav1.GetOptions{}) + if err != nil { + return err + } + env.config = currentEnv + env.logger.Debug().Msgf("updated status of RadixEnvironment (revision %s)", updated.GetResourceVersion()) + return nil + } return err }) } diff --git a/pkg/apis/environment/testdata/re.yaml b/pkg/apis/environment/testdata/re.yaml index 00535e197..beb80776e 100644 --- a/pkg/apis/environment/testdata/re.yaml +++ b/pkg/apis/environment/testdata/re.yaml @@ -1,7 +1,7 @@ apiVersion: radix.equinor.com/v1 kind: RadixEnvironment metadata: - name: testenv + name: testapp-testenv uid: af1d2960-5eb7-40e8-9ca2-12fc1fd9916e finalizers: - radix.equinor.com/environment-finalizer