2023-05-08 19:36:35 +00:00
|
|
|
// Copyright (c) HashiCorp, Inc.
|
2023-08-11 13:12:13 +00:00
|
|
|
// SPDX-License-Identifier: BUSL-1.1
|
2023-05-08 19:36:35 +00:00
|
|
|
|
|
|
|
package mesh
|
|
|
|
|
|
|
|
import (
|
2023-08-22 19:38:31 +00:00
|
|
|
"github.com/hashicorp/consul/internal/controller"
|
|
|
|
"github.com/hashicorp/consul/internal/mesh/internal/controllers"
|
2023-09-12 17:08:51 +00:00
|
|
|
"github.com/hashicorp/consul/internal/mesh/internal/controllers/routes"
|
2023-09-07 15:37:15 +00:00
|
|
|
"github.com/hashicorp/consul/internal/mesh/internal/controllers/sidecarproxy"
|
|
|
|
"github.com/hashicorp/consul/internal/mesh/internal/controllers/sidecarproxy/status"
|
2023-05-08 19:36:35 +00:00
|
|
|
"github.com/hashicorp/consul/internal/mesh/internal/types"
|
|
|
|
"github.com/hashicorp/consul/internal/resource"
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
// API Group Information
|
|
|
|
|
2023-09-22 16:51:15 +00:00
|
|
|
APIGroup = types.GroupName
|
|
|
|
VersionV2Beta1 = types.VersionV2beta1
|
|
|
|
CurrentVersion = types.CurrentVersion
|
2023-05-08 19:36:35 +00:00
|
|
|
|
|
|
|
// Resource Kind Names.
|
|
|
|
|
2023-08-03 18:42:04 +00:00
|
|
|
ProxyConfigurationKind = types.ProxyConfigurationKind
|
|
|
|
UpstreamsKind = types.UpstreamsKind
|
|
|
|
UpstreamsConfigurationKind = types.UpstreamsConfigurationKind
|
|
|
|
ProxyStateKind = types.ProxyStateTemplateKind
|
|
|
|
HTTPRouteKind = types.HTTPRouteKind
|
|
|
|
GRPCRouteKind = types.GRPCRouteKind
|
|
|
|
TCPRouteKind = types.TCPRouteKind
|
|
|
|
DestinationPolicyKind = types.DestinationPolicyKind
|
|
|
|
ComputedRoutesKind = types.ComputedRoutesKind
|
2023-09-07 15:37:15 +00:00
|
|
|
ProxyStateTemplateKind = types.ProxyStateTemplateKind
|
2023-05-08 19:36:35 +00:00
|
|
|
|
2023-09-22 16:51:15 +00:00
|
|
|
// Resource Types for the v2beta1 version.
|
2023-05-08 19:36:35 +00:00
|
|
|
|
2023-09-22 16:51:15 +00:00
|
|
|
ProxyConfigurationV2Beta1Type = types.ProxyConfigurationV2Beta1Type
|
|
|
|
UpstreamsV2Beta1Type = types.UpstreamsV2Beta1Type
|
|
|
|
UpstreamsConfigurationV2Beta1Type = types.UpstreamsConfigurationV2Beta1Type
|
|
|
|
ProxyStateTemplateConfigurationV2Beta1Type = types.ProxyStateTemplateV2Beta1Type
|
|
|
|
HTTPRouteV2Beta1Type = types.HTTPRouteV2Beta1Type
|
|
|
|
GRPCRouteV2Beta1Type = types.GRPCRouteV2Beta1Type
|
|
|
|
TCPRouteV2Beta1Type = types.TCPRouteV2Beta1Type
|
|
|
|
DestinationPolicyV2Beta1Type = types.DestinationPolicyV2Beta1Type
|
|
|
|
ComputedRoutesV2Beta1Type = types.ComputedRoutesV2Beta1Type
|
|
|
|
ProxyStateTemplateV1AlphaType = types.ProxyStateTemplateV2Beta1Type
|
2023-08-03 18:42:04 +00:00
|
|
|
|
|
|
|
// Resource Types for the latest version.
|
|
|
|
|
2023-09-22 16:51:15 +00:00
|
|
|
ProxyConfigurationType = types.ProxyConfigurationType
|
|
|
|
UpstreamsType = types.UpstreamsType
|
|
|
|
UpstreamsConfigurationType = types.UpstreamsConfigurationType
|
|
|
|
ProxyStateTemplateType = types.ProxyStateTemplateType
|
|
|
|
HTTPRouteType = types.HTTPRouteType
|
|
|
|
GRPCRouteType = types.GRPCRouteType
|
|
|
|
TCPRouteType = types.TCPRouteType
|
|
|
|
DestinationPolicyType = types.DestinationPolicyType
|
|
|
|
ComputedRoutesType = types.ComputedRoutesType
|
2023-09-07 15:37:15 +00:00
|
|
|
|
|
|
|
// Controller statuses.
|
|
|
|
|
|
|
|
// Sidecar-proxy controller.
|
|
|
|
SidecarProxyStatusKey = sidecarproxy.ControllerName
|
|
|
|
SidecarProxyStatusConditionMeshDestination = status.StatusConditionDestinationAccepted
|
|
|
|
SidecarProxyStatusReasonNonMeshDestination = status.StatusReasonMeshProtocolNotFound
|
|
|
|
SidecarProxyStatusReasonMeshDestination = status.StatusReasonMeshProtocolFound
|
|
|
|
SidecarProxyStatusReasonDestinationServiceNotFound = status.StatusReasonDestinationServiceNotFound
|
|
|
|
SidecarProxyStatusReasonDestinationServiceFound = status.StatusReasonDestinationServiceFound
|
|
|
|
SidecarProxyStatusReasonMeshProtocolDestinationPort = status.StatusReasonMeshProtocolDestinationPort
|
|
|
|
SidecarProxyStatusReasonNonMeshProtocolDestinationPort = status.StatusReasonNonMeshProtocolDestinationPort
|
2023-09-12 17:08:51 +00:00
|
|
|
|
|
|
|
// Routes controller
|
|
|
|
RoutesStatusKey = routes.StatusKey
|
|
|
|
RoutesStatusConditionAccepted = routes.StatusConditionAccepted
|
|
|
|
RoutesStatusConditionAcceptedMissingParentRefReason = routes.MissingParentRefReason
|
|
|
|
RoutesStatusConditionAcceptedMissingBackendRefReason = routes.MissingBackendRefReason
|
|
|
|
RoutesStatusConditionAcceptedParentRefOutsideMeshReason = routes.ParentRefOutsideMeshReason
|
|
|
|
RoutesStatusConditionAcceptedBackendRefOutsideMeshReason = routes.BackendRefOutsideMeshReason
|
|
|
|
RoutesStatusConditionAcceptedParentRefUsingMeshPortReason = routes.ParentRefUsingMeshPortReason
|
|
|
|
RoutesStatusConditionAcceptedBackendRefUsingMeshPortReason = routes.BackendRefUsingMeshPortReason
|
|
|
|
RoutesStatusConditionAcceptedUnknownParentRefPortReason = routes.UnknownParentRefPortReason
|
|
|
|
RoutesStatusConditionAcceptedUnknownBackendRefPortReason = routes.UnknownBackendRefPortReason
|
|
|
|
RoutesStatusConditionAcceptedConflictNotBoundToParentRefReason = routes.ConflictNotBoundToParentRefReason
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
// Important constants
|
|
|
|
|
|
|
|
NullRouteBackend = types.NullRouteBackend
|
2023-05-08 19:36:35 +00:00
|
|
|
)
|
|
|
|
|
2023-09-07 15:37:15 +00:00
|
|
|
// RegisterTypes adds all resource types within the "mesh" API group
|
2023-05-08 19:36:35 +00:00
|
|
|
// to the given type registry
|
|
|
|
func RegisterTypes(r resource.Registry) {
|
|
|
|
types.Register(r)
|
|
|
|
}
|
2023-08-22 19:38:31 +00:00
|
|
|
|
|
|
|
// RegisterControllers registers controllers for the mesh types with
|
|
|
|
// the given controller Manager.
|
|
|
|
func RegisterControllers(mgr *controller.Manager, deps ControllerDependencies) {
|
|
|
|
controllers.Register(mgr, deps)
|
|
|
|
}
|
|
|
|
|
2023-09-07 15:37:15 +00:00
|
|
|
type TrustDomainFetcher = sidecarproxy.TrustDomainFetcher
|
|
|
|
|
2023-08-22 19:38:31 +00:00
|
|
|
type ControllerDependencies = controllers.Dependencies
|