Skip to content
This repository has been archived by the owner on Oct 11, 2024. It is now read-only.

Commit

Permalink
TT-6389 - Recreate nonexistent ApiDefinitions during update calls (#566)
Browse files Browse the repository at this point in the history
* Recreate nonexistent ApiDefinitions during update calls

Signed-off-by: Burak Sekili <buraksekili@gmail.com>

* Update CHANGELOG.md

---------

Signed-off-by: Burak Sekili <buraksekili@gmail.com>
  • Loading branch information
buraksekili authored Feb 21, 2023
1 parent 3b53e86 commit ad6dd3d
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 11 deletions.
8 changes: 4 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

## [Unreleased](https://github.com/TykTechnologies/tyk-operator/tree/HEAD)

**Fixed**:
- Fixed the error that happens while deleting non-existent Tyk APIs from k8s.
**Fixed**
- Fixed reconciliation failures when ApiDefinition does not exist on Tyk storage.

## [v0.13.0](https://github.com/TykTechnologies/tyk-operator/tree/HEAD)
[Full Changelog](https://github.com/TykTechnologies/tyk-operator/compare/v0.12.0...HEAD)
## [v0.13.0](https://github.com/TykTechnologies/tyk-operator/tree/v0.13.0)
[Full Changelog](https://github.com/TykTechnologies/tyk-operator/compare/v0.12.0...v0.13.0)

**Updated**
- Added new field `LinkedAPIs` in status of security policies.
Expand Down
29 changes: 22 additions & 7 deletions controllers/apidefinition_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,15 @@ import (
"strings"
"time"

"github.com/go-logr/logr"

"github.com/TykTechnologies/tyk-operator/api/model"
tykv1alpha1 "github.com/TykTechnologies/tyk-operator/api/v1alpha1"
"github.com/TykTechnologies/tyk-operator/pkg/cert"
tykclient "github.com/TykTechnologies/tyk-operator/pkg/client"
"github.com/TykTechnologies/tyk-operator/pkg/client/klient"
"github.com/TykTechnologies/tyk-operator/pkg/environmet"
"github.com/TykTechnologies/tyk-operator/pkg/keys"
"github.com/go-logr/logr"
v1 "k8s.io/api/core/v1"
netv1 "k8s.io/api/networking/v1"
k8sErrors "k8s.io/apimachinery/pkg/api/errors"
Expand Down Expand Up @@ -433,13 +434,27 @@ func (r *ApiDefinitionReconciler) update(ctx context.Context, desired *tykv1alph
"ApiDefinition", client.ObjectKeyFromObject(desired).String(),
)

_, err := klient.Universal.Api().Update(ctx, &desired.Spec.APIDefinitionSpec)
_, err := klient.Universal.Api().Get(ctx, desired.Status.ApiID)
if err != nil {
r.Log.Error(
err, "Failed to update ApiDefinition on Tyk",
"ApiDefinition", client.ObjectKeyFromObject(desired).String(),
)
return err
_, err = klient.Universal.Api().Create(ctx, &desired.Spec.APIDefinitionSpec)
if err != nil {
r.Log.Error(
err, "Failed to create ApiDefinition on Tyk",
"ApiDefinition", client.ObjectKeyFromObject(desired).String(),
)

return err
}
} else {
_, err = klient.Universal.Api().Update(ctx, &desired.Spec.APIDefinitionSpec)
if err != nil {
r.Log.Error(
err, "Failed to update ApiDefinition on Tyk",
"ApiDefinition", client.ObjectKeyFromObject(desired).String(),
)

return err
}
}

err = klient.Universal.HotReload(ctx)
Expand Down

0 comments on commit ad6dd3d

Please sign in to comment.