diff --git a/agent/consul/testdata/v2-resource-dependencies.md b/agent/consul/testdata/v2-resource-dependencies.md index 7a36417742..6cd7b4bd10 100644 --- a/agent/consul/testdata/v2-resource-dependencies.md +++ b/agent/consul/testdata/v2-resource-dependencies.md @@ -22,6 +22,7 @@ flowchart TD demo/v2/artist hcp/v2/link internal/v1/tombstone + mesh/v2beta1/apigateway mesh/v2beta1/computedexplicitdestinations --> catalog/v2beta1/service mesh/v2beta1/computedexplicitdestinations --> catalog/v2beta1/workload mesh/v2beta1/computedexplicitdestinations --> mesh/v2beta1/computedroutes diff --git a/internal/mesh/internal/controllers/apigateways/controller.go b/internal/mesh/internal/controllers/apigateways/controller.go new file mode 100644 index 0000000000..28f62d3b2c --- /dev/null +++ b/internal/mesh/internal/controllers/apigateways/controller.go @@ -0,0 +1,34 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: BUSL-1.1 + +package apigateways + +import ( + "context" + "github.com/hashicorp/consul/internal/controller" + pbmesh "github.com/hashicorp/consul/proto-public/pbmesh/v2beta1" +) + +const ( + ControllerName = "consul.io/api-gateway" +) + +func Controller() *controller.Controller { + r := &reconciler{} + + return controller.NewController(ControllerName, pbmesh.APIGatewayType). + WithReconciler(r) +} + +type reconciler struct{} + +// Reconcile is responsible for creating a Service w/ a MeshGateway owner, +// in addition to other things discussed in the RFC. +func (r *reconciler) Reconcile(ctx context.Context, rt controller.Runtime, req controller.Request) error { + rt.Logger = rt.Logger.With("resource-id", req.ID) + rt.Logger.Trace("reconciling api gateway") + + //TODO NET-7378 + + return nil +} diff --git a/internal/mesh/internal/controllers/register.go b/internal/mesh/internal/controllers/register.go index fb10288420..a543fd66d6 100644 --- a/internal/mesh/internal/controllers/register.go +++ b/internal/mesh/internal/controllers/register.go @@ -5,6 +5,7 @@ package controllers import ( "context" + "github.com/hashicorp/consul/internal/mesh/internal/controllers/apigateways" "github.com/hashicorp/consul/internal/mesh/internal/controllers/gatewayproxy" "github.com/hashicorp/consul/internal/mesh/internal/controllers/meshconfiguration" @@ -57,4 +58,5 @@ func Register(mgr *controller.Manager, deps Dependencies) { mgr.Register(meshgateways.Controller()) mgr.Register(meshconfiguration.Controller()) + mgr.Register(apigateways.Controller()) }