mirror of https://github.com/hashicorp/consul
83 lines
3.2 KiB
Go
83 lines
3.2 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
package catalog
|
|
|
|
import (
|
|
"github.com/hashicorp/consul/internal/catalog/internal/controllers"
|
|
"github.com/hashicorp/consul/internal/catalog/internal/controllers/endpoints"
|
|
"github.com/hashicorp/consul/internal/catalog/internal/controllers/nodehealth"
|
|
"github.com/hashicorp/consul/internal/catalog/internal/controllers/workloadhealth"
|
|
"github.com/hashicorp/consul/internal/catalog/internal/mappers/nodemapper"
|
|
"github.com/hashicorp/consul/internal/catalog/internal/mappers/selectiontracker"
|
|
"github.com/hashicorp/consul/internal/catalog/internal/types"
|
|
"github.com/hashicorp/consul/internal/controller"
|
|
"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
|
|
|
|
// Controller Statuses
|
|
NodeHealthStatusKey = nodehealth.StatusKey
|
|
NodeHealthStatusConditionHealthy = nodehealth.StatusConditionHealthy
|
|
NodeHealthConditions = nodehealth.Conditions
|
|
|
|
WorkloadHealthStatusKey = workloadhealth.StatusKey
|
|
WorkloadHealthStatusConditionHealthy = workloadhealth.StatusConditionHealthy
|
|
WorkloadHealthConditions = workloadhealth.WorkloadConditions
|
|
WorkloadAndNodeHealthConditions = workloadhealth.NodeAndWorkloadConditions
|
|
|
|
EndpointsStatusKey = endpoints.StatusKey
|
|
EndpointsStatusConditionEndpointsManaged = endpoints.StatusConditionEndpointsManaged
|
|
EndpointsStatusConditionManaged = endpoints.ConditionManaged
|
|
EndpointsStatusConditionUnmanaged = endpoints.ConditionUnmanaged
|
|
)
|
|
|
|
// RegisterTypes adds all resource types within the "catalog" API group
|
|
// to the given type registry
|
|
func RegisterTypes(r resource.Registry) {
|
|
types.Register(r)
|
|
}
|
|
|
|
type ControllerDependencies = controllers.Dependencies
|
|
|
|
func DefaultControllerDependencies() ControllerDependencies {
|
|
return ControllerDependencies{
|
|
WorkloadHealthNodeMapper: nodemapper.New(),
|
|
EndpointsWorkloadMapper: selectiontracker.New(),
|
|
}
|
|
}
|
|
|
|
// RegisterControllers registers controllers for the catalog types with
|
|
// the given controller Manager.
|
|
func RegisterControllers(mgr *controller.Manager, deps ControllerDependencies) {
|
|
controllers.Register(mgr, deps)
|
|
}
|