mirror of
https://github.com/status-im/consul.git
synced 2025-01-18 17:52:17 +00:00
653a886689
* Implement a Catalog Controllers Lifecycle Integration Test * Prevent triggering the race detector. This allows defining some variables for protobuf constants and using those in comparisons. Without that, something internal in the fmt package ended up looking at the protobuf message size cache and triggering the race detector.
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)
|
|
}
|