Skip to content

Commit

Permalink
Merge pull request #1443 from MisterMX/fix/identityproviderconfig-retry
Browse files Browse the repository at this point in the history
fix(eks/identityproviderconfig): Reset status field to retry create
  • Loading branch information
haarchri committed Aug 23, 2022
2 parents d7e875d + 4b987d7 commit d95f224
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
12 changes: 11 additions & 1 deletion pkg/controller/eks/identityproviderconfig/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,17 @@ func (e *external) Observe(ctx context.Context, mg resource.Managed) (managed.Ex
},
ClusterName: &cr.Spec.ForProvider.ClusterName})
if err != nil {
return managed.ExternalObservation{}, awsclient.Wrap(resource.Ignore(eks.IsErrorNotFound, err), errDescribeFailed)
// Failed IdentityProviderConfigs will be garbage collected by AWS after
// some time.
// Since we are using cr.Status.AtProvider.Status in Create() to
// determine if we need to associate this fields needs to be reset if
// the config does not exist.
// Otherwise the controller will never retry associating again.
if eks.IsErrorNotFound(err) {
cr.Status.AtProvider.Status = ""
return managed.ExternalObservation{}, nil
}
return managed.ExternalObservation{}, awsclient.Wrap(err, errDescribeFailed)
}

current := cr.Spec.ForProvider.DeepCopy()
Expand Down
17 changes: 17 additions & 0 deletions pkg/controller/eks/identityproviderconfig/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,23 @@ func TestObserve(t *testing.T) {
cr: identityProviderConfig(),
},
},
"NotFoundResetStatus": {
args: args{
eks: &fake.MockClient{
MockDescribeIdentityProviderConfig: func(ctx context.Context, input *awseks.DescribeIdentityProviderConfigInput, opts []func(*awseks.Options)) (*awseks.DescribeIdentityProviderConfigOutput, error) {
return nil, &awsekstypes.ResourceNotFoundException{}
},
},
cr: identityProviderConfig(
withStatus(manualv1alpha1.IdentityProviderConfigStatusCreateFailed),
),
},
want: want{
cr: identityProviderConfig(
withStatus(""),
),
},
},
"LateInitSuccess": {
args: args{
kube: &test.MockClient{
Expand Down

0 comments on commit d95f224

Please sign in to comment.