Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions internal/graphman/generated-modified.go
Original file line number Diff line number Diff line change
Expand Up @@ -9535,10 +9535,10 @@ func installBundleGeneric(
return &data_, err_
}

// The query or mutation executed by installBundleGeneric.
// The query or mutation executed by deleteBundleGeneric.
const deleteBundleGeneric_Operation = `
mutation installBundleGeneric {
installBundleEntities {
mutation deleteBundle {
deleteBundleEntities {
summary
}
}
Expand Down
22 changes: 22 additions & 0 deletions pkg/gateway/reconcile/gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -1427,6 +1427,28 @@ func ReconcileDBGateway(ctx context.Context, params Params, kind string, gateway
return nil
}

func disabledOrDeleteRepoRefStatus(ctx context.Context, params Params, repository securityv1.Repository, disabled bool) (err error) {
repositoryStatuses := params.Instance.Status.RepositoryStatus
for i, repositoryStatus := range repositoryStatuses {
if repositoryStatus.Name == repository.Name {
if disabled {
repositoryStatuses[i].Enabled = false
} else {
repositoryStatuses = append(repositoryStatuses[:i], repositoryStatuses[i+1:]...)
}
break
}
}

params.Instance.Status.RepositoryStatus = repositoryStatuses
err = params.Client.Status().Update(ctx, params.Instance)
if err != nil {
params.Log.V(2).Info("failed to disabled/delete gateway status", "name", params.Instance.Name, "namespace", params.Instance.Namespace, "message", err.Error())
return err
}
return nil
}

func updateRepoRefStatus(ctx context.Context, params Params, repository securityv1.Repository, referenceType securityv1.RepositoryReferenceType, commit string, applyError error) (err error) {
gatewayStatus := params.Instance.Status
var conditions []securityv1.RepositoryCondition
Expand Down
12 changes: 8 additions & 4 deletions pkg/gateway/reconcile/l7repositories.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func ExternalRepository(ctx context.Context, params Params) error {

for _, repoRef := range gateway.Spec.App.RepositoryReferences {
if repoRef.Enabled {
err := reconcileDynamicRepository(ctx, params, repoRef, false)
err := reconcileDynamicRepository(ctx, params, repoRef, false, false)
if err != nil {
params.Log.Error(err, "failed to reconcile repository reference", "name", gateway.Name, "repository", repoRef.Name, "namespace", gateway.Namespace)
return err
Expand All @@ -34,7 +34,7 @@ func ExternalRepository(ctx context.Context, params Params) error {
}
if !found || disabled {
repoRef := securityv1.RepositoryReference{Name: repoStatus.Name, Type: "dynamic", Encryption: securityv1.BundleEncryption{Passphrase: "delete"}}
err := reconcileDynamicRepository(ctx, params, repoRef, true)
err := reconcileDynamicRepository(ctx, params, repoRef, true, disabled)
if err != nil {
params.Log.Error(err, "failed to remove repository reference", "name", gateway.Name, "repository", repoRef.Name, "namespace", gateway.Namespace)
return err
Expand All @@ -45,7 +45,7 @@ func ExternalRepository(ctx context.Context, params Params) error {
return nil
}

func reconcileDynamicRepository(ctx context.Context, params Params, repoRef securityv1.RepositoryReference, delete bool) (err error) {
func reconcileDynamicRepository(ctx context.Context, params Params, repoRef securityv1.RepositoryReference, delete bool, disabled bool) (err error) {
gateway := params.Instance

repository := &securityv1.Repository{}
Expand Down Expand Up @@ -87,7 +87,11 @@ func reconcileDynamicRepository(ctx context.Context, params Params, repoRef secu

err = SyncGateway(ctx, params, *gwUpdReq)

_ = updateRepoRefStatus(ctx, params, *gwUpdReq.repository, gwUpdReq.repositoryReference.Type, gwUpdReq.checksum, err)
if delete && err == nil {
_ = disabledOrDeleteRepoRefStatus(ctx, params, *gwUpdReq.repository, disabled)
} else {
_ = updateRepoRefStatus(ctx, params, *gwUpdReq.repository, gwUpdReq.repositoryReference.Type, gwUpdReq.checksum, err)
}
gwUpdReq = nil
if err != nil {
return err
Expand Down