2023-05-08 19:36:35 +00:00
|
|
|
// Copyright (c) HashiCorp, Inc.
|
|
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
|
|
|
|
package catalog
|
|
|
|
|
|
|
|
import (
|
2023-05-15 13:55:03 +00:00
|
|
|
"github.com/hashicorp/consul/internal/catalog/internal/controllers"
|
2023-05-19 17:53:29 +00:00
|
|
|
"github.com/hashicorp/consul/internal/catalog/internal/mappers/nodemapper"
|
2023-06-06 21:09:48 +00:00
|
|
|
"github.com/hashicorp/consul/internal/catalog/internal/mappers/selectiontracker"
|
2023-05-08 19:36:35 +00:00
|
|
|
"github.com/hashicorp/consul/internal/catalog/internal/types"
|
2023-05-15 13:55:03 +00:00
|
|
|
"github.com/hashicorp/consul/internal/controller"
|
2023-05-08 19:36:35 +00:00
|
|
|
"github.com/hashicorp/consul/internal/resource"
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
// API Group Information
|
|
|
|
|
|
|
|
APIGroup = types.GroupName
|
|
|
|
VersionV1Alpha1 = types.VersionV1Alpha1
|
|
|
|
CurrentVersion = types.CurrentVersion
|
|
|
|
|
|
|
|
// Resource Kind Names.
|
|
|
|
|
|
|
|
WorkloadKind = types.WorkloadKind
|
|
|
|
ServiceKind = types.ServiceKind
|
|
|
|
ServiceEndpointsKind = types.ServiceEndpointsKind
|
|
|
|
VirtualIPsKind = types.VirtualIPsKind
|
|
|
|
NodeKind = types.NodeKind
|
|
|
|
HealthStatusKind = types.HealthStatusKind
|
|
|
|
HealthChecksKind = types.HealthChecksKind
|
|
|
|
DNSPolicyKind = types.DNSPolicyKind
|
|
|
|
|
|
|
|
// Resource Types for the v1alpha1 version.
|
|
|
|
|
|
|
|
WorkloadV1Alpha1Type = types.WorkloadV1Alpha1Type
|
|
|
|
ServiceV1Alpha1Type = types.ServiceV1Alpha1Type
|
|
|
|
ServiceEndpointsV1Alpha1Type = types.ServiceEndpointsV1Alpha1Type
|
|
|
|
VirtualIPsV1Alpha1Type = types.VirtualIPsV1Alpha1Type
|
|
|
|
NodeV1Alpha1Type = types.NodeV1Alpha1Type
|
|
|
|
HealthStatusV1Alpha1Type = types.HealthStatusV1Alpha1Type
|
|
|
|
HealthChecksV1Alpha1Type = types.HealthChecksV1Alpha1Type
|
|
|
|
DNSPolicyV1Alpha1Type = types.DNSPolicyV1Alpha1Type
|
|
|
|
)
|
|
|
|
|
|
|
|
// RegisterTypes adds all resource types within the "catalog" API group
|
|
|
|
// to the given type registry
|
|
|
|
func RegisterTypes(r resource.Registry) {
|
|
|
|
types.Register(r)
|
|
|
|
}
|
2023-05-15 13:55:03 +00:00
|
|
|
|
2023-05-19 17:53:29 +00:00
|
|
|
type ControllerDependencies = controllers.Dependencies
|
|
|
|
|
|
|
|
func DefaultControllerDependencies() ControllerDependencies {
|
|
|
|
return ControllerDependencies{
|
|
|
|
WorkloadHealthNodeMapper: nodemapper.New(),
|
2023-06-06 21:09:48 +00:00
|
|
|
EndpointsWorkloadMapper: selectiontracker.New(),
|
2023-05-19 17:53:29 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-05-15 13:55:03 +00:00
|
|
|
// RegisterControllers registers controllers for the catalog types with
|
|
|
|
// the given controller Manager.
|
2023-05-19 17:53:29 +00:00
|
|
|
func RegisterControllers(mgr *controller.Manager, deps ControllerDependencies) {
|
|
|
|
controllers.Register(mgr, deps)
|
2023-05-15 13:55:03 +00:00
|
|
|
}
|