2023-10-26 14:04:15 +00:00
|
|
|
// Copyright (c) HashiCorp, Inc.
|
|
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
|
|
|
|
package multicluster
|
|
|
|
|
|
|
|
import (
|
2023-11-10 01:57:53 +00:00
|
|
|
"github.com/hashicorp/consul/internal/controller"
|
|
|
|
"github.com/hashicorp/consul/internal/multicluster/internal/controllers"
|
2024-01-08 06:25:52 +00:00
|
|
|
exportedServicesSamenessGroupExpander "github.com/hashicorp/consul/internal/multicluster/internal/controllers/exportedservices/expander"
|
2024-01-24 01:44:10 +00:00
|
|
|
"github.com/hashicorp/consul/internal/multicluster/internal/controllers/v1compat"
|
2023-10-26 14:04:15 +00:00
|
|
|
"github.com/hashicorp/consul/internal/multicluster/internal/types"
|
|
|
|
"github.com/hashicorp/consul/internal/resource"
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
// API Group Information
|
|
|
|
APIGroup = types.GroupName
|
|
|
|
VersionV2Beta1 = types.VersionV2Beta1
|
|
|
|
CurrentVersion = types.CurrentVersion
|
|
|
|
)
|
|
|
|
|
|
|
|
// RegisterTypes adds all resource types within the "multicluster" API group
|
|
|
|
// to the given type registry
|
|
|
|
func RegisterTypes(r resource.Registry) {
|
|
|
|
types.Register(r)
|
|
|
|
}
|
2023-11-10 01:57:53 +00:00
|
|
|
|
2024-01-08 06:25:52 +00:00
|
|
|
type ControllerDependencies = controllers.Dependencies
|
2024-02-07 19:05:42 +00:00
|
|
|
type CompatControllerDependencies = controllers.CompatDependencies
|
2024-01-08 06:25:52 +00:00
|
|
|
|
2024-02-07 19:05:42 +00:00
|
|
|
func DefaultControllerDependencies() ControllerDependencies {
|
2024-01-08 06:25:52 +00:00
|
|
|
return ControllerDependencies{
|
|
|
|
ExportedServicesSamenessGroupsExpander: exportedServicesSamenessGroupExpander.New(),
|
2024-02-07 19:05:42 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func DefaultCompatControllerDependencies(ac v1compat.AggregatedConfig) CompatControllerDependencies {
|
|
|
|
return CompatControllerDependencies{
|
|
|
|
ConfigEntryExports: ac,
|
2024-01-08 06:25:52 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-11-10 01:57:53 +00:00
|
|
|
// RegisterControllers registers controllers for the multicluster types with
|
|
|
|
// the given controller Manager.
|
2024-02-07 19:05:42 +00:00
|
|
|
func RegisterControllers(mgr *controller.Manager) {
|
|
|
|
controllers.Register(mgr, DefaultControllerDependencies())
|
|
|
|
}
|
|
|
|
|
|
|
|
func RegisterCompatControllers(mgr *controller.Manager, deps CompatControllerDependencies) {
|
|
|
|
controllers.RegisterCompat(mgr, deps)
|
2023-11-10 01:57:53 +00:00
|
|
|
}
|