Skip to content

Commit

Permalink
Add hooks for CRUD side effects for apigateway controller
Browse files Browse the repository at this point in the history
  • Loading branch information
jm96441n committed Feb 1, 2024
1 parent ac85721 commit 35234cb
Showing 1 changed file with 35 additions and 1 deletion.
36 changes: 35 additions & 1 deletion control-plane/controllers/resources/api-gateway-controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"context"

"github.com/go-logr/logr"
k8serr "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
ctrl "sigs.k8s.io/controller-runtime"
Expand All @@ -27,7 +28,30 @@ type APIGatewayController struct {
// +kubebuilder:rbac:groups=mesh.consul.hashicorp.com,resources=tcproute/status,verbs=get;update;patch

func (r *APIGatewayController) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
r.Logger(req.NamespacedName).Info("Reconciling APIGateway")
logger := r.Logger(req.NamespacedName)
logger.Info("Reconciling APIGateway")

resource := &meshv2beta1.APIGateway{}
if err := r.Get(ctx, req.NamespacedName, resource); k8serr.IsNotFound(err) {
return ctrl.Result{}, client.IgnoreNotFound(err)
} else if err != nil {
logger.Error(err, "retrieving resource")
return ctrl.Result{}, err
}

// Call hooks
if !resource.DeletionTimestamp.IsZero() {
logger.Info("deletion event")

if err := r.onDelete(ctx, req, resource); err != nil {
return ctrl.Result{}, err
}
} else {
if err := r.onCreateUpdate(ctx, req, resource); err != nil {
return ctrl.Result{}, err
}
}

return r.Controller.ReconcileResource(ctx, r, req, &meshv2beta1.APIGateway{})
}

Expand All @@ -42,3 +66,13 @@ func (r *APIGatewayController) UpdateStatus(ctx context.Context, obj client.Obje
func (r *APIGatewayController) SetupWithManager(mgr ctrl.Manager) error {
return setupWithManager(mgr, &meshv2beta1.APIGateway{}, r)
}

func (r *APIGatewayController) onCreateUpdate(ctx context.Context, req ctrl.Request, resource *meshv2beta1.APIGateway) error {
// TODO: NET-7449, NET-7450, and NET-7451
return nil
}

func (r *APIGatewayController) onDelete(ctx context.Context, req ctrl.Request, resource *meshv2beta1.APIGateway) error {
// TODO: NET-7449, NET-7450, and NET-7451
return nil
}

0 comments on commit 35234cb

Please sign in to comment.