v1alpha1

package
v0.0.0-...-19ab7e0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 1, 2024 License: MPL-2.0 Imports: 35 Imported by: 4

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the consul.hashicorp.com v1alpha1 API group +kubebuilder:object:generate=true +groupName=consul.hashicorp.com

Index

Constants

View Source
const (
	GatewayClassConfigKind = "GatewayClassConfig"
	MeshServiceKind        = "MeshService"
)
View Source
const (
	JWTProviderKubeKind      string               = "jwtprovider"
	DiscoveryTypeStrictDNS   ClusterDiscoveryType = "STRICT_DNS"
	DiscoveryTypeStatic      ClusterDiscoveryType = "STATIC"
	DiscoveryTypeLogicalDNS  ClusterDiscoveryType = "LOGICAL_DNS"
	DiscoveryTypeEDS         ClusterDiscoveryType = "EDS"
	DiscoveryTypeOriginalDST ClusterDiscoveryType = "ORIGINAL_DST"
)
View Source
const (
	PathWithEscapedSlashesActionDefault             = "IMPLEMENTATION_SPECIFIC_DEFAULT"
	PathWithEscapedSlashesActionKeep                = "KEEP_UNCHANGED"
	PathWithEscapedSlashesActionReject              = "REJECT_REQUEST"
	PathWithEscapedSlashesActionUnescapeAndRedirect = "UNESCAPE_AND_REDIRECT"
	PathWithEscapedSlashesActionUnescapeAndForward  = "UNESCAPE_AND_FORWARD"
)

PathWithEscapedSlashesAction is an enum that defines the action to take when a request path contains escaped slashes. It mirrors exactly the set of options in Envoy's UriPathNormalizationOptions.PathWithEscapedSlashesAction enum. See github.com/envoyproxy/go-control-plane envoy_http_v3.HttpConnectionManager_PathWithEscapedSlashesAction.

View Source
const (
	HeadersWithUnderscoresActionAllow         = "ALLOW"
	HeadersWithUnderscoresActionRejectRequest = "REJECT_REQUEST"
	HeadersWithUnderscoresActionDropHeader    = "DROP_HEADER"
)

HeadersWithUnderscoresAction is an enum that defines the action to take when a request contains headers with underscores. It mirrors exactly the set of options in Envoy's HttpProtocolOptions.HeadersWithUnderscoresAction enum. See github.com/envoyproxy/go-control-plane envoy_core_v3.HttpProtocolOptions_HeadersWithUnderscoresAction.

View Source
const ConsulHashicorpGroup string = "consul.hashicorp.com"
View Source
const (
	ControlPlaneRequestLimitKubeKind = "controlplanerequestlimit"
)
View Source
const ExportedServicesKubeKind = "exportedservices"
View Source
const Gatewaypolicy_GatewayIndex = "__gatewaypolicy_referencing_gateway"
View Source
const (
	MeshKubeKind = "mesh"
)
View Source
const PeeringAcceptorKubeKind = "peeringacceptors"
View Source
const PeeringDialerKubeKind = "peeringdialers"
View Source
const (
	ProxyDefaultsKubeKind string = "proxydefaults"
)
View Source
const (
	RouteAuthFilterKind = "RouteAuthFilter"
)
View Source
const RouteRetryFilterKind = "RouteRetryFilter"
View Source
const RouteTimeoutFilterKind = "RouteTimeoutFilter"
View Source
const (
	SamenessGroupKubeKind string = "samenessgroup"
)
View Source
const SecretBackendTypeKubernetes = "kubernetes"
View Source
const (
	ServiceDefaultsKubeKind = "servicedefaults"
)
View Source
const ServiceResolverKubeKind string = "serviceresolver"
View Source
const (
	ServiceRouterKubeKind string = "servicerouter"
)
View Source
const (
	TerminatingGatewayFailedToSetACLs string = "FailedToSetACLs"
)
View Source
const WildcardSpecifier = "*"

Variables

View Source
var (
	// GroupVersion is group version used to register these objects.
	GroupVersion = schema.GroupVersion{Group: "consul.hashicorp.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	ErrInvalidInterval       = errors.New("invalid value for IntervalDuration")
	ErrInvalidTimeout        = errors.New("invalid value for TimeoutDuration")
	ErrInvalidDergisterAfter = errors.New("invalid value for DeregisterCriticalServiceAfterDuration")
)

Functions

func DerefStringOr

func DerefStringOr[T ~string, U ~string](v *T, val U) string

Types

type AccessLogs

type AccessLogs struct {
	// Enabled turns on all access logging
	Enabled bool `json:"enabled,omitempty"`

	// DisableListenerLogs turns off just listener logs for connections rejected by Envoy because they don't
	// have a matching listener filter.
	DisableListenerLogs bool `json:"disableListenerLogs,omitempty"`

	// Type selects the output for logs
	// one of "file", "stderr". "stdout"
	Type LogSinkType `json:"type,omitempty"`

	// Path is the output file to write logs for file-type logging
	Path string `json:"path,omitempty"`

	// JSONFormat is a JSON-formatted string of an Envoy access log format dictionary.
	// See for more info on formatting: https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#format-dictionaries
	// Defining JSONFormat and TextFormat is invalid.
	JSONFormat string `json:"jsonFormat,omitempty"`

	// TextFormat is a representation of Envoy access logs format.
	// See for more info on formatting: https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#format-strings
	// Defining JSONFormat and TextFormat is invalid.
	TextFormat string `json:"textFormat,omitempty"`
}

AccessLogs describes the access logging configuration for all Envoy proxies in the mesh.

func (*AccessLogs) DeepCopy

func (in *AccessLogs) DeepCopy() *AccessLogs

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessLogs.

func (*AccessLogs) DeepCopyInto

func (in *AccessLogs) DeepCopyInto(out *AccessLogs)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterDiscoveryType

type ClusterDiscoveryType string

type Condition

type Condition struct {
	// Type of condition.
	// +required
	Type ConditionType `json:"type" description:"type of status condition"`

	// Status of the condition, one of True, False, Unknown.
	// +required
	Status corev1.ConditionStatus `json:"status" description:"status of the condition, one of True, False, Unknown"`

	// LastTransitionTime is the last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" description:"last time the condition transitioned from one status to another"`

	// The reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty" description:"one-word CamelCase reason for the condition's last transition"`

	// A human readable message indicating details about the transition.
	// +optional
	Message string `json:"message,omitempty" description:"human-readable message indicating details about last transition"`
}

Conditions define a readiness condition for a Consul resource. See: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties +k8s:deepcopy-gen=true +k8s:openapi-gen=true

func (*Condition) DeepCopy

func (in *Condition) DeepCopy() *Condition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.

func (*Condition) DeepCopyInto

func (in *Condition) DeepCopyInto(out *Condition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Condition) IsFalse

func (c *Condition) IsFalse() bool

IsFalse is true if the condition is False.

func (*Condition) IsTrue

func (c *Condition) IsTrue() bool

IsTrue is true if the condition is True.

func (*Condition) IsUnknown

func (c *Condition) IsUnknown() bool

IsUnknown is true if the condition is Unknown.

type ConditionType

type ConditionType string

ConditionType is a camel-cased condition type.

const (
	// ConditionSynced specifies that the resource has been synced with Consul.
	ConditionSynced ConditionType = "Synced"
)
const ConsulACLStatus ConditionType = "ConsulACLsSynced"

Condition Type.

type Conditions

type Conditions []Condition

Conditions is the schema for the conditions portion of the payload.

func (Conditions) DeepCopy

func (in Conditions) DeepCopy() Conditions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Conditions.

func (Conditions) DeepCopyInto

func (in Conditions) DeepCopyInto(out *Conditions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ControlPlaneRequestLimit

type ControlPlaneRequestLimit struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ControlPlaneRequestLimitSpec `json:"spec,omitempty"`
	Status `json:"status,omitempty"`
}

ControlPlaneRequestLimit is the Schema for the controlplanerequestlimits API. +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource"

func (*ControlPlaneRequestLimit) AddFinalizer

func (c *ControlPlaneRequestLimit) AddFinalizer(name string)

AddFinalizer adds a finalizer to the list of finalizers.

func (*ControlPlaneRequestLimit) ConsulGlobalResource

func (c *ControlPlaneRequestLimit) ConsulGlobalResource() bool

ConsulGlobalResource returns if the resource exists in the default Consul namespace only.

func (*ControlPlaneRequestLimit) ConsulKind

func (c *ControlPlaneRequestLimit) ConsulKind() string

ConsulKind returns the Consul config entry kind, i.e. service-defaults, not servicedefaults.

func (*ControlPlaneRequestLimit) ConsulMirroringNS

func (c *ControlPlaneRequestLimit) ConsulMirroringNS() string

ConsulMirroringNS returns the Consul namespace that the config entry should be created in if namespaces and mirroring are enabled.

func (*ControlPlaneRequestLimit) ConsulName

func (c *ControlPlaneRequestLimit) ConsulName() string

ConsulName returns the name of the config entry as saved in Consul. This may be different than KubernetesName() in the case of a ServiceIntentions config entry.

func (*ControlPlaneRequestLimit) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneRequestLimit.

func (*ControlPlaneRequestLimit) DeepCopyInto

func (in *ControlPlaneRequestLimit) DeepCopyInto(out *ControlPlaneRequestLimit)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ControlPlaneRequestLimit) DeepCopyObject

func (in *ControlPlaneRequestLimit) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ControlPlaneRequestLimit) DefaultNamespaceFields

func (s *ControlPlaneRequestLimit) DefaultNamespaceFields(_ common.ConsulMeta)

DefaultNamespaceFields has no behaviour here as control-plane-request-limit have no namespace specific fields.

func (*ControlPlaneRequestLimit) Finalizers

func (c *ControlPlaneRequestLimit) Finalizers() []string

Finalizers returns the list of finalizers for this object.

func (*ControlPlaneRequestLimit) GetObjectMeta

func (c *ControlPlaneRequestLimit) GetObjectMeta() metav1.ObjectMeta

GetObjectMeta returns object meta.

func (*ControlPlaneRequestLimit) KubeKind

func (c *ControlPlaneRequestLimit) KubeKind() string

KubeKind returns the Kube config entry kind, i.e. servicedefaults, not service-defaults.

func (*ControlPlaneRequestLimit) KubernetesName

func (c *ControlPlaneRequestLimit) KubernetesName() string

KubernetesName returns the name of the Kubernetes resource.

func (*ControlPlaneRequestLimit) MatchesConsul

func (c *ControlPlaneRequestLimit) MatchesConsul(candidate consul.ConfigEntry) bool

MatchesConsul returns true if the resource has the same fields as the Consul config entry.

func (*ControlPlaneRequestLimit) RemoveFinalizer

func (c *ControlPlaneRequestLimit) RemoveFinalizer(name string)

RemoveFinalizer removes this finalizer from the list.

func (*ControlPlaneRequestLimit) SetLastSyncedTime

func (c *ControlPlaneRequestLimit) SetLastSyncedTime(time *metav1.Time)

SetLastSyncedTime updates the last synced time.

func (*ControlPlaneRequestLimit) SetSyncedCondition

func (c *ControlPlaneRequestLimit) SetSyncedCondition(status corev1.ConditionStatus, reason, message string)

SetSyncedCondition updates the synced condition.

func (*ControlPlaneRequestLimit) SyncedCondition

func (c *ControlPlaneRequestLimit) SyncedCondition() (status corev1.ConditionStatus, reason, message string)

SyncedCondition gets the synced condition.

func (*ControlPlaneRequestLimit) SyncedConditionStatus

func (c *ControlPlaneRequestLimit) SyncedConditionStatus() corev1.ConditionStatus

SyncedConditionStatus returns the status of the synced condition.

func (*ControlPlaneRequestLimit) ToConsul

func (c *ControlPlaneRequestLimit) ToConsul(datacenter string) consul.ConfigEntry

ToConsul converts the resource to the corresponding Consul API definition. Its return type is the generic ConfigEntry but a specific config entry type should be constructed e.g. ServiceConfigEntry.

func (*ControlPlaneRequestLimit) Validate

func (c *ControlPlaneRequestLimit) Validate(consulMeta common.ConsulMeta) error

Validate returns an error if the resource is invalid.

type ControlPlaneRequestLimitList

type ControlPlaneRequestLimitList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ControlPlaneRequestLimit `json:"items"`
}

ControlPlaneRequestLimitList contains a list of ControlPlaneRequestLimit.

func (*ControlPlaneRequestLimitList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneRequestLimitList.

func (*ControlPlaneRequestLimitList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ControlPlaneRequestLimitList) DeepCopyObject

func (in *ControlPlaneRequestLimitList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ControlPlaneRequestLimitSpec

type ControlPlaneRequestLimitSpec struct {
	Mode                 string `json:"mode,omitempty"`
	ReadWriteRatesConfig `json:",inline"`
	ACL                  *ReadWriteRatesConfig `json:"acl,omitempty"`
	Catalog              *ReadWriteRatesConfig `json:"catalog,omitempty"`
	ConfigEntry          *ReadWriteRatesConfig `json:"configEntry,omitempty"`
	ConnectCA            *ReadWriteRatesConfig `json:"connectCA,omitempty"`
	Coordinate           *ReadWriteRatesConfig `json:"coordinate,omitempty"`
	DiscoveryChain       *ReadWriteRatesConfig `json:"discoveryChain,omitempty"`
	Health               *ReadWriteRatesConfig `json:"health,omitempty"`
	Intention            *ReadWriteRatesConfig `json:"intention,omitempty"`
	KV                   *ReadWriteRatesConfig `json:"kv,omitempty"`
	Tenancy              *ReadWriteRatesConfig `json:"tenancy,omitempty"`
	PreparedQuery        *ReadWriteRatesConfig `json:"preparedQuery,omitempty"`
	Session              *ReadWriteRatesConfig `json:"session,omitempty"`
	Txn                  *ReadWriteRatesConfig `json:"txn,omitempty"`
}

ControlPlaneRequestLimitSpec defines the desired state of ControlPlaneRequestLimit.

func (*ControlPlaneRequestLimitSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneRequestLimitSpec.

func (*ControlPlaneRequestLimitSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ControlPlaneRequestLimitWebhook

type ControlPlaneRequestLimitWebhook struct {
	client.Client
	Logger logr.Logger

	ConsulMeta common.ConsulMeta
	// contains filtered or unexported fields
}

func (*ControlPlaneRequestLimitWebhook) Handle

func (*ControlPlaneRequestLimitWebhook) List

func (*ControlPlaneRequestLimitWebhook) SetupWithManager

func (v *ControlPlaneRequestLimitWebhook) SetupWithManager(mgr ctrl.Manager)

type CookieConfig

type CookieConfig struct {
	// Session determines whether to generate a session cookie with no expiration.
	Session bool `json:"session,omitempty"`

	// TTL is the ttl for generated cookies. Cannot be specified for session cookies.
	TTL metav1.Duration `json:"ttl,omitempty"`

	// Path is the path to set for the cookie.
	Path string `json:"path,omitempty"`
}

func (*CookieConfig) DeepCopy

func (in *CookieConfig) DeepCopy() *CookieConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CookieConfig.

func (*CookieConfig) DeepCopyInto

func (in *CookieConfig) DeepCopyInto(out *CookieConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CopyAnnotationsSpec

type CopyAnnotationsSpec struct {
	// List of annotations to copy to the gateway service.
	Service []string `json:"service,omitempty"`
}

CopyAnnotationsSpec defines the annotations that should be copied to the gateway service.

func (*CopyAnnotationsSpec) DeepCopy

func (in *CopyAnnotationsSpec) DeepCopy() *CopyAnnotationsSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CopyAnnotationsSpec.

func (*CopyAnnotationsSpec) DeepCopyInto

func (in *CopyAnnotationsSpec) DeepCopyInto(out *CopyAnnotationsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeploymentSpec

type DeploymentSpec struct {
	// +kubebuilder:default:=1
	// +kubebuilder:validation:Maximum=8
	// +kubebuilder:validation:Minimum=1
	// Number of gateway instances that should be deployed by default
	DefaultInstances *int32 `json:"defaultInstances,omitempty"`
	// +kubebuilder:default:=8
	// +kubebuilder:validation:Maximum=8
	// +kubebuilder:validation:Minimum=1
	// Max allowed number of gateway instances
	MaxInstances *int32 `json:"maxInstances,omitempty"`
	// +kubebuilder:default:=1
	// +kubebuilder:validation:Maximum=8
	// +kubebuilder:validation:Minimum=1
	// Minimum allowed number of gateway instances
	MinInstances *int32 `json:"minInstances,omitempty"`

	// Resources defines the resource requirements for the gateway.
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
}

func (*DeploymentSpec) DeepCopy

func (in *DeploymentSpec) DeepCopy() *DeploymentSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec.

func (*DeploymentSpec) DeepCopyInto

func (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EnvoyExtension

type EnvoyExtension struct {
	Name     string `json:"name,omitempty"`
	Required bool   `json:"required,omitempty"`
	// +kubebuilder:validation:Type=object
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	Arguments json.RawMessage `json:"arguments,omitempty"`
}

EnvoyExtension has configuration for an extension that patches Envoy resources.

func (*EnvoyExtension) DeepCopy

func (in *EnvoyExtension) DeepCopy() *EnvoyExtension

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyExtension.

func (*EnvoyExtension) DeepCopyInto

func (in *EnvoyExtension) DeepCopyInto(out *EnvoyExtension)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EnvoyExtensions

type EnvoyExtensions []EnvoyExtension

EnvoyExtensions represents a list of the EnvoyExtension configuration.

func (EnvoyExtensions) DeepCopy

func (in EnvoyExtensions) DeepCopy() EnvoyExtensions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyExtensions.

func (EnvoyExtensions) DeepCopyInto

func (in EnvoyExtensions) DeepCopyInto(out *EnvoyExtensions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExportedService

type ExportedService struct {
	// Name is the name of the service to be exported.
	Name string `json:"name,omitempty"`
	// Namespace is the namespace to export the service from.
	Namespace string `json:"namespace,omitempty"`
	// Consumers is a list of downstream consumers of the service to be exported.
	Consumers []ServiceConsumer `json:"consumers,omitempty"`
}

ExportedService manages the exporting of a service in the local partition to other partitions.

func (*ExportedService) DeepCopy

func (in *ExportedService) DeepCopy() *ExportedService

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExportedService.

func (*ExportedService) DeepCopyInto

func (in *ExportedService) DeepCopyInto(out *ExportedService)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExportedServices

type ExportedServices struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ExportedServicesSpec `json:"spec,omitempty"`
	Status `json:"status,omitempty"`
}

ExportedServices is the Schema for the exportedservices API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource" +kubebuilder:resource:shortName="exported-services"

func (*ExportedServices) AddFinalizer

func (in *ExportedServices) AddFinalizer(name string)

func (*ExportedServices) ConsulGlobalResource

func (in *ExportedServices) ConsulGlobalResource() bool

func (*ExportedServices) ConsulKind

func (in *ExportedServices) ConsulKind() string

func (*ExportedServices) ConsulMirroringNS

func (in *ExportedServices) ConsulMirroringNS() string

func (*ExportedServices) ConsulName

func (in *ExportedServices) ConsulName() string

func (*ExportedServices) DeepCopy

func (in *ExportedServices) DeepCopy() *ExportedServices

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExportedServices.

func (*ExportedServices) DeepCopyInto

func (in *ExportedServices) DeepCopyInto(out *ExportedServices)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ExportedServices) DeepCopyObject

func (in *ExportedServices) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ExportedServices) DefaultNamespaceFields

func (in *ExportedServices) DefaultNamespaceFields(_ common.ConsulMeta)

func (*ExportedServices) Finalizers

func (in *ExportedServices) Finalizers() []string

func (*ExportedServices) GetObjectMeta

func (in *ExportedServices) GetObjectMeta() metav1.ObjectMeta

func (*ExportedServices) KubeKind

func (in *ExportedServices) KubeKind() string

func (*ExportedServices) KubernetesName

func (in *ExportedServices) KubernetesName() string

func (*ExportedServices) MatchesConsul

func (in *ExportedServices) MatchesConsul(candidate api.ConfigEntry) bool

func (*ExportedServices) RemoveFinalizer

func (in *ExportedServices) RemoveFinalizer(name string)

func (*ExportedServices) SetLastSyncedTime

func (in *ExportedServices) SetLastSyncedTime(time *metav1.Time)

func (*ExportedServices) SetSyncedCondition

func (in *ExportedServices) SetSyncedCondition(status corev1.ConditionStatus, reason, message string)

func (*ExportedServices) SyncedCondition

func (in *ExportedServices) SyncedCondition() (status corev1.ConditionStatus, reason, message string)

func (*ExportedServices) SyncedConditionStatus

func (in *ExportedServices) SyncedConditionStatus() corev1.ConditionStatus

func (*ExportedServices) ToConsul

func (in *ExportedServices) ToConsul(datacenter string) api.ConfigEntry

func (*ExportedServices) Validate

func (in *ExportedServices) Validate(consulMeta common.ConsulMeta) error

type ExportedServicesList

type ExportedServicesList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ExportedServices `json:"items"`
}

ExportedServicesList contains a list of ExportedServices.

func (*ExportedServicesList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExportedServicesList.

func (*ExportedServicesList) DeepCopyInto

func (in *ExportedServicesList) DeepCopyInto(out *ExportedServicesList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ExportedServicesList) DeepCopyObject

func (in *ExportedServicesList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ExportedServicesSpec

type ExportedServicesSpec struct {
	// Services is a list of services to be exported and the list of partitions
	// to expose them to.
	Services []ExportedService `json:"services,omitempty"`
}

ExportedServicesSpec defines the desired state of ExportedServices.

func (*ExportedServicesSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExportedServicesSpec.

func (*ExportedServicesSpec) DeepCopyInto

func (in *ExportedServicesSpec) DeepCopyInto(out *ExportedServicesSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExportedServicesWebhook

type ExportedServicesWebhook struct {
	client.Client
	Logger logr.Logger

	ConsulMeta common.ConsulMeta
	// contains filtered or unexported fields
}

func (*ExportedServicesWebhook) Handle

func (*ExportedServicesWebhook) SetupWithManager

func (v *ExportedServicesWebhook) SetupWithManager(mgr ctrl.Manager)

type Expose

type Expose struct {
	// Checks defines whether paths associated with Consul checks will be exposed.
	// This flag triggers exposing all HTTP and GRPC check paths registered for the service.
	Checks bool `json:"checks,omitempty"`

	// Paths is the list of paths exposed through the proxy.
	Paths []ExposePath `json:"paths,omitempty"`
}

Expose describes HTTP paths to expose through Envoy outside of Connect. Users can expose individual paths and/or all HTTP/GRPC paths for checks.

func (*Expose) DeepCopy

func (in *Expose) DeepCopy() *Expose

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Expose.

func (*Expose) DeepCopyInto

func (in *Expose) DeepCopyInto(out *Expose)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExposePath

type ExposePath struct {
	// ListenerPort defines the port of the proxy's listener for exposed paths.
	ListenerPort int `json:"listenerPort,omitempty"`

	// Path is the path to expose through the proxy, ie. "/metrics".
	Path string `json:"path,omitempty"`

	// LocalPathPort is the port that the service is listening on for the given path.
	LocalPathPort int `json:"localPathPort,omitempty"`

	// Protocol describes the upstream's service protocol.
	// Valid values are "http" and "http2", defaults to "http".
	Protocol string `json:"protocol,omitempty"`
}

func (*ExposePath) DeepCopy

func (in *ExposePath) DeepCopy() *ExposePath

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExposePath.

func (*ExposePath) DeepCopyInto

func (in *ExposePath) DeepCopyInto(out *ExposePath)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FailoverPolicy

type FailoverPolicy struct {
	// Mode specifies the type of failover that will be performed. Valid values are
	// "sequential", "" (equivalent to "sequential") and "order-by-locality".
	Mode string `json:"mode,omitempty"`
	// Regions is the ordered list of the regions of the failover targets.
	// Valid values can be "us-west-1", "us-west-2", and so on.
	Regions []string `json:"regions,omitempty"`
}

FailoverPolicy specifies the exact mechanism used for failover.

func (*FailoverPolicy) DeepCopy

func (in *FailoverPolicy) DeepCopy() *FailoverPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FailoverPolicy.

func (*FailoverPolicy) DeepCopyInto

func (in *FailoverPolicy) DeepCopyInto(out *FailoverPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GatewayClassConfig

type GatewayClassConfig struct {
	// Standard Kubernetes resource metadata.
	metav1.TypeMeta `json:",inline"`

	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec defines the desired state of GatewayClassConfig.
	Spec GatewayClassConfigSpec `json:"spec,omitempty"`
}

GatewayClassConfig defines the values that may be set on a GatewayClass for Consul API Gateway.

func (*GatewayClassConfig) DeepCopy

func (in *GatewayClassConfig) DeepCopy() *GatewayClassConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayClassConfig.

func (*GatewayClassConfig) DeepCopyInto

func (in *GatewayClassConfig) DeepCopyInto(out *GatewayClassConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GatewayClassConfig) DeepCopyObject

func (in *GatewayClassConfig) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type GatewayClassConfigList

type GatewayClassConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items is the list of Configs.
	Items []GatewayClassConfig `json:"items"`
}

GatewayClassConfigList is a list of Config resources.

func (*GatewayClassConfigList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayClassConfigList.

func (*GatewayClassConfigList) DeepCopyInto

func (in *GatewayClassConfigList) DeepCopyInto(out *GatewayClassConfigList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GatewayClassConfigList) DeepCopyObject

func (in *GatewayClassConfigList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type GatewayClassConfigSpec

type GatewayClassConfigSpec struct {

	// +kubebuilder:validation:Enum=ClusterIP;NodePort;LoadBalancer
	ServiceType *corev1.ServiceType `json:"serviceType,omitempty"`

	// NodeSelector is a selector which must be true for the pod to fit on a node.
	// Selector which must match a node's labels for the pod to be scheduled on that node.
	// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Tolerations allow the scheduler to schedule nodes with matching taints.
	// More Info: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Deployment defines the deployment configuration for the gateway.
	DeploymentSpec DeploymentSpec `json:"deployment,omitempty"`

	// Annotation Information to copy to services or deployments
	CopyAnnotations CopyAnnotationsSpec `json:"copyAnnotations,omitempty"`

	// The name of an existing Kubernetes PodSecurityPolicy to bind to the managed ServiceAccount if ACLs are managed.
	PodSecurityPolicy string `json:"podSecurityPolicy,omitempty"`

	// The name of the OpenShift SecurityContextConstraints resource for this gateway class to use.
	OpenshiftSCCName string `json:"openshiftSCCName,omitempty"`

	// The value to add to privileged ports ( ports < 1024) for gateway containers
	MapPrivilegedContainerPorts int32 `json:"mapPrivilegedContainerPorts,omitempty"`

	// Metrics defines how to configure the metrics for a gateway.
	Metrics MetricsSpec `json:"metrics,omitempty"`
}

GatewayClassConfigSpec specifies the desired state of the Config CRD.

func (*GatewayClassConfigSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayClassConfigSpec.

func (*GatewayClassConfigSpec) DeepCopyInto

func (in *GatewayClassConfigSpec) DeepCopyInto(out *GatewayClassConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GatewayJWTClaimVerification

type GatewayJWTClaimVerification struct {
	// Path is the path to the claim in the token JSON.
	Path []string `json:"path"`

	// Value is the expected value at the given path:
	// - If the type at the path is a list then we verify
	//   that this value is contained in the list.
	//
	// - If the type at the path is a string then we verify
	//   that this value matches.
	Value string `json:"value"`
}

GatewayJWTClaimVerification holds the actual claim information to be verified.

func (*GatewayJWTClaimVerification) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayJWTClaimVerification.

func (*GatewayJWTClaimVerification) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GatewayJWTProvider

type GatewayJWTProvider struct {
	// Name is the name of the JWT provider. There MUST be a corresponding
	// "jwt-provider" config entry with this name.
	Name string `json:"name"`

	// VerifyClaims is a list of additional claims to verify in a JWT's payload.
	VerifyClaims []*GatewayJWTClaimVerification `json:"verifyClaims,omitempty"`
}

GatewayJWTProvider holds the provider and claim verification information.

func (*GatewayJWTProvider) DeepCopy

func (in *GatewayJWTProvider) DeepCopy() *GatewayJWTProvider

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayJWTProvider.

func (*GatewayJWTProvider) DeepCopyInto

func (in *GatewayJWTProvider) DeepCopyInto(out *GatewayJWTProvider)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GatewayJWTRequirement

type GatewayJWTRequirement struct {
	// Providers is a list of providers to consider when verifying a JWT.
	Providers []*GatewayJWTProvider `json:"providers"`
}

GatewayJWTRequirement holds the list of JWT providers to be verified against.

func (*GatewayJWTRequirement) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayJWTRequirement.

func (*GatewayJWTRequirement) DeepCopyInto

func (in *GatewayJWTRequirement) DeepCopyInto(out *GatewayJWTRequirement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GatewayPolicy

type GatewayPolicy struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   GatewayPolicySpec   `json:"spec,omitempty"`
	Status GatewayPolicyStatus `json:"status,omitempty"`
}

GatewayPolicy is the Schema for the gatewaypolicies API. +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource"

func (*GatewayPolicy) DeepCopy

func (in *GatewayPolicy) DeepCopy() *GatewayPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayPolicy.

func (*GatewayPolicy) DeepCopyInto

func (in *GatewayPolicy) DeepCopyInto(out *GatewayPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GatewayPolicy) DeepCopyObject

func (in *GatewayPolicy) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type GatewayPolicyConfig

type GatewayPolicyConfig struct {
	//+kubebuilder:validation:Optional
	JWT *GatewayJWTRequirement `json:"jwt,omitempty"`
}

func (*GatewayPolicyConfig) DeepCopy

func (in *GatewayPolicyConfig) DeepCopy() *GatewayPolicyConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayPolicyConfig.

func (*GatewayPolicyConfig) DeepCopyInto

func (in *GatewayPolicyConfig) DeepCopyInto(out *GatewayPolicyConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GatewayPolicyList

type GatewayPolicyList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []GatewayPolicy `json:"items"`
}

GatewayPolicyList contains a list of GatewayPolicy.

func (*GatewayPolicyList) DeepCopy

func (in *GatewayPolicyList) DeepCopy() *GatewayPolicyList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayPolicyList.

func (*GatewayPolicyList) DeepCopyInto

func (in *GatewayPolicyList) DeepCopyInto(out *GatewayPolicyList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GatewayPolicyList) DeepCopyObject

func (in *GatewayPolicyList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type GatewayPolicySpec

type GatewayPolicySpec struct {
	// TargetRef identifies an API object to apply policy to.
	TargetRef PolicyTargetReference `json:"targetRef"`
	//+kubebuilder:validation:Optional
	Override *GatewayPolicyConfig `json:"override,omitempty"`
	//+kubebuilder:validation:Optional
	Default *GatewayPolicyConfig `json:"default,omitempty"`
}

GatewayPolicySpec defines the desired state of GatewayPolicy.

func (*GatewayPolicySpec) DeepCopy

func (in *GatewayPolicySpec) DeepCopy() *GatewayPolicySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayPolicySpec.

func (*GatewayPolicySpec) DeepCopyInto

func (in *GatewayPolicySpec) DeepCopyInto(out *GatewayPolicySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GatewayPolicyStatus

type GatewayPolicyStatus struct {
	// Conditions describe the current conditions of the Policy.
	//
	//
	// Known condition types are:
	//
	// * "Accepted"
	// * "ResolvedRefs"
	//
	// +optional
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=8
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

GatewayPolicyStatus defines the observed state of the gateway.

func (*GatewayPolicyStatus) DeepCopy

func (in *GatewayPolicyStatus) DeepCopy() *GatewayPolicyStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayPolicyStatus.

func (*GatewayPolicyStatus) DeepCopyInto

func (in *GatewayPolicyStatus) DeepCopyInto(out *GatewayPolicyStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GatewayPolicyWebhook

type GatewayPolicyWebhook struct {
	Logger logr.Logger

	// ConsulMeta contains metadata specific to the Consul installation.
	ConsulMeta common.ConsulMeta

	client.Client
	// contains filtered or unexported fields
}

func (*GatewayPolicyWebhook) Handle

func (*GatewayPolicyWebhook) SetupWithManager

func (v *GatewayPolicyWebhook) SetupWithManager(mgr ctrl.Manager)

type GatewayServiceTLSConfig

type GatewayServiceTLSConfig struct {
	// SDS allows configuring TLS certificate from an SDS service.
	SDS *GatewayTLSSDSConfig `json:"sds,omitempty"`
}

func (*GatewayServiceTLSConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayServiceTLSConfig.

func (*GatewayServiceTLSConfig) DeepCopyInto

func (in *GatewayServiceTLSConfig) DeepCopyInto(out *GatewayServiceTLSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GatewayTLSConfig

type GatewayTLSConfig struct {
	// Indicates that TLS should be enabled for this gateway service.
	Enabled bool `json:"enabled"`
	// SDS allows configuring TLS certificate from an SDS service.
	SDS *GatewayTLSSDSConfig `json:"sds,omitempty"`
	// TLSMinVersion sets the default minimum TLS version supported.
	// One of `TLS_AUTO`, `TLSv1_0`, `TLSv1_1`, `TLSv1_2`, or `TLSv1_3`.
	// If unspecified, Envoy v1.22.0 and newer will default to TLS 1.2 as a min version,
	// while older releases of Envoy default to TLS 1.0.
	TLSMinVersion string `json:"tlsMinVersion,omitempty"`
	// TLSMaxVersion sets the default maximum TLS version supported. Must be greater than or equal to `TLSMinVersion`.
	// One of `TLS_AUTO`, `TLSv1_0`, `TLSv1_1`, `TLSv1_2`, or `TLSv1_3`.
	// If unspecified, Envoy will default to TLS 1.3 as a max version for incoming connections.
	TLSMaxVersion string `json:"tlsMaxVersion,omitempty"`
	// Define a subset of cipher suites to restrict
	// Only applicable to connections negotiated via TLS 1.2 or earlier.
	CipherSuites []string `json:"cipherSuites,omitempty"`
}

func (*GatewayTLSConfig) DeepCopy

func (in *GatewayTLSConfig) DeepCopy() *GatewayTLSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayTLSConfig.

func (*GatewayTLSConfig) DeepCopyInto

func (in *GatewayTLSConfig) DeepCopyInto(out *GatewayTLSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GatewayTLSSDSConfig

type GatewayTLSSDSConfig struct {
	// ClusterName is the SDS cluster name to connect to, to retrieve certificates.
	// This cluster must be specified in the Gateway's bootstrap configuration.
	ClusterName string `json:"clusterName,omitempty"`
	// CertResource is the SDS resource name to request when fetching the certificate from the SDS service.
	CertResource string `json:"certResource,omitempty"`
}

func (*GatewayTLSSDSConfig) DeepCopy

func (in *GatewayTLSSDSConfig) DeepCopy() *GatewayTLSSDSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayTLSSDSConfig.

func (*GatewayTLSSDSConfig) DeepCopyInto

func (in *GatewayTLSSDSConfig) DeepCopyInto(out *GatewayTLSSDSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HTTPHeaderModifiers

type HTTPHeaderModifiers struct {
	// Add is a set of name -> value pairs that should be appended to the request
	// or response (i.e. allowing duplicates if the same header already exists).
	Add map[string]string `json:"add,omitempty"`

	// Set is a set of name -> value pairs that should be added to the request or
	// response, overwriting any existing header values of the same name.
	Set map[string]string `json:"set,omitempty"`

	// Remove is the set of header names that should be stripped from the request
	// or response.
	Remove []string `json:"remove,omitempty"`
}

HTTPHeaderModifiers is a set of rules for HTTP header modification that should be performed by proxies as the request passes through them. It can operate on either request or response headers depending on the context in which it is used.

func (*HTTPHeaderModifiers) DeepCopy

func (in *HTTPHeaderModifiers) DeepCopy() *HTTPHeaderModifiers

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPHeaderModifiers.

func (*HTTPHeaderModifiers) DeepCopyInto

func (in *HTTPHeaderModifiers) DeepCopyInto(out *HTTPHeaderModifiers)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HashPolicy

type HashPolicy struct {
	// Field is the attribute type to hash on.
	// Must be one of "header", "cookie", or "query_parameter".
	// Cannot be specified along with sourceIP.
	Field string `json:"field,omitempty"`

	// FieldValue is the value to hash.
	// ie. header name, cookie name, URL query parameter name
	// Cannot be specified along with sourceIP.
	FieldValue string `json:"fieldValue,omitempty"`

	// CookieConfig contains configuration for the "cookie" hash policy type.
	CookieConfig *CookieConfig `json:"cookieConfig,omitempty"`

	// SourceIP determines whether the hash should be of the source IP rather than of a field and field value.
	// Cannot be specified along with field or fieldValue.
	SourceIP bool `json:"sourceIP,omitempty"`

	// Terminal will short circuit the computation of the hash when multiple hash policies are present.
	// If a hash is computed when a Terminal policy is evaluated,
	// then that hash will be used and subsequent hash policies will be ignored.
	Terminal bool `json:"terminal,omitempty"`
}

func (*HashPolicy) DeepCopy

func (in *HashPolicy) DeepCopy() *HashPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HashPolicy.

func (*HashPolicy) DeepCopyInto

func (in *HashPolicy) DeepCopyInto(out *HashPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HealthCheck

type HealthCheck struct {
	Node        string                `json:"node,omitempty"`
	CheckID     string                `json:"checkId"`
	Name        string                `json:"name"`
	Status      string                `json:"status"`
	Notes       string                `json:"notes,omitempty"`
	Output      string                `json:"output,omitempty"`
	ServiceID   string                `json:"serviceId"`
	ServiceName string                `json:"serviceName"`
	Type        string                `json:"type,omitempty"`
	ExposedPort int                   `json:"exposedPort,omitempty"`
	Definition  HealthCheckDefinition `json:"definition"`
	Namespace   string                `json:"namespace,omitempty"`
	Partition   string                `json:"partition,omitempty"`
}

HealthCheck is used to represent a single check.

func (*HealthCheck) DeepCopy

func (in *HealthCheck) DeepCopy() *HealthCheck

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheck.

func (*HealthCheck) DeepCopyInto

func (in *HealthCheck) DeepCopyInto(out *HealthCheck)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HealthCheck) Equal

func (h *HealthCheck) Equal(other *HealthCheck) bool

type HealthCheckDefinition

type HealthCheckDefinition struct {
	HTTP                                   string              `json:"http,omitempty"`
	Header                                 map[string][]string `json:"header,omitempty"`
	Method                                 string              `json:"method,omitempty"`
	Body                                   string              `json:"body,omitempty"`
	TLSServerName                          string              `json:"tlsServerName,omitempty"`
	TLSSkipVerify                          bool                `json:"tlsSkipVerify,omitempty"`
	TCP                                    string              `json:"tcp,omitempty"`
	TCPUseTLS                              bool                `json:"tcpUseTLS,omitempty"`
	UDP                                    string              `json:"udp,omitempty"`
	GRPC                                   string              `json:"grpc,omitempty"`
	OSService                              string              `json:"osService,omitempty"`
	GRPCUseTLS                             bool                `json:"grpcUseTLS,omitempty"`
	IntervalDuration                       string              `json:"intervalDuration"`
	TimeoutDuration                        string              `json:"timeoutDuration,omitempty"`
	DeregisterCriticalServiceAfterDuration string              `json:"deregisterCriticalServiceAfterDuration,omitempty"`
}

HealthCheckDefinition is used to store the details about a health check's execution.

func (*HealthCheckDefinition) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheckDefinition.

func (*HealthCheckDefinition) DeepCopyInto

func (in *HealthCheckDefinition) DeepCopyInto(out *HealthCheckDefinition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (HealthCheckDefinition) Equal

type IngressGateway

type IngressGateway struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   IngressGatewaySpec `json:"spec,omitempty"`
	Status `json:"status,omitempty"`
}

IngressGateway is the Schema for the ingressgateways API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource" +kubebuilder:resource:shortName="ingress-gateway"

func (*IngressGateway) AddFinalizer

func (in *IngressGateway) AddFinalizer(name string)

func (*IngressGateway) ConsulGlobalResource

func (in *IngressGateway) ConsulGlobalResource() bool

func (*IngressGateway) ConsulKind

func (in *IngressGateway) ConsulKind() string

func (*IngressGateway) ConsulMirroringNS

func (in *IngressGateway) ConsulMirroringNS() string

func (*IngressGateway) ConsulName

func (in *IngressGateway) ConsulName() string

func (*IngressGateway) DeepCopy

func (in *IngressGateway) DeepCopy() *IngressGateway

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressGateway.

func (*IngressGateway) DeepCopyInto

func (in *IngressGateway) DeepCopyInto(out *IngressGateway)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IngressGateway) DeepCopyObject

func (in *IngressGateway) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*IngressGateway) DefaultNamespaceFields

func (in *IngressGateway) DefaultNamespaceFields(consulMeta common.ConsulMeta)

DefaultNamespaceFields sets the namespace field on spec.listeners[].services to their default values if namespaces are enabled.

func (*IngressGateway) Finalizers

func (in *IngressGateway) Finalizers() []string

func (*IngressGateway) GetObjectMeta

func (in *IngressGateway) GetObjectMeta() metav1.ObjectMeta

func (*IngressGateway) KubeKind

func (in *IngressGateway) KubeKind() string

func (*IngressGateway) KubernetesName

func (in *IngressGateway) KubernetesName() string

func (*IngressGateway) MatchesConsul

func (in *IngressGateway) MatchesConsul(candidate capi.ConfigEntry) bool

func (*IngressGateway) RemoveFinalizer

func (in *IngressGateway) RemoveFinalizer(name string)

func (*IngressGateway) SetLastSyncedTime

func (in *IngressGateway) SetLastSyncedTime(time *metav1.Time)

func (*IngressGateway) SetSyncedCondition

func (in *IngressGateway) SetSyncedCondition(status corev1.ConditionStatus, reason, message string)

func (*IngressGateway) SyncedCondition

func (in *IngressGateway) SyncedCondition() (status corev1.ConditionStatus, reason, message string)

func (*IngressGateway) SyncedConditionStatus

func (in *IngressGateway) SyncedConditionStatus() corev1.ConditionStatus

func (*IngressGateway) ToConsul

func (in *IngressGateway) ToConsul(datacenter string) capi.ConfigEntry

func (*IngressGateway) Validate

func (in *IngressGateway) Validate(consulMeta common.ConsulMeta) error

type IngressGatewayList

type IngressGatewayList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []IngressGateway `json:"items"`
}

IngressGatewayList contains a list of IngressGateway.

func (*IngressGatewayList) DeepCopy

func (in *IngressGatewayList) DeepCopy() *IngressGatewayList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressGatewayList.

func (*IngressGatewayList) DeepCopyInto

func (in *IngressGatewayList) DeepCopyInto(out *IngressGatewayList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*IngressGatewayList) DeepCopyObject

func (in *IngressGatewayList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type IngressGatewaySpec

type IngressGatewaySpec struct {
	// TLS holds the TLS configuration for this gateway.
	TLS GatewayTLSConfig `json:"tls,omitempty"`
	// Listeners declares what ports the ingress gateway should listen on, and
	// what services to associated to those ports.
	Listeners []IngressListener `json:"listeners,omitempty"`

	// Defaults is default configuration for all upstream services
	Defaults *IngressServiceConfig `json:"defaults,omitempty"`
}

IngressGatewaySpec defines the desired state of IngressGateway.

func (*IngressGatewaySpec) DeepCopy

func (in *IngressGatewaySpec) DeepCopy() *IngressGatewaySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressGatewaySpec.

func (*IngressGatewaySpec) DeepCopyInto

func (in *IngressGatewaySpec) DeepCopyInto(out *IngressGatewaySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IngressGatewayWebhook

type IngressGatewayWebhook struct {
	Logger logr.Logger

	// ConsulMeta contains metadata specific to the Consul installation.
	ConsulMeta common.ConsulMeta

	client.Client
	// contains filtered or unexported fields
}

func (*IngressGatewayWebhook) Handle

func (*IngressGatewayWebhook) List

func (*IngressGatewayWebhook) SetupWithManager

func (v *IngressGatewayWebhook) SetupWithManager(mgr ctrl.Manager)

type IngressListener

type IngressListener struct {
	// Port declares the port on which the ingress gateway should listen for traffic.
	Port int `json:"port,omitempty"`
	// Protocol declares what type of traffic this listener is expected to
	// receive. Depending on the protocol, a listener might support multiplexing
	// services over a single port, or additional discovery chain features. The
	// current supported values are: (tcp | http | http2 | grpc).
	Protocol string `json:"protocol,omitempty"`
	// TLS config for this listener.
	TLS *GatewayTLSConfig `json:"tls,omitempty"`
	// Services declares the set of services to which the listener forwards
	// traffic.
	// For "tcp" protocol listeners, only a single service is allowed.
	// For "http" listeners, multiple services can be declared.
	Services []IngressService `json:"services,omitempty"`
}

IngressListener manages the configuration for a listener on a specific port.

func (*IngressListener) DeepCopy

func (in *IngressListener) DeepCopy() *IngressListener

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressListener.

func (*IngressListener) DeepCopyInto

func (in *IngressListener) DeepCopyInto(out *IngressListener)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IngressService

type IngressService struct {
	// Name declares the service to which traffic should be forwarded.
	//
	// This can either be a specific service, or the wildcard specifier,
	// "*". If the wildcard specifier is provided, the listener must be of "http"
	// protocol and means that the listener will forward traffic to all services.
	//
	// A name can be specified on multiple listeners, and will be exposed on both
	// of the listeners.
	Name string `json:"name,omitempty"`
	// Hosts is a list of hostnames which should be associated to this service on
	// the defined listener. Only allowed on layer 7 protocols, this will be used
	// to route traffic to the service by matching the Host header of the HTTP
	// request.
	//
	// If a host is provided for a service that also has a wildcard specifier
	// defined, the host will override the wildcard-specifier-provided
	// "<service-name>.*" domain for that listener.
	//
	// This cannot be specified when using the wildcard specifier, "*", or when
	// using a "tcp" listener.
	Hosts []string `json:"hosts,omitempty"`
	// Namespace is the namespace where the service is located.
	// Namespacing is a Consul Enterprise feature.
	Namespace string `json:"namespace,omitempty"`
	// Partition is the admin-partition where the service is located.
	// Partitioning is a Consul Enterprise feature.
	Partition string `json:"partition,omitempty"`
	// TLS allows specifying some TLS configuration per listener.
	TLS *GatewayServiceTLSConfig `json:"tls,omitempty"`
	// Allow HTTP header manipulation to be configured.
	RequestHeaders  *HTTPHeaderModifiers `json:"requestHeaders,omitempty"`
	ResponseHeaders *HTTPHeaderModifiers `json:"responseHeaders,omitempty"`

	IngressServiceConfig `json:",inline"`
}

IngressService manages configuration for services that are exposed to ingress traffic.

func (*IngressService) DeepCopy

func (in *IngressService) DeepCopy() *IngressService

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressService.

func (*IngressService) DeepCopyInto

func (in *IngressService) DeepCopyInto(out *IngressService)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IngressServiceConfig

type IngressServiceConfig struct {
	// The maximum number of connections a service instance
	// will be allowed to establish against the given upstream. Use this to limit
	// HTTP/1.1 traffic, since HTTP/1.1 has a request per connection.
	MaxConnections *uint32 `json:"maxConnections,omitempty"`
	// The maximum number of requests that will be queued
	// while waiting for a connection to be established.
	MaxPendingRequests *uint32 `json:"maxPendingRequests,omitempty"`
	// The maximum number of concurrent requests that
	// will be allowed at a single point in time. Use this to limit HTTP/2 traffic,
	// since HTTP/2 has many requests per connection.
	MaxConcurrentRequests *uint32 `json:"maxConcurrentRequests,omitempty"`
	// PassiveHealthCheck configuration determines how upstream proxy instances will
	// be monitored for removal from the load balancing pool.
	PassiveHealthCheck *PassiveHealthCheck `json:"passiveHealthCheck,omitempty"`
}

func (*IngressServiceConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressServiceConfig.

func (*IngressServiceConfig) DeepCopyInto

func (in *IngressServiceConfig) DeepCopyInto(out *IngressServiceConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstanceLevelRateLimits

type InstanceLevelRateLimits struct {
	// RequestsPerSecond is the average number of requests per second that can be
	// made without being throttled. This field is required if RequestsMaxBurst
	// is set. The allowed number of requests may exceed RequestsPerSecond up to
	// the value specified in RequestsMaxBurst.
	//
	// Internally, this is the refill rate of the token bucket used for rate limiting.
	RequestsPerSecond int `json:"requestsPerSecond,omitempty"`

	// RequestsMaxBurst is the maximum number of requests that can be sent
	// in a burst. Should be equal to or greater than RequestsPerSecond.
	// If unset, defaults to RequestsPerSecond.
	//
	// Internally, this is the maximum size of the token bucket used for rate limiting.
	RequestsMaxBurst int `json:"requestsMaxBurst,omitempty"`

	// Routes is a list of rate limits applied to specific routes.
	// For a given request, the first matching route will be applied, if any.
	// Overrides any top-level configuration.
	Routes []InstanceLevelRouteRateLimits `json:"routes,omitempty"`
}

func (*InstanceLevelRateLimits) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceLevelRateLimits.

func (*InstanceLevelRateLimits) DeepCopyInto

func (in *InstanceLevelRateLimits) DeepCopyInto(out *InstanceLevelRateLimits)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstanceLevelRouteRateLimits

type InstanceLevelRouteRateLimits struct {
	// Exact path to match. Exactly one of PathExact, PathPrefix, or PathRegex must be specified.
	PathExact string `json:"pathExact,omitempty"`
	// Prefix to match. Exactly one of PathExact, PathPrefix, or PathRegex must be specified.
	PathPrefix string `json:"pathPrefix,omitempty"`
	// Regex to match. Exactly one of PathExact, PathPrefix, or PathRegex must be specified.
	PathRegex string `json:"pathRegex,omitempty"`

	// RequestsPerSecond is the average number of requests per
	// second that can be made without being throttled. This field is required
	// if RequestsMaxBurst is set. The allowed number of requests may exceed
	// RequestsPerSecond up to the value specified in RequestsMaxBurst.
	// Internally, this is the refill rate of the token bucket used for rate limiting.
	RequestsPerSecond int `json:"requestsPerSecond,omitempty"`

	// RequestsMaxBurst is the maximum number of requests that can be sent
	// in a burst. Should be equal to or greater than RequestsPerSecond. If unset,
	// defaults to RequestsPerSecond. Internally, this is the maximum size of the token
	// bucket used for rate limiting.
	RequestsMaxBurst int `json:"requestsMaxBurst,omitempty"`
}

func (*InstanceLevelRouteRateLimits) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceLevelRouteRateLimits.

func (*InstanceLevelRouteRateLimits) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IntentionAction

type IntentionAction string

IntentionAction is the action that the intention represents. This can be "allow" or "deny" to allowlist or denylist intentions.

type IntentionDestination

type IntentionDestination struct {
	// Name is the destination of all intentions defined in this config entry.
	// This may be set to the wildcard character (*) to match
	// all services that don't otherwise have intentions defined.
	Name string `json:"name,omitempty"`
	// Namespace specifies the namespace the config entry will apply to.
	// This may be set to the wildcard character (*) to match all services
	// in all namespaces that don't otherwise have intentions defined.
	Namespace string `json:"namespace,omitempty"`
}

func (*IntentionDestination) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IntentionDestination.

func (*IntentionDestination) DeepCopyInto

func (in *IntentionDestination) DeepCopyInto(out *IntentionDestination)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IntentionHTTPHeaderPermission

type IntentionHTTPHeaderPermission struct {
	// Name is the name of the header to match.
	Name string `json:"name,omitempty"`
	// Present matches if the header with the given name is present with any value.
	Present bool `json:"present,omitempty"`
	// Exact matches if the header with the given name is this value.
	Exact string `json:"exact,omitempty"`
	// Prefix matches if the header with the given name has this prefix.
	Prefix string `json:"prefix,omitempty"`
	// Suffix matches if the header with the given name has this suffix.
	Suffix string `json:"suffix,omitempty"`
	// Contains matches if the header with the given name contains this value.
	Contains string `json:"contains,omitempty"`
	// Regex matches if the header with the given name matches this pattern.
	Regex string `json:"regex,omitempty"`
	// IgnoreCase ignores the case of the header value when matching with exact, prefix, suffix, or contains.
	IgnoreCase bool `json:"ignoreCase,omitempty"`
	// Invert inverts the logic of the match.
	Invert bool `json:"invert,omitempty"`
}

func (*IntentionHTTPHeaderPermission) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IntentionHTTPHeaderPermission.

func (*IntentionHTTPHeaderPermission) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IntentionHTTPHeaderPermissions

type IntentionHTTPHeaderPermissions []IntentionHTTPHeaderPermission

func (IntentionHTTPHeaderPermissions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IntentionHTTPHeaderPermissions.

func (IntentionHTTPHeaderPermissions) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IntentionHTTPPermission

type IntentionHTTPPermission struct {
	// PathExact is the exact path to match on the HTTP request path.
	PathExact string `json:"pathExact,omitempty"`
	// PathPrefix is the path prefix to match on the HTTP request path.
	PathPrefix string `json:"pathPrefix,omitempty"`
	// PathRegex is the regular expression to match on the HTTP request path.
	PathRegex string `json:"pathRegex,omitempty"`
	// Header is a set of criteria that can match on HTTP request headers.
	// If more than one is configured all must match for the overall match to apply.
	Header IntentionHTTPHeaderPermissions `json:"header,omitempty"`
	// Methods is a list of HTTP methods for which this match applies. If unspecified
	// all HTTP methods are matched. If provided the names must be a valid method.
	Methods []string `json:"methods,omitempty"`
}

func (*IntentionHTTPPermission) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IntentionHTTPPermission.

func (*IntentionHTTPPermission) DeepCopyInto

func (in *IntentionHTTPPermission) DeepCopyInto(out *IntentionHTTPPermission)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IntentionJWTClaimVerification

type IntentionJWTClaimVerification struct {
	// Path is the path to the claim in the token JSON.
	Path []string `json:"path,omitempty"`

	// Value is the expected value at the given path. If the type at the path
	// is a list then we verify that this value is contained in the list. If
	// the type at the path is a string then we verify that this value matches.
	Value string `json:"value,omitempty"`
}

func (*IntentionJWTClaimVerification) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IntentionJWTClaimVerification.

func (*IntentionJWTClaimVerification) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IntentionJWTProvider

type IntentionJWTProvider struct {
	// Name is the name of the JWT provider. There MUST be a corresponding
	// "jwt-provider" config entry with this name.
	Name string `json:"name,omitempty"`

	// VerifyClaims is a list of additional claims to verify in a JWT's payload.
	VerifyClaims []*IntentionJWTClaimVerification `json:"verifyClaims,omitempty"`
}

func (*IntentionJWTProvider) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IntentionJWTProvider.

func (*IntentionJWTProvider) DeepCopyInto

func (in *IntentionJWTProvider) DeepCopyInto(out *IntentionJWTProvider)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IntentionJWTRequirement

type IntentionJWTRequirement struct {
	// Providers is a list of providers to consider when verifying a JWT.
	Providers []*IntentionJWTProvider `json:"providers,omitempty"`
}

func (*IntentionJWTRequirement) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IntentionJWTRequirement.

func (*IntentionJWTRequirement) DeepCopyInto

func (in *IntentionJWTRequirement) DeepCopyInto(out *IntentionJWTRequirement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IntentionPermission

type IntentionPermission struct {
	// Action is one of "allow" or "deny" for the action that
	// should be taken if this permission matches a request.
	Action IntentionAction `json:"action,omitempty"`
	// HTTP is a set of HTTP-specific authorization criteria.
	HTTP *IntentionHTTPPermission `json:"http,omitempty"`
	// JWT specifies configuration to validate a JSON Web Token for incoming requests.
	JWT *IntentionJWTRequirement `json:"jwt,omitempty"`
}

func (*IntentionPermission) DeepCopy

func (in *IntentionPermission) DeepCopy() *IntentionPermission

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IntentionPermission.

func (*IntentionPermission) DeepCopyInto

func (in *IntentionPermission) DeepCopyInto(out *IntentionPermission)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IntentionPermissions

type IntentionPermissions []*IntentionPermission

func (IntentionPermissions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IntentionPermissions.

func (IntentionPermissions) DeepCopyInto

func (in IntentionPermissions) DeepCopyInto(out *IntentionPermissions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JSONWebKeySet

type JSONWebKeySet struct {
	// Local specifies a local source for the key set.
	Local *LocalJWKS `json:"local,omitempty"`

	// Remote specifies how to fetch a key set from a remote server.
	Remote *RemoteJWKS `json:"remote,omitempty"`
}

JSONWebKeySet defines a key set, its location on disk, or the means with which to fetch a key set from a remote server.

Exactly one of Local or Remote must be specified.

func (*JSONWebKeySet) DeepCopy

func (in *JSONWebKeySet) DeepCopy() *JSONWebKeySet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JSONWebKeySet.

func (*JSONWebKeySet) DeepCopyInto

func (in *JSONWebKeySet) DeepCopyInto(out *JSONWebKeySet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWKSCluster

type JWKSCluster struct {
	// DiscoveryType refers to the service discovery type to use for resolving the cluster.
	//
	// This defaults to STRICT_DNS.
	// Other options include STATIC, LOGICAL_DNS, EDS or ORIGINAL_DST.
	DiscoveryType ClusterDiscoveryType `json:"discoveryType,omitempty"`

	// TLSCertificates refers to the data containing certificate authority certificates to use
	// in verifying a presented peer certificate.
	// If not specified and a peer certificate is presented it will not be verified.
	//
	// Must be either CaCertificateProviderInstance or TrustedCA.
	TLSCertificates *JWKSTLSCertificate `json:"tlsCertificates,omitempty"`

	// The timeout for new network connections to hosts in the cluster.
	// If not set, a default value of 5s will be used.
	ConnectTimeout metav1.Duration `json:"connectTimeout,omitempty"`
}

JWKSCluster defines how the specified Remote JWKS URI is to be fetched.

func (*JWKSCluster) DeepCopy

func (in *JWKSCluster) DeepCopy() *JWKSCluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWKSCluster.

func (*JWKSCluster) DeepCopyInto

func (in *JWKSCluster) DeepCopyInto(out *JWKSCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWKSRetryPolicy

type JWKSRetryPolicy struct {
	// NumRetries is the number of times to retry fetching the JWKS.
	// The retry strategy uses jittered exponential backoff with
	// a base interval of 1s and max of 10s.
	//
	// Default value is 0.
	NumRetries int `json:"numRetries,omitempty"`

	// Retry's backoff policy.
	//
	// Defaults to Envoy's backoff policy.
	RetryPolicyBackOff *RetryPolicyBackOff `json:"retryPolicyBackOff,omitempty"`
}

JWKSRetryPolicy defines a retry policy for fetching JWKS.

There is no retry by default.

func (*JWKSRetryPolicy) DeepCopy

func (in *JWKSRetryPolicy) DeepCopy() *JWKSRetryPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWKSRetryPolicy.

func (*JWKSRetryPolicy) DeepCopyInto

func (in *JWKSRetryPolicy) DeepCopyInto(out *JWKSRetryPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWKSTLSCertProviderInstance

type JWKSTLSCertProviderInstance struct {
	// InstanceName refers to the certificate provider instance name.
	//
	// The default value is "default".
	InstanceName string `json:"instanceName,omitempty"`

	// CertificateName is used to specify certificate instances or types. For example, "ROOTCA" to specify
	// a root-certificate (validation context) or "example.com" to specify a certificate for a
	// particular domain.
	//
	// The default value is the empty string.
	CertificateName string `json:"certificateName,omitempty"`
}

JWKSTLSCertProviderInstance Certificate provider instance for fetching TLS certificates.

func (*JWKSTLSCertProviderInstance) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWKSTLSCertProviderInstance.

func (*JWKSTLSCertProviderInstance) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWKSTLSCertTrustedCA

type JWKSTLSCertTrustedCA struct {
	Filename            string `json:"filename,omitempty"`
	EnvironmentVariable string `json:"environmentVariable,omitempty"`
	InlineString        string `json:"inlineString,omitempty"`
	InlineBytes         []byte `json:"inlineBytes,omitempty"`
}

JWKSTLSCertTrustedCA defines TLS certificate data containing certificate authority certificates to use in verifying a presented peer certificate.

Exactly one of Filename, EnvironmentVariable, InlineString or InlineBytes must be specified.

func (*JWKSTLSCertTrustedCA) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWKSTLSCertTrustedCA.

func (*JWKSTLSCertTrustedCA) DeepCopyInto

func (in *JWKSTLSCertTrustedCA) DeepCopyInto(out *JWKSTLSCertTrustedCA)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWKSTLSCertificate

type JWKSTLSCertificate struct {
	// CaCertificateProviderInstance Certificate provider instance for fetching TLS certificates.
	CaCertificateProviderInstance *JWKSTLSCertProviderInstance `json:"caCertificateProviderInstance,omitempty"`

	// TrustedCA defines TLS certificate data containing certificate authority certificates
	// to use in verifying a presented peer certificate.
	//
	// Exactly one of Filename, EnvironmentVariable, InlineString or InlineBytes must be specified.
	TrustedCA *JWKSTLSCertTrustedCA `json:"trustedCA,omitempty"`
}

JWKSTLSCertificate refers to the data containing certificate authority certificates to use in verifying a presented peer certificate. If not specified and a peer certificate is presented it will not be verified.

Must be either CaCertificateProviderInstance or TrustedCA.

func (*JWKSTLSCertificate) DeepCopy

func (in *JWKSTLSCertificate) DeepCopy() *JWKSTLSCertificate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWKSTLSCertificate.

func (*JWKSTLSCertificate) DeepCopyInto

func (in *JWKSTLSCertificate) DeepCopyInto(out *JWKSTLSCertificate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWTCacheConfig

type JWTCacheConfig struct {
	// Size specifies the maximum number of JWT verification
	// results to cache.
	//
	// Defaults to 0, meaning that JWT caching is disabled.
	Size int `json:"size,omitempty"`
}

func (*JWTCacheConfig) DeepCopy

func (in *JWTCacheConfig) DeepCopy() *JWTCacheConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTCacheConfig.

func (*JWTCacheConfig) DeepCopyInto

func (in *JWTCacheConfig) DeepCopyInto(out *JWTCacheConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWTForwardingConfig

type JWTForwardingConfig struct {
	// HeaderName is a header name to use when forwarding a verified
	// JWT to the backend. The verified JWT could have been extracted
	// from any location (query param, header, or cookie).
	//
	// The header value will be base64-URL-encoded, and will not be
	// padded unless PadForwardPayloadHeader is true.
	HeaderName string `json:"headerName,omitempty"`

	// PadForwardPayloadHeader determines whether padding should be added
	// to the base64 encoded token forwarded with ForwardPayloadHeader.
	//
	// Default value is false.
	PadForwardPayloadHeader bool `json:"padForwardPayloadHeader,omitempty"`
}

func (*JWTForwardingConfig) DeepCopy

func (in *JWTForwardingConfig) DeepCopy() *JWTForwardingConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTForwardingConfig.

func (*JWTForwardingConfig) DeepCopyInto

func (in *JWTForwardingConfig) DeepCopyInto(out *JWTForwardingConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWTLocation

type JWTLocation struct {
	// Header defines how to extract a JWT from an HTTP request header.
	Header *JWTLocationHeader `json:"header,omitempty"`

	// QueryParam defines how to extract a JWT from an HTTP request
	// query parameter.
	QueryParam *JWTLocationQueryParam `json:"queryParam,omitempty"`

	// Cookie defines how to extract a JWT from an HTTP request cookie.
	Cookie *JWTLocationCookie `json:"cookie,omitempty"`
}

JWTLocation is a location where the JWT could be present in requests.

Only one of Header, QueryParam, or Cookie can be specified.

func (*JWTLocation) DeepCopy

func (in *JWTLocation) DeepCopy() *JWTLocation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTLocation.

func (*JWTLocation) DeepCopyInto

func (in *JWTLocation) DeepCopyInto(out *JWTLocation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWTLocationCookie

type JWTLocationCookie struct {
	// Name is the name of the cookie containing the token.
	Name string `json:"name,omitempty"`
}

JWTLocationCookie defines how to extract a JWT from an HTTP request cookie.

func (*JWTLocationCookie) DeepCopy

func (in *JWTLocationCookie) DeepCopy() *JWTLocationCookie

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTLocationCookie.

func (*JWTLocationCookie) DeepCopyInto

func (in *JWTLocationCookie) DeepCopyInto(out *JWTLocationCookie)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWTLocationHeader

type JWTLocationHeader struct {
	// Name is the name of the header containing the token.
	Name string `json:"name,omitempty"`

	// ValuePrefix is an optional prefix that precedes the token in the
	// header value.
	// For example, "Bearer " is a standard value prefix for a header named
	// "Authorization", but the prefix is not part of the token itself:
	// "Authorization: Bearer <token>"
	ValuePrefix string `json:"valuePrefix,omitempty"`

	// Forward defines whether the header with the JWT should be
	// forwarded after the token has been verified. If false, the
	// header will not be forwarded to the backend.
	//
	// Default value is false.
	Forward bool `json:"forward,omitempty"`
}

JWTLocationHeader defines how to extract a JWT from an HTTP request header.

func (*JWTLocationHeader) DeepCopy

func (in *JWTLocationHeader) DeepCopy() *JWTLocationHeader

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTLocationHeader.

func (*JWTLocationHeader) DeepCopyInto

func (in *JWTLocationHeader) DeepCopyInto(out *JWTLocationHeader)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWTLocationQueryParam

type JWTLocationQueryParam struct {
	// Name is the name of the query param containing the token.
	Name string `json:"name,omitempty"`
}

JWTLocationQueryParam defines how to extract a JWT from an HTTP request query parameter.

func (*JWTLocationQueryParam) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTLocationQueryParam.

func (*JWTLocationQueryParam) DeepCopyInto

func (in *JWTLocationQueryParam) DeepCopyInto(out *JWTLocationQueryParam)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWTLocations

type JWTLocations []*JWTLocation

func (JWTLocations) DeepCopy

func (in JWTLocations) DeepCopy() JWTLocations

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTLocations.

func (JWTLocations) DeepCopyInto

func (in JWTLocations) DeepCopyInto(out *JWTLocations)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWTProvider

type JWTProvider struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              JWTProviderSpec `json:"spec,omitempty"`
	Status            `json:"status,omitempty"`
}

JWTProvider is the Schema for the jwtproviders API.

func (*JWTProvider) AddFinalizer

func (j *JWTProvider) AddFinalizer(name string)

func (*JWTProvider) ConsulGlobalResource

func (j *JWTProvider) ConsulGlobalResource() bool

func (*JWTProvider) ConsulKind

func (j *JWTProvider) ConsulKind() string

func (*JWTProvider) ConsulMirroringNS

func (j *JWTProvider) ConsulMirroringNS() string

func (*JWTProvider) ConsulName

func (j *JWTProvider) ConsulName() string

func (*JWTProvider) DeepCopy

func (in *JWTProvider) DeepCopy() *JWTProvider

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTProvider.

func (*JWTProvider) DeepCopyInto

func (in *JWTProvider) DeepCopyInto(out *JWTProvider)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*JWTProvider) DeepCopyObject

func (in *JWTProvider) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*JWTProvider) DefaultNamespaceFields

func (j *JWTProvider) DefaultNamespaceFields(_ common.ConsulMeta)

DefaultNamespaceFields sets Consul namespace fields on the config entry spec to their default values if namespaces are enabled.

func (*JWTProvider) Finalizers

func (j *JWTProvider) Finalizers() []string

func (*JWTProvider) GetObjectMeta

func (j *JWTProvider) GetObjectMeta() metav1.ObjectMeta

func (*JWTProvider) KubeKind

func (j *JWTProvider) KubeKind() string

func (*JWTProvider) KubernetesName

func (j *JWTProvider) KubernetesName() string

func (*JWTProvider) MatchesConsul

func (j *JWTProvider) MatchesConsul(candidate api.ConfigEntry) bool

MatchesConsul returns true if the resource has the same fields as the Consul config entry.

func (*JWTProvider) RemoveFinalizer

func (j *JWTProvider) RemoveFinalizer(name string)

func (*JWTProvider) SetLastSyncedTime

func (j *JWTProvider) SetLastSyncedTime(time *metav1.Time)

func (*JWTProvider) SetSyncedCondition

func (j *JWTProvider) SetSyncedCondition(status corev1.ConditionStatus, reason, message string)

func (*JWTProvider) SyncedCondition

func (j *JWTProvider) SyncedCondition() (status corev1.ConditionStatus, reason, message string)

SyncedCondition gets the synced condition.

func (*JWTProvider) SyncedConditionStatus

func (j *JWTProvider) SyncedConditionStatus() corev1.ConditionStatus

SyncedConditionStatus returns the status of the synced condition.

func (*JWTProvider) ToConsul

func (j *JWTProvider) ToConsul(datacenter string) api.ConfigEntry

ToConsul converts the resource to the corresponding Consul API definition. Its return type is the generic ConfigEntry but a specific config entry type should be constructed e.g. ServiceConfigEntry.

func (*JWTProvider) Validate

func (j *JWTProvider) Validate(consulMeta common.ConsulMeta) error

Validate returns an error if the resource is invalid.

type JWTProviderList

type JWTProviderList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []JWTProvider `json:"items"`
}

JWTProviderList contains a list of JWTProvider.

func (*JWTProviderList) DeepCopy

func (in *JWTProviderList) DeepCopy() *JWTProviderList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTProviderList.

func (*JWTProviderList) DeepCopyInto

func (in *JWTProviderList) DeepCopyInto(out *JWTProviderList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*JWTProviderList) DeepCopyObject

func (in *JWTProviderList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type JWTProviderSpec

type JWTProviderSpec struct {

	// JSONWebKeySet defines a JSON Web Key Set, its location on disk, or the
	// means with which to fetch a key set from a remote server.
	JSONWebKeySet *JSONWebKeySet `json:"jsonWebKeySet,omitempty"`

	// Issuer is the entity that must have issued the JWT.
	// This value must match the "iss" claim of the token.
	Issuer string `json:"issuer,omitempty"`

	// Audiences is the set of audiences the JWT is allowed to access.
	// If specified, all JWTs verified with this provider must address
	// at least one of these to be considered valid.
	Audiences []string `json:"audiences,omitempty"`

	// Locations where the JWT will be present in requests.
	// Envoy will check all of these locations to extract a JWT.
	// If no locations are specified Envoy will default to:
	// 1. Authorization header with Bearer schema:
	//    "Authorization: Bearer <token>"
	// 2. accessToken query parameter.
	Locations []*JWTLocation `json:"locations,omitempty"`

	// Forwarding defines rules for forwarding verified JWTs to the backend.
	Forwarding *JWTForwardingConfig `json:"forwarding,omitempty"`

	// ClockSkewSeconds specifies the maximum allowable time difference
	// from clock skew when validating the "exp" (Expiration) and "nbf"
	// (Not Before) claims.
	//
	// Default value is 30 seconds.
	ClockSkewSeconds int `json:"clockSkewSeconds,omitempty"`

	// CacheConfig defines configuration for caching the validation
	// result for previously seen JWTs. Caching results can speed up
	// verification when individual tokens are expected to be handled
	// multiple times.
	CacheConfig *JWTCacheConfig `json:"cacheConfig,omitempty"`
}

JWTProviderSpec defines the desired state of JWTProvider +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource"

func (*JWTProviderSpec) DeepCopy

func (in *JWTProviderSpec) DeepCopy() *JWTProviderSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTProviderSpec.

func (*JWTProviderSpec) DeepCopyInto

func (in *JWTProviderSpec) DeepCopyInto(out *JWTProviderSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type JWTProviderWebhook

type JWTProviderWebhook struct {
	Logger logr.Logger

	// ConsulMeta contains metadata specific to the Consul installation.
	ConsulMeta common.ConsulMeta

	client.Client
	// contains filtered or unexported fields
}

func (*JWTProviderWebhook) Handle

func (*JWTProviderWebhook) List

func (*JWTProviderWebhook) SetupWithManager

func (v *JWTProviderWebhook) SetupWithManager(mgr ctrl.Manager)

type LeastRequestConfig

type LeastRequestConfig struct {
	// ChoiceCount determines the number of random healthy hosts from which to select the one with the least requests.
	ChoiceCount uint32 `json:"choiceCount,omitempty"`
}

func (*LeastRequestConfig) DeepCopy

func (in *LeastRequestConfig) DeepCopy() *LeastRequestConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeastRequestConfig.

func (*LeastRequestConfig) DeepCopyInto

func (in *LeastRequestConfig) DeepCopyInto(out *LeastRequestConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LinkedService

type LinkedService struct {
	// The namespace the service is registered in.
	Namespace string `json:"namespace,omitempty"`

	// Name is the name of the service, as defined in Consul's catalog.
	Name string `json:"name,omitempty"`

	// CAFile is the optional path to a CA certificate to use for TLS connections
	// from the gateway to the linked service.
	CAFile string `json:"caFile,omitempty"`

	// CertFile is the optional path to a client certificate to use for TLS connections
	// from the gateway to the linked service.
	CertFile string `json:"certFile,omitempty"`

	// KeyFile is the optional path to a private key to use for TLS connections
	// from the gateway to the linked service.
	KeyFile string `json:"keyFile,omitempty"`

	// SNI is the optional name to specify during the TLS handshake with a linked service.
	SNI string `json:"sni,omitempty"`

	// DisableAutoHostRewrite disables terminating gateways auto host rewrite feature when set to true.
	DisableAutoHostRewrite bool `json:"disableAutoHostRewrite,omitempty"`
}

A LinkedService is a service represented by a terminating gateway.

func (*LinkedService) DeepCopy

func (in *LinkedService) DeepCopy() *LinkedService

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinkedService.

func (*LinkedService) DeepCopyInto

func (in *LinkedService) DeepCopyInto(out *LinkedService)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (LinkedService) NamespaceName

func (l LinkedService) NamespaceName() string

type LoadBalancer

type LoadBalancer struct {
	// Policy is the load balancing policy used to select a host.
	Policy string `json:"policy,omitempty"`

	// RingHashConfig contains configuration for the "ringHash" policy type.
	RingHashConfig *RingHashConfig `json:"ringHashConfig,omitempty"`

	// LeastRequestConfig contains configuration for the "leastRequest" policy type.
	LeastRequestConfig *LeastRequestConfig `json:"leastRequestConfig,omitempty"`

	// HashPolicies is a list of hash policies to use for hashing load balancing algorithms.
	// Hash policies are evaluated individually and combined such that identical lists
	// result in the same hash.
	// If no hash policies are present, or none are successfully evaluated,
	// then a random backend host will be selected.
	HashPolicies []HashPolicy `json:"hashPolicies,omitempty"`
}

func (*LoadBalancer) DeepCopy

func (in *LoadBalancer) DeepCopy() *LoadBalancer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancer.

func (*LoadBalancer) DeepCopyInto

func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LocalJWKS

type LocalJWKS struct {
	// JWKS contains a base64 encoded JWKS.
	JWKS string `json:"jwks,omitempty"`

	// Filename configures a location on disk where the JWKS can be
	// found. If specified, the file must be present on the disk of ALL
	// proxies with intentions referencing this provider.
	Filename string `json:"filename,omitempty"`
}

LocalJWKS specifies a location for a local JWKS.

Only one of String and Filename can be specified.

func (*LocalJWKS) DeepCopy

func (in *LocalJWKS) DeepCopy() *LocalJWKS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalJWKS.

func (*LocalJWKS) DeepCopyInto

func (in *LocalJWKS) DeepCopyInto(out *LocalJWKS)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Locality

type Locality struct {
	Region string `json:"region,omitempty"`
	Zone   string `json:"zone,omitempty"`
}

func (*Locality) DeepCopy

func (in *Locality) DeepCopy() *Locality

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Locality.

func (*Locality) DeepCopyInto

func (in *Locality) DeepCopyInto(out *Locality)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Locality) Equal

func (l *Locality) Equal(other *Locality) bool

type LogSinkType

type LogSinkType string

LogSinkType represents the destination for Envoy access logs. One of "file", "stderr", or "stdout".

const (
	DefaultLogSinkType LogSinkType = ""
	FileLogSinkType    LogSinkType = "file"
	StdErrLogSinkType  LogSinkType = "stderr"
	StdOutLogSinkType  LogSinkType = "stdout"
)

type Mesh

type Mesh struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   MeshSpec `json:"spec,omitempty"`
	Status `json:"status,omitempty"`
}

Mesh is the Schema for the mesh API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource"

func (*Mesh) AddFinalizer

func (in *Mesh) AddFinalizer(name string)

func (*Mesh) ConsulGlobalResource

func (in *Mesh) ConsulGlobalResource() bool

func (*Mesh) ConsulKind

func (in *Mesh) ConsulKind() string

func (*Mesh) ConsulMirroringNS

func (in *Mesh) ConsulMirroringNS() string

func (*Mesh) ConsulName

func (in *Mesh) ConsulName() string

func (*Mesh) DeepCopy

func (in *Mesh) DeepCopy() *Mesh

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Mesh.

func (*Mesh) DeepCopyInto

func (in *Mesh) DeepCopyInto(out *Mesh)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Mesh) DeepCopyObject

func (in *Mesh) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Mesh) DefaultNamespaceFields

func (in *Mesh) DefaultNamespaceFields(_ common.ConsulMeta)

DefaultNamespaceFields has no behaviour here as meshes have no namespace specific fields.

func (*Mesh) Finalizers

func (in *Mesh) Finalizers() []string

func (*Mesh) GetObjectMeta

func (in *Mesh) GetObjectMeta() metav1.ObjectMeta

func (*Mesh) KubeKind

func (in *Mesh) KubeKind() string

func (*Mesh) KubernetesName

func (in *Mesh) KubernetesName() string

func (*Mesh) MatchesConsul

func (in *Mesh) MatchesConsul(candidate capi.ConfigEntry) bool

func (*Mesh) RemoveFinalizer

func (in *Mesh) RemoveFinalizer(name string)

func (*Mesh) SetLastSyncedTime

func (in *Mesh) SetLastSyncedTime(time *metav1.Time)

func (*Mesh) SetSyncedCondition

func (in *Mesh) SetSyncedCondition(status corev1.ConditionStatus, reason string, message string)

func (*Mesh) SyncedCondition

func (in *Mesh) SyncedCondition() (status corev1.ConditionStatus, reason, message string)

func (*Mesh) SyncedConditionStatus

func (in *Mesh) SyncedConditionStatus() corev1.ConditionStatus

func (*Mesh) ToConsul

func (in *Mesh) ToConsul(datacenter string) capi.ConfigEntry

func (*Mesh) Validate

func (in *Mesh) Validate(consulMeta common.ConsulMeta) error

type MeshDirectionalHTTPConfig

type MeshDirectionalHTTPConfig struct {
	RequestNormalization *RequestNormalizationMeshConfig `json:"requestNormalization,omitempty"`
}

MeshDirectionalHTTPConfig holds mesh configuration specific to HTTP requests for a given traffic direction.

type MeshDirectionalTLSConfig

type MeshDirectionalTLSConfig struct {
	// TLSMinVersion sets the default minimum TLS version supported.
	// One of `TLS_AUTO`, `TLSv1_0`, `TLSv1_1`, `TLSv1_2`, or `TLSv1_3`.
	// If unspecified, Envoy v1.22.0 and newer will default to TLS 1.2 as a min version,
	// while older releases of Envoy default to TLS 1.0.
	TLSMinVersion string `json:"tlsMinVersion,omitempty"`
	// TLSMaxVersion sets the default maximum TLS version supported. Must be greater than or equal to `TLSMinVersion`.
	// One of `TLS_AUTO`, `TLSv1_0`, `TLSv1_1`, `TLSv1_2`, or `TLSv1_3`.
	// If unspecified, Envoy will default to TLS 1.3 as a max version for incoming connections.
	TLSMaxVersion string `json:"tlsMaxVersion,omitempty"`
	// CipherSuites sets the default list of TLS cipher suites to support when negotiating connections using TLS 1.2 or earlier.
	// If unspecified, Envoy will use a default server cipher list. The list of supported cipher suites can be seen in
	// https://github.com/hashicorp/consul/blob/v1.11.2/types/tls.go#L154-L169 and is dependent on underlying support in Envoy.
	// Future releases of Envoy may remove currently-supported but insecure cipher suites,
	// and future releases of Consul may add new supported cipher suites if any are added to Envoy.
	CipherSuites []string `json:"cipherSuites,omitempty"`
}

func (*MeshDirectionalTLSConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeshDirectionalTLSConfig.

func (*MeshDirectionalTLSConfig) DeepCopyInto

func (in *MeshDirectionalTLSConfig) DeepCopyInto(out *MeshDirectionalTLSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MeshGateway

type MeshGateway struct {
	// Mode is the mode that should be used for the upstream connection.
	// One of none, local, or remote.
	Mode string `json:"mode,omitempty"`
}

MeshGateway controls how Mesh Gateways are used for upstream Connect services.

func (*MeshGateway) DeepCopy

func (in *MeshGateway) DeepCopy() *MeshGateway

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeshGateway.

func (*MeshGateway) DeepCopyInto

func (in *MeshGateway) DeepCopyInto(out *MeshGateway)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MeshGatewayMode

type MeshGatewayMode string

type MeshHTTPConfig

type MeshHTTPConfig struct {
	SanitizeXForwardedClientCert bool `json:"sanitizeXForwardedClientCert,omitempty"`
	// Incoming configures settings for incoming HTTP traffic to mesh proxies.
	Incoming *MeshDirectionalHTTPConfig `json:"incoming,omitempty"`
}

func (*MeshHTTPConfig) DeepCopy

func (in *MeshHTTPConfig) DeepCopy() *MeshHTTPConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeshHTTPConfig.

func (*MeshHTTPConfig) DeepCopyInto

func (in *MeshHTTPConfig) DeepCopyInto(out *MeshHTTPConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MeshList

type MeshList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Mesh `json:"items"`
}

MeshList contains a list of Mesh.

func (*MeshList) DeepCopy

func (in *MeshList) DeepCopy() *MeshList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeshList.

func (*MeshList) DeepCopyInto

func (in *MeshList) DeepCopyInto(out *MeshList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MeshList) DeepCopyObject

func (in *MeshList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type MeshService

type MeshService struct {
	metav1.TypeMeta `json:",inline"`
	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec defines the desired state of MeshService.
	Spec MeshServiceSpec `json:"spec,omitempty"`
}

MeshService holds a reference to an externally managed Consul Service Mesh service.

func (*MeshService) DeepCopy

func (in *MeshService) DeepCopy() *MeshService

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeshService.

func (*MeshService) DeepCopyInto

func (in *MeshService) DeepCopyInto(out *MeshService)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MeshService) DeepCopyObject

func (in *MeshService) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type MeshServiceList

type MeshServiceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	Items []MeshService `json:"items"`
}

MeshServiceList is a list of MeshService resources.

func (*MeshServiceList) DeepCopy

func (in *MeshServiceList) DeepCopy() *MeshServiceList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeshServiceList.

func (*MeshServiceList) DeepCopyInto

func (in *MeshServiceList) DeepCopyInto(out *MeshServiceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MeshServiceList) DeepCopyObject

func (in *MeshServiceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type MeshServiceSpec

type MeshServiceSpec struct {
	// Name holds the service name for a Consul service.
	Name string `json:"name,omitempty"`
	// Peer optionally specifies the name of the peer exporting the Consul service.
	// If not specified, the Consul service is assumed to be in the local datacenter.
	Peer *string `json:"peer,omitempty"`
}

MeshServiceSpec specifies the 'spec' of the MeshService CRD.

func (*MeshServiceSpec) DeepCopy

func (in *MeshServiceSpec) DeepCopy() *MeshServiceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeshServiceSpec.

func (*MeshServiceSpec) DeepCopyInto

func (in *MeshServiceSpec) DeepCopyInto(out *MeshServiceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MeshSpec

type MeshSpec struct {
	// TransparentProxy controls the configuration specific to proxies in "transparent" mode. Added in v1.10.0.
	TransparentProxy TransparentProxyMeshConfig `json:"transparentProxy,omitempty"`
	// AllowEnablingPermissiveMutualTLS must be true in order to allow setting
	// MutualTLSMode=permissive in either service-defaults or proxy-defaults.
	AllowEnablingPermissiveMutualTLS bool `json:"allowEnablingPermissiveMutualTLS,omitempty"`
	// TLS defines the TLS configuration for the service mesh.
	TLS *MeshTLSConfig `json:"tls,omitempty"`
	// HTTP defines the HTTP configuration for the service mesh.
	HTTP *MeshHTTPConfig `json:"http,omitempty"`
	// Peering defines the peering configuration for the service mesh.
	Peering *PeeringMeshConfig `json:"peering,omitempty"`
	// ValidateClusters controls whether the clusters the route table refers to are validated. The default value is
	// false. When set to false and a route refers to a cluster that does not exist, the route table loads and routing
	// to a non-existent cluster results in a 404. When set to true and the route is set to a cluster that do not exist,
	// the route table will not load. For more information, refer to
	// [HTTP route configuration in the Envoy docs](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route.proto#envoy-v3-api-field-config-route-v3-routeconfiguration-validate-clusters)
	// for more details.
	ValidateClusters bool `json:"validateClusters,omitempty"`
}

MeshSpec defines the desired state of Mesh.

func (*MeshSpec) DeepCopy

func (in *MeshSpec) DeepCopy() *MeshSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeshSpec.

func (*MeshSpec) DeepCopyInto

func (in *MeshSpec) DeepCopyInto(out *MeshSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MeshTLSConfig

type MeshTLSConfig struct {
	// Incoming defines the TLS configuration for inbound mTLS connections targeting
	// the public listener on Connect and TerminatingGateway proxy kinds.
	Incoming *MeshDirectionalTLSConfig `json:"incoming,omitempty"`
	// Outgoing defines the TLS configuration for outbound mTLS connections dialing upstreams
	// from Connect and IngressGateway proxy kinds.
	Outgoing *MeshDirectionalTLSConfig `json:"outgoing,omitempty"`
}

func (*MeshTLSConfig) DeepCopy

func (in *MeshTLSConfig) DeepCopy() *MeshTLSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MeshTLSConfig.

func (*MeshTLSConfig) DeepCopyInto

func (in *MeshTLSConfig) DeepCopyInto(out *MeshTLSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MeshWebhook

type MeshWebhook struct {
	client.Client
	Logger logr.Logger

	// ConsulMeta contains metadata specific to the Consul installation.
	ConsulMeta common.ConsulMeta
	// contains filtered or unexported fields
}

func (*MeshWebhook) Handle

func (*MeshWebhook) List

func (*MeshWebhook) SetupWithManager

func (v *MeshWebhook) SetupWithManager(mgr ctrl.Manager)

type MetricsSpec

type MetricsSpec struct {
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:Minimum=1024
	// The port used for metrics.
	Port *int32 `json:"port,omitempty"`

	// The path used for metrics.
	Path *string `json:"path,omitempty"`

	// Enable metrics for this class of gateways. If unspecified, will inherit
	// behavior from the global Helm configuration.
	Enabled *bool `json:"enabled,omitempty"`
}

func (*MetricsSpec) DeepCopy

func (in *MetricsSpec) DeepCopy() *MetricsSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSpec.

func (*MetricsSpec) DeepCopyInto

func (in *MetricsSpec) DeepCopyInto(out *MetricsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MutualTLSMode

type MutualTLSMode string
const (
	// MutualTLSModeDefault represents no specific mode and should
	// be used to indicate that a different layer of the configuration
	// chain should take precedence.
	MutualTLSModeDefault MutualTLSMode = ""

	// MutualTLSModeStrict requires mTLS for incoming traffic.
	MutualTLSModeStrict MutualTLSMode = "strict"

	// MutualTLSModePermissive allows incoming non-mTLS traffic.
	MutualTLSModePermissive MutualTLSMode = "permissive"
)

type PassiveHealthCheck

type PassiveHealthCheck struct {
	// Interval between health check analysis sweeps. Each sweep may remove
	// hosts or return hosts to the pool. Ex. setting this to "10s" will set
	// the interval to 10 seconds.
	Interval metav1.Duration `json:"interval,omitempty"`
	// MaxFailures is the count of consecutive failures that results in a host
	// being removed from the pool.
	MaxFailures uint32 `json:"maxFailures,omitempty"`
	// EnforcingConsecutive5xx is the % chance that a host will be actually ejected
	// when an outlier status is detected through consecutive 5xx.
	// This setting can be used to disable ejection or to ramp it up slowly.
	// Ex. Setting this to 10 will make it a 10% chance that the host will be ejected.
	EnforcingConsecutive5xx *uint32 `json:"enforcingConsecutive5xx,omitempty"`
	// The maximum % of an upstream cluster that can be ejected due to outlier detection.
	// Defaults to 10% but will eject at least one host regardless of the value.
	MaxEjectionPercent *uint32 `json:"maxEjectionPercent,omitempty"`
	// The base time that a host is ejected for. The real time is equal to the base time
	// multiplied by the number of times the host has been ejected and is capped by
	// max_ejection_time (Default 300s). Defaults to 30s.
	BaseEjectionTime *metav1.Duration `json:"baseEjectionTime,omitempty"`
}

PassiveHealthCheck configuration determines how upstream proxy instances will be monitored for removal from the load balancing pool.

func (*PassiveHealthCheck) DeepCopy

func (in *PassiveHealthCheck) DeepCopy() *PassiveHealthCheck

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PassiveHealthCheck.

func (*PassiveHealthCheck) DeepCopyInto

func (in *PassiveHealthCheck) DeepCopyInto(out *PassiveHealthCheck)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Peer

type Peer struct {
	// Secret describes how to store the generated peering token.
	Secret *Secret `json:"secret,omitempty"`
}

func (*Peer) DeepCopy

func (in *Peer) DeepCopy() *Peer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Peer.

func (*Peer) DeepCopyInto

func (in *Peer) DeepCopyInto(out *Peer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeringAcceptor

type PeeringAcceptor struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PeeringAcceptorSpec   `json:"spec,omitempty"`
	Status PeeringAcceptorStatus `json:"status,omitempty"`
}

PeeringAcceptor is the Schema for the peeringacceptors API. +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource" +kubebuilder:resource:shortName="peering-acceptor"

func (*PeeringAcceptor) DeepCopy

func (in *PeeringAcceptor) DeepCopy() *PeeringAcceptor

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringAcceptor.

func (*PeeringAcceptor) DeepCopyInto

func (in *PeeringAcceptor) DeepCopyInto(out *PeeringAcceptor)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PeeringAcceptor) DeepCopyObject

func (in *PeeringAcceptor) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*PeeringAcceptor) KubeKind

func (pa *PeeringAcceptor) KubeKind() string

func (*PeeringAcceptor) KubernetesName

func (pa *PeeringAcceptor) KubernetesName() string

func (*PeeringAcceptor) Secret

func (pa *PeeringAcceptor) Secret() *Secret

func (*PeeringAcceptor) SecretRef

func (pa *PeeringAcceptor) SecretRef() *SecretRefStatus

func (*PeeringAcceptor) SetSyncedCondition

func (pa *PeeringAcceptor) SetSyncedCondition(status corev1.ConditionStatus, reason string, message string)

func (*PeeringAcceptor) Validate

func (pa *PeeringAcceptor) Validate() error

type PeeringAcceptorList

type PeeringAcceptorList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PeeringAcceptor `json:"items"`
}

PeeringAcceptorList contains a list of PeeringAcceptor.

func (*PeeringAcceptorList) DeepCopy

func (in *PeeringAcceptorList) DeepCopy() *PeeringAcceptorList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringAcceptorList.

func (*PeeringAcceptorList) DeepCopyInto

func (in *PeeringAcceptorList) DeepCopyInto(out *PeeringAcceptorList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PeeringAcceptorList) DeepCopyObject

func (in *PeeringAcceptorList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PeeringAcceptorSpec

type PeeringAcceptorSpec struct {
	// Peer describes the information needed to create a peering.
	Peer *Peer `json:"peer"`
}

PeeringAcceptorSpec defines the desired state of PeeringAcceptor.

func (*PeeringAcceptorSpec) DeepCopy

func (in *PeeringAcceptorSpec) DeepCopy() *PeeringAcceptorSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringAcceptorSpec.

func (*PeeringAcceptorSpec) DeepCopyInto

func (in *PeeringAcceptorSpec) DeepCopyInto(out *PeeringAcceptorSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeringAcceptorStatus

type PeeringAcceptorStatus struct {
	// LatestPeeringVersion is the latest version of the resource that was reconciled.
	LatestPeeringVersion *uint64 `json:"latestPeeringVersion,omitempty"`
	// SecretRef shows the status of the secret.
	// +optional
	SecretRef *SecretRefStatus `json:"secret,omitempty"`
	// Conditions indicate the latest available observations of a resource's current state.
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	Conditions Conditions `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
	// LastSyncedTime is the last time the resource successfully synced with Consul.
	// +optional
	LastSyncedTime *metav1.Time `json:"lastSyncedTime,omitempty" description:"last time the condition transitioned from one status to another"`
}

PeeringAcceptorStatus defines the observed state of PeeringAcceptor.

func (*PeeringAcceptorStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringAcceptorStatus.

func (*PeeringAcceptorStatus) DeepCopyInto

func (in *PeeringAcceptorStatus) DeepCopyInto(out *PeeringAcceptorStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeringAcceptorWebhook

type PeeringAcceptorWebhook struct {
	client.Client
	Logger logr.Logger
	// contains filtered or unexported fields
}

func (*PeeringAcceptorWebhook) Handle

func (*PeeringAcceptorWebhook) SetupWithManager

func (v *PeeringAcceptorWebhook) SetupWithManager(mgr ctrl.Manager)

type PeeringDialer

type PeeringDialer struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   PeeringDialerSpec   `json:"spec,omitempty"`
	Status PeeringDialerStatus `json:"status,omitempty"`
}

PeeringDialer is the Schema for the peeringdialers API. +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource" +kubebuilder:resource:shortName="peering-dialer"

func (*PeeringDialer) DeepCopy

func (in *PeeringDialer) DeepCopy() *PeeringDialer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringDialer.

func (*PeeringDialer) DeepCopyInto

func (in *PeeringDialer) DeepCopyInto(out *PeeringDialer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PeeringDialer) DeepCopyObject

func (in *PeeringDialer) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*PeeringDialer) KubeKind

func (pd *PeeringDialer) KubeKind() string

func (*PeeringDialer) KubernetesName

func (pd *PeeringDialer) KubernetesName() string

func (*PeeringDialer) Secret

func (pd *PeeringDialer) Secret() *Secret

func (*PeeringDialer) SecretRef

func (pd *PeeringDialer) SecretRef() *SecretRefStatus

func (*PeeringDialer) SetSyncedCondition

func (pd *PeeringDialer) SetSyncedCondition(status corev1.ConditionStatus, reason string, message string)

func (*PeeringDialer) Validate

func (pd *PeeringDialer) Validate() error

type PeeringDialerList

type PeeringDialerList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PeeringDialer `json:"items"`
}

PeeringDialerList contains a list of PeeringDialer.

func (*PeeringDialerList) DeepCopy

func (in *PeeringDialerList) DeepCopy() *PeeringDialerList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringDialerList.

func (*PeeringDialerList) DeepCopyInto

func (in *PeeringDialerList) DeepCopyInto(out *PeeringDialerList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PeeringDialerList) DeepCopyObject

func (in *PeeringDialerList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type PeeringDialerSpec

type PeeringDialerSpec struct {
	// Peer describes the information needed to create a peering.
	Peer *Peer `json:"peer"`
}

PeeringDialerSpec defines the desired state of PeeringDialer.

func (*PeeringDialerSpec) DeepCopy

func (in *PeeringDialerSpec) DeepCopy() *PeeringDialerSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringDialerSpec.

func (*PeeringDialerSpec) DeepCopyInto

func (in *PeeringDialerSpec) DeepCopyInto(out *PeeringDialerSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeringDialerStatus

type PeeringDialerStatus struct {
	// LatestPeeringVersion is the latest version of the resource that was reconciled.
	LatestPeeringVersion *uint64 `json:"latestPeeringVersion,omitempty"`
	// SecretRef shows the status of the secret.
	// +optional
	SecretRef *SecretRefStatus `json:"secret,omitempty"`
	// Conditions indicate the latest available observations of a resource's current state.
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	Conditions Conditions `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
	// LastSyncedTime is the last time the resource successfully synced with Consul.
	// +optional
	LastSyncedTime *metav1.Time `json:"lastSyncedTime,omitempty" description:"last time the condition transitioned from one status to another"`
}

PeeringDialerStatus defines the observed state of PeeringDialer.

func (*PeeringDialerStatus) DeepCopy

func (in *PeeringDialerStatus) DeepCopy() *PeeringDialerStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringDialerStatus.

func (*PeeringDialerStatus) DeepCopyInto

func (in *PeeringDialerStatus) DeepCopyInto(out *PeeringDialerStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PeeringDialerWebhook

type PeeringDialerWebhook struct {
	client.Client
	Logger logr.Logger
	// contains filtered or unexported fields
}

func (*PeeringDialerWebhook) Handle

func (*PeeringDialerWebhook) SetupWithManager

func (v *PeeringDialerWebhook) SetupWithManager(mgr ctrl.Manager)

type PeeringMeshConfig

type PeeringMeshConfig struct {
	// PeerThroughMeshGateways determines whether peering traffic between
	// control planes should flow through mesh gateways. If enabled,
	// Consul servers will advertise mesh gateway addresses as their own.
	// Additionally, mesh gateways will configure themselves to expose
	// the local servers using a peering-specific SNI.
	PeerThroughMeshGateways bool `json:"peerThroughMeshGateways,omitempty"`
}

func (*PeeringMeshConfig) DeepCopy

func (in *PeeringMeshConfig) DeepCopy() *PeeringMeshConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringMeshConfig.

func (*PeeringMeshConfig) DeepCopyInto

func (in *PeeringMeshConfig) DeepCopyInto(out *PeeringMeshConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PolicyTargetReference

type PolicyTargetReference struct {
	// Group is the group of the target resource.
	//
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Group string `json:"group"`

	// Kind is kind of the target resource.
	//
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Kind string `json:"kind"`

	// Name is the name of the target resource.
	//
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Name string `json:"name"`

	// Namespace is the namespace of the referent. When unspecified, the local
	// namespace is inferred. Even when policy targets a resource in a different
	// namespace, it may only apply to traffic originating from the same
	// namespace as the policy.
	//
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	// +optional
	Namespace string `json:"namespace,omitempty"`

	// SectionName refers to the listener targeted by this policy.
	SectionName *gwv1beta1.SectionName `json:"sectionName,omitempty"`
}

PolicyTargetReference identifies the target that the policy applies to.

func (*PolicyTargetReference) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyTargetReference.

func (*PolicyTargetReference) DeepCopyInto

func (in *PolicyTargetReference) DeepCopyInto(out *PolicyTargetReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PrioritizeByLocality

type PrioritizeByLocality struct {
	// Mode specifies the type of prioritization that will be performed
	// when selecting nodes in the local partition.
	// Valid values are: "" (default "none"), "none", and "failover".
	Mode string `json:"mode,omitempty"`
}

PrioritizeByLocality controls whether the locality of services within the local partition will be used to prioritize connectivity.

func (*PrioritizeByLocality) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrioritizeByLocality.

func (*PrioritizeByLocality) DeepCopyInto

func (in *PrioritizeByLocality) DeepCopyInto(out *PrioritizeByLocality)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProxyDefaults

type ProxyDefaults struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              ProxyDefaultsSpec `json:"spec,omitempty"`
	Status            `json:"status,omitempty"`
}

ProxyDefaults is the Schema for the proxydefaults API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource" +kubebuilder:resource:shortName="proxy-defaults"

func (*ProxyDefaults) AddFinalizer

func (in *ProxyDefaults) AddFinalizer(name string)

func (*ProxyDefaults) ConsulGlobalResource

func (in *ProxyDefaults) ConsulGlobalResource() bool

func (*ProxyDefaults) ConsulKind

func (in *ProxyDefaults) ConsulKind() string

func (*ProxyDefaults) ConsulMirroringNS

func (in *ProxyDefaults) ConsulMirroringNS() string

func (*ProxyDefaults) ConsulName

func (in *ProxyDefaults) ConsulName() string

func (*ProxyDefaults) DeepCopy

func (in *ProxyDefaults) DeepCopy() *ProxyDefaults

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyDefaults.

func (*ProxyDefaults) DeepCopyInto

func (in *ProxyDefaults) DeepCopyInto(out *ProxyDefaults)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ProxyDefaults) DeepCopyObject

func (in *ProxyDefaults) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ProxyDefaults) DefaultNamespaceFields

func (in *ProxyDefaults) DefaultNamespaceFields(_ common.ConsulMeta)

DefaultNamespaceFields has no behaviour here as proxy-defaults have no namespace specific fields.

func (*ProxyDefaults) Finalizers

func (in *ProxyDefaults) Finalizers() []string

func (*ProxyDefaults) GetObjectMeta

func (in *ProxyDefaults) GetObjectMeta() metav1.ObjectMeta

func (*ProxyDefaults) KubeKind

func (in *ProxyDefaults) KubeKind() string

func (*ProxyDefaults) KubernetesName

func (in *ProxyDefaults) KubernetesName() string

func (*ProxyDefaults) MatchesConsul

func (in *ProxyDefaults) MatchesConsul(candidate api.ConfigEntry) bool

func (*ProxyDefaults) RemoveFinalizer

func (in *ProxyDefaults) RemoveFinalizer(name string)

func (*ProxyDefaults) SetLastSyncedTime

func (in *ProxyDefaults) SetLastSyncedTime(time *metav1.Time)

func (*ProxyDefaults) SetSyncedCondition

func (in *ProxyDefaults) SetSyncedCondition(status corev1.ConditionStatus, reason string, message string)

func (*ProxyDefaults) SyncedCondition

func (in *ProxyDefaults) SyncedCondition() (status corev1.ConditionStatus, reason, message string)

func (*ProxyDefaults) SyncedConditionStatus

func (in *ProxyDefaults) SyncedConditionStatus() corev1.ConditionStatus

func (*ProxyDefaults) ToConsul

func (in *ProxyDefaults) ToConsul(datacenter string) capi.ConfigEntry

func (*ProxyDefaults) Validate

func (in *ProxyDefaults) Validate(_ common.ConsulMeta) error

type ProxyDefaultsList

type ProxyDefaultsList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ProxyDefaults `json:"items"`
}

ProxyDefaultsList contains a list of ProxyDefaults.

func (*ProxyDefaultsList) DeepCopy

func (in *ProxyDefaultsList) DeepCopy() *ProxyDefaultsList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyDefaultsList.

func (*ProxyDefaultsList) DeepCopyInto

func (in *ProxyDefaultsList) DeepCopyInto(out *ProxyDefaultsList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ProxyDefaultsList) DeepCopyObject

func (in *ProxyDefaultsList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ProxyDefaultsSpec

type ProxyDefaultsSpec struct {
	// Mode can be one of "direct" or "transparent". "transparent" represents that inbound and outbound
	// application traffic is being captured and redirected through the proxy. This mode does not
	// enable the traffic redirection itself. Instead it signals Consul to configure Envoy as if
	// traffic is already being redirected. "direct" represents that the proxy's listeners must be
	// dialed directly by the local application and other proxies.
	// Note: This cannot be set using the CRD and should be set using annotations on the
	// services that are part of the mesh.
	Mode *ProxyMode `json:"mode,omitempty"`
	// TransparentProxy controls configuration specific to proxies in transparent mode.
	// Note: This cannot be set using the CRD and should be set using annotations on the
	// services that are part of the mesh.
	TransparentProxy *TransparentProxy `json:"transparentProxy,omitempty"`
	// MutualTLSMode controls whether mutual TLS is required for all incoming
	// connections when transparent proxy is enabled. This can be set to
	// "permissive" or "strict". "strict" is the default which requires mutual
	// TLS for incoming connections. In the insecure "permissive" mode,
	// connections to the sidecar proxy public listener port require mutual
	// TLS, but connections to the service port do not require mutual TLS and
	// are proxied to the application unmodified. Note: Intentions are not
	// enforced for non-mTLS connections. To keep your services secure, we
	// recommend using "strict" mode whenever possible and enabling
	// "permissive" mode only when necessary.
	MutualTLSMode MutualTLSMode `json:"mutualTLSMode,omitempty"`
	// Config is an arbitrary map of configuration values used by Connect proxies.
	// Any values that your proxy allows can be configured globally here.
	// Supports JSON config values. See https://www.consul.io/docs/connect/proxies/envoy#configuration-formatting
	// +kubebuilder:validation:Type=object
	// +kubebuilder:validation:Schemaless
	// +kubebuilder:pruning:PreserveUnknownFields
	Config json.RawMessage `json:"config,omitempty"`
	// MeshGateway controls the default mesh gateway configuration for this service.
	MeshGateway MeshGateway `json:"meshGateway,omitempty"`
	// Expose controls the default expose path configuration for Envoy.
	Expose Expose `json:"expose,omitempty"`
	// AccessLogs controls all envoy instances' access logging configuration.
	AccessLogs *AccessLogs `json:"accessLogs,omitempty"`
	// EnvoyExtensions are a list of extensions to modify Envoy proxy configuration.
	EnvoyExtensions EnvoyExtensions `json:"envoyExtensions,omitempty"`
	// FailoverPolicy specifies the exact mechanism used for failover.
	FailoverPolicy *FailoverPolicy `json:"failoverPolicy,omitempty"`
	// PrioritizeByLocality controls whether the locality of services within the
	// local partition will be used to prioritize connectivity.
	PrioritizeByLocality *PrioritizeByLocality `json:"prioritizeByLocality,omitempty"`
}

ProxyDefaultsSpec defines the desired state of ProxyDefaults.

func (*ProxyDefaultsSpec) DeepCopy

func (in *ProxyDefaultsSpec) DeepCopy() *ProxyDefaultsSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyDefaultsSpec.

func (*ProxyDefaultsSpec) DeepCopyInto

func (in *ProxyDefaultsSpec) DeepCopyInto(out *ProxyDefaultsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProxyDefaultsWebhook

type ProxyDefaultsWebhook struct {
	client.Client
	Logger logr.Logger

	ConsulMeta common.ConsulMeta
	// contains filtered or unexported fields
}

func (*ProxyDefaultsWebhook) Handle

func (*ProxyDefaultsWebhook) SetupWithManager

func (v *ProxyDefaultsWebhook) SetupWithManager(mgr ctrl.Manager)

type ProxyMode

type ProxyMode string

type RateLimits

type RateLimits struct {
	// InstanceLevel represents rate limit configuration
	// that is applied per service instance.
	InstanceLevel InstanceLevelRateLimits `json:"instanceLevel,omitempty"`
}

RateLimits is rate limiting configuration that is applied to inbound traffic for a service. Rate limiting is a Consul Enterprise feature.

func (*RateLimits) DeepCopy

func (in *RateLimits) DeepCopy() *RateLimits

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimits.

func (*RateLimits) DeepCopyInto

func (in *RateLimits) DeepCopyInto(out *RateLimits)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReadWriteRatesConfig

type ReadWriteRatesConfig struct {
	ReadRate  float64 `json:"readRate,omitempty"`
	WriteRate float64 `json:"writeRate,omitempty"`
}

func (*ReadWriteRatesConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadWriteRatesConfig.

func (*ReadWriteRatesConfig) DeepCopyInto

func (in *ReadWriteRatesConfig) DeepCopyInto(out *ReadWriteRatesConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Registration

type Registration struct {
	// Standard Kubernetes resource metadata.
	metav1.TypeMeta `json:",inline"`

	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Spec defines the desired state of Registration.
	Spec RegistrationSpec `json:"spec,omitempty"`

	Status RegistrationStatus `json:"status,omitempty"`
}

Registration defines the resource for working with service registrations.

func (*Registration) DeepCopy

func (in *Registration) DeepCopy() *Registration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Registration.

func (*Registration) DeepCopyInto

func (in *Registration) DeepCopyInto(out *Registration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Registration) DeepCopyObject

func (in *Registration) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Registration) EqualExceptStatus

func (r *Registration) EqualExceptStatus(other *Registration) bool

func (*Registration) KubernetesName

func (r *Registration) KubernetesName() string

func (*Registration) ToCatalogDeregistration

func (r *Registration) ToCatalogDeregistration() *capi.CatalogDeregistration

ToCatalogDeregistration converts a Registration to a Consul CatalogDeregistration.

func (*Registration) ToCatalogRegistration

func (r *Registration) ToCatalogRegistration() (*capi.CatalogRegistration, error)

ToCatalogRegistration converts a Registration to a Consul CatalogRegistration.

type RegistrationList

type RegistrationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items is the list of Registrations.
	Items []Registration `json:"items"`
}

RegistrationList is a list of Registration resources.

func (*RegistrationList) DeepCopy

func (in *RegistrationList) DeepCopy() *RegistrationList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistrationList.

func (*RegistrationList) DeepCopyInto

func (in *RegistrationList) DeepCopyInto(out *RegistrationList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RegistrationList) DeepCopyObject

func (in *RegistrationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RegistrationSpec

type RegistrationSpec struct {
	ID              string            `json:"id,omitempty"`
	Node            string            `json:"node,omitempty"`
	Address         string            `json:"address,omitempty"`
	TaggedAddresses map[string]string `json:"taggedAddresses,omitempty"`
	NodeMeta        map[string]string `json:"nodeMeta,omitempty"`
	Datacenter      string            `json:"datacenter,omitempty"`
	Service         Service           `json:"service,omitempty"`
	SkipNodeUpdate  bool              `json:"skipNodeUpdate,omitempty"`
	Partition       string            `json:"partition,omitempty"`
	HealthCheck     *HealthCheck      `json:"check,omitempty"`
	Locality        *Locality         `json:"locality,omitempty"`
}

RegistrationSpec specifies the desired state of the Config CRD.

func (*RegistrationSpec) DeepCopy

func (in *RegistrationSpec) DeepCopy() *RegistrationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistrationSpec.

func (*RegistrationSpec) DeepCopyInto

func (in *RegistrationSpec) DeepCopyInto(out *RegistrationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RegistrationStatus

type RegistrationStatus struct {
	// Conditions indicate the latest available observations of a resource's current state.
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	Conditions Conditions `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
	// LastSyncedTime is the last time the resource successfully synced with Consul.
	// +optional
	LastSyncedTime *metav1.Time `json:"lastSyncedTime,omitempty" description:"last time the condition transitioned from one status to another"`
}

RegistrationStatus defines the observed state of Registration.

func (*RegistrationStatus) DeepCopy

func (in *RegistrationStatus) DeepCopy() *RegistrationStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistrationStatus.

func (*RegistrationStatus) DeepCopyInto

func (in *RegistrationStatus) DeepCopyInto(out *RegistrationStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RegistrationWebhook

type RegistrationWebhook struct {
	Logger logr.Logger

	// ConsulMeta contains metadata specific to the Consul installation.
	ConsulMeta common.ConsulMeta

	client.Client
	// contains filtered or unexported fields
}

func (*RegistrationWebhook) Handle

func (*RegistrationWebhook) SetupWithManager

func (v *RegistrationWebhook) SetupWithManager(mgr ctrl.Manager)

type RemoteJWKS

type RemoteJWKS struct {
	// URI is the URI of the server to query for the JWKS.
	URI string `json:"uri,omitempty"`

	// RequestTimeoutMs is the number of milliseconds to
	// time out when making a request for the JWKS.
	RequestTimeoutMs int `json:"requestTimeoutMs,omitempty"`

	// CacheDuration is the duration after which cached keys
	// should be expired.
	//
	// Default value is 5 minutes.
	CacheDuration metav1.Duration `json:"cacheDuration,omitempty"`

	// FetchAsynchronously indicates that the JWKS should be fetched
	// when a client request arrives. Client requests will be paused
	// until the JWKS is fetched.
	// If false, the proxy listener will wait for the JWKS to be
	// fetched before being activated.
	//
	// Default value is false.
	FetchAsynchronously bool `json:"fetchAsynchronously,omitempty"`

	// RetryPolicy defines a retry policy for fetching JWKS.
	//
	// There is no retry by default.
	RetryPolicy *JWKSRetryPolicy `json:"retryPolicy,omitempty"`

	// JWKSCluster defines how the specified Remote JWKS URI is to be fetched.
	JWKSCluster *JWKSCluster `json:"jwksCluster,omitempty"`
}

RemoteJWKS specifies how to fetch a JWKS from a remote server.

func (*RemoteJWKS) DeepCopy

func (in *RemoteJWKS) DeepCopy() *RemoteJWKS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteJWKS.

func (*RemoteJWKS) DeepCopyInto

func (in *RemoteJWKS) DeepCopyInto(out *RemoteJWKS)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RequestNormalizationMeshConfig

type RequestNormalizationMeshConfig struct {
	// InsecureDisablePathNormalization sets the value of the \`normalize_path\` option in the Envoy listener's
	// `HttpConnectionManager`. The default value is \`false\`. When set to \`true\` in Consul, \`normalize_path\` is
	// set to \`false\` for the Envoy proxy. This parameter disables the normalization of request URL paths according to
	// RFC 3986, conversion of \`\\\` to \`/\`, and decoding non-reserved %-encoded characters. When using L7 intentions
	// with path match rules, we recommend enabling path normalization in order to avoid match rule circumvention with
	// non-normalized path values.
	InsecureDisablePathNormalization bool `json:"insecureDisablePathNormalization,omitempty"`
	// MergeSlashes sets the value of the \`merge_slashes\` option in the Envoy listener's \`HttpConnectionManager\`.
	// The default value is \`false\`. This option controls the normalization of request URL paths by merging
	// consecutive \`/\` characters. This normalization is not part of RFC 3986. When using L7 intentions with path
	// match rules, we recommend enabling this setting to avoid match rule circumvention through non-normalized path
	// values, unless legitimate service traffic depends on allowing for repeat \`/\` characters, or upstream services
	// are configured to differentiate between single and multiple slashes.
	MergeSlashes bool `json:"mergeSlashes,omitempty"`
	// PathWithEscapedSlashesAction sets the value of the \`path_with_escaped_slashes_action\` option in the Envoy
	// listener's \`HttpConnectionManager\`. The default value of this option is empty, which is equivalent to
	// \`IMPLEMENTATION_SPECIFIC_DEFAULT\`. This parameter controls the action taken in response to request URL paths
	// with escaped slashes in the path. When using L7 intentions with path match rules, we recommend enabling this
	// setting to avoid match rule circumvention through non-normalized path values, unless legitimate service traffic
	// depends on allowing for escaped \`/\` or \`\\\` characters, or upstream services are configured to differentiate
	// between escaped and unescaped slashes. Refer to the Envoy documentation for more information on available
	// options.
	PathWithEscapedSlashesAction string `json:"pathWithEscapedSlashesAction,omitempty"`
	// HeadersWithUnderscoresAction sets the value of the \`headers_with_underscores_action\` option in the Envoy
	// listener's \`HttpConnectionManager\` under \`common_http_protocol_options\`. The default value of this option is
	// empty, which is equivalent to \`ALLOW\`. Refer to the Envoy documentation for more information on available
	// options.
	HeadersWithUnderscoresAction string `json:"headersWithUnderscoresAction,omitempty"`
}

RequestNormalizationMeshConfig contains options pertaining to the normalization of HTTP requests processed by mesh proxies.

type RetryPolicyBackOff

type RetryPolicyBackOff struct {
	// BaseInterval to be used for the next back off computation.
	//
	// The default value from envoy is 1s.
	BaseInterval metav1.Duration `json:"baseInterval,omitempty"`

	// MaxInternal to be used to specify the maximum interval between retries.
	// Optional but should be greater or equal to BaseInterval.
	//
	// Defaults to 10 times BaseInterval.
	MaxInterval metav1.Duration `json:"maxInterval,omitempty"`
}

RetryPolicyBackOff defines retry's policy backoff.

Defaults to Envoy's backoff policy.

func (*RetryPolicyBackOff) DeepCopy

func (in *RetryPolicyBackOff) DeepCopy() *RetryPolicyBackOff

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetryPolicyBackOff.

func (*RetryPolicyBackOff) DeepCopyInto

func (in *RetryPolicyBackOff) DeepCopyInto(out *RetryPolicyBackOff)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RingHashConfig

type RingHashConfig struct {
	// MinimumRingSize determines the minimum number of entries in the hash ring.
	MinimumRingSize uint64 `json:"minimumRingSize,omitempty"`

	// MaximumRingSize determines the maximum number of entries in the hash ring.
	MaximumRingSize uint64 `json:"maximumRingSize,omitempty"`
}

func (*RingHashConfig) DeepCopy

func (in *RingHashConfig) DeepCopy() *RingHashConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RingHashConfig.

func (*RingHashConfig) DeepCopyInto

func (in *RingHashConfig) DeepCopyInto(out *RingHashConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouteAuthFilter

type RouteAuthFilter struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RouteAuthFilterSpec   `json:"spec,omitempty"`
	Status RouteAuthFilterStatus `json:"status,omitempty"`
}

RouteAuthFilter is the Schema for the routeauthfilters API. +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource"

func (*RouteAuthFilter) DeepCopy

func (in *RouteAuthFilter) DeepCopy() *RouteAuthFilter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteAuthFilter.

func (*RouteAuthFilter) DeepCopyInto

func (in *RouteAuthFilter) DeepCopyInto(out *RouteAuthFilter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RouteAuthFilter) DeepCopyObject

func (in *RouteAuthFilter) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RouteAuthFilterList

type RouteAuthFilterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []RouteAuthFilter `json:"items"`
}

RouteAuthFilterList contains a list of RouteAuthFilter.

func (*RouteAuthFilterList) DeepCopy

func (in *RouteAuthFilterList) DeepCopy() *RouteAuthFilterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteAuthFilterList.

func (*RouteAuthFilterList) DeepCopyInto

func (in *RouteAuthFilterList) DeepCopyInto(out *RouteAuthFilterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RouteAuthFilterList) DeepCopyObject

func (in *RouteAuthFilterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RouteAuthFilterSpec

type RouteAuthFilterSpec struct {
	// This re-uses the JWT requirement type from Gateway Policy Types.
	//+kubebuilder:validation:Optional
	JWT *GatewayJWTRequirement `json:"jwt,omitempty"`
}

RouteAuthFilterSpec defines the desired state of RouteAuthFilter.

func (*RouteAuthFilterSpec) DeepCopy

func (in *RouteAuthFilterSpec) DeepCopy() *RouteAuthFilterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteAuthFilterSpec.

func (*RouteAuthFilterSpec) DeepCopyInto

func (in *RouteAuthFilterSpec) DeepCopyInto(out *RouteAuthFilterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouteAuthFilterStatus

type RouteAuthFilterStatus struct {
	// Conditions describe the current conditions of the Filter.
	//
	//
	// Known condition types are:
	//
	// * "Accepted"
	// * "ResolvedRefs"
	//
	// +optional
	// +listType=map
	// +listMapKey=type
	// +kubebuilder:validation:MaxItems=8
	// +kubebuilder:default={{type: "Accepted", status: "Unknown", reason:"Pending", message:"Waiting for controller", lastTransitionTime: "1970-01-01T00:00:00Z"},{type: "ResolvedRefs", status: "Unknown", reason:"Pending", message:"Waiting for controller", lastTransitionTime: "1970-01-01T00:00:00Z"}}
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

RouteAuthFilterStatus defines the observed state of the gateway.

func (*RouteAuthFilterStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteAuthFilterStatus.

func (*RouteAuthFilterStatus) DeepCopyInto

func (in *RouteAuthFilterStatus) DeepCopyInto(out *RouteAuthFilterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouteRetryFilter

type RouteRetryFilter struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RouteRetryFilterSpec `json:"spec,omitempty"`
	Status `json:"status,omitempty"`
}

RouteRetryFilter is the Schema for the routeretryfilters API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource"

func (*RouteRetryFilter) DeepCopy

func (in *RouteRetryFilter) DeepCopy() *RouteRetryFilter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteRetryFilter.

func (*RouteRetryFilter) DeepCopyInto

func (in *RouteRetryFilter) DeepCopyInto(out *RouteRetryFilter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RouteRetryFilter) DeepCopyObject

func (in *RouteRetryFilter) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*RouteRetryFilter) GetNamespace

func (h *RouteRetryFilter) GetNamespace() string

type RouteRetryFilterList

type RouteRetryFilterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []RouteRetryFilter `json:"items"`
}

RouteRetryFilterList contains a list of RouteRetryFilter.

func (*RouteRetryFilterList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteRetryFilterList.

func (*RouteRetryFilterList) DeepCopyInto

func (in *RouteRetryFilterList) DeepCopyInto(out *RouteRetryFilterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RouteRetryFilterList) DeepCopyObject

func (in *RouteRetryFilterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RouteRetryFilterSpec

type RouteRetryFilterSpec struct {
	// +kubebuilder:validation:Minimum:=0
	// +kubebuilder:validation:Optional
	NumRetries *uint32 `json:"numRetries"`
	// +kubebuilder:validation:Optional
	RetryOn []string `json:"retryOn"`
	// +kubebuilder:validation:Optional
	RetryOnStatusCodes []uint32 `json:"retryOnStatusCodes"`
	// +kubebuilder:validation:Optional
	RetryOnConnectFailure *bool `json:"retryOnConnectFailure"`
}

RouteRetryFilterSpec defines the desired state of RouteRetryFilter.

func (*RouteRetryFilterSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteRetryFilterSpec.

func (*RouteRetryFilterSpec) DeepCopyInto

func (in *RouteRetryFilterSpec) DeepCopyInto(out *RouteRetryFilterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouteTimeoutFilter

type RouteTimeoutFilter struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RouteTimeoutFilterSpec `json:"spec,omitempty"`
	Status `json:"status,omitempty"`
}

RouteTimeoutFilter is the Schema for the httproutetimeoutfilters API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource"

func (*RouteTimeoutFilter) DeepCopy

func (in *RouteTimeoutFilter) DeepCopy() *RouteTimeoutFilter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteTimeoutFilter.

func (*RouteTimeoutFilter) DeepCopyInto

func (in *RouteTimeoutFilter) DeepCopyInto(out *RouteTimeoutFilter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RouteTimeoutFilter) DeepCopyObject

func (in *RouteTimeoutFilter) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*RouteTimeoutFilter) GetNamespace

func (h *RouteTimeoutFilter) GetNamespace() string

type RouteTimeoutFilterList

type RouteTimeoutFilterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []RouteTimeoutFilter `json:"items"`
}

RouteTimeoutFilterList contains a list of RouteTimeoutFilter.

func (*RouteTimeoutFilterList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteTimeoutFilterList.

func (*RouteTimeoutFilterList) DeepCopyInto

func (in *RouteTimeoutFilterList) DeepCopyInto(out *RouteTimeoutFilterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RouteTimeoutFilterList) DeepCopyObject

func (in *RouteTimeoutFilterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type RouteTimeoutFilterSpec

type RouteTimeoutFilterSpec struct {
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Format=duration
	RequestTimeout metav1.Duration `json:"requestTimeout"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Type=string
	// +kubebuilder:validation:Format=duration
	IdleTimeout metav1.Duration `json:"idleTimeout"`
}

RouteTimeoutFilterSpec defines the desired state of RouteTimeoutFilter.

func (*RouteTimeoutFilterSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteTimeoutFilterSpec.

func (*RouteTimeoutFilterSpec) DeepCopyInto

func (in *RouteTimeoutFilterSpec) DeepCopyInto(out *RouteTimeoutFilterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SamenessGroup

type SamenessGroup struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              SamenessGroupSpec `json:"spec,omitempty"`
	Status            `json:"status,omitempty"`
}

SamenessGroup is the Schema for the samenessgroups API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource" +kubebuilder:resource:shortName="sameness-group"

func (*SamenessGroup) AddFinalizer

func (in *SamenessGroup) AddFinalizer(name string)

func (*SamenessGroup) ConsulGlobalResource

func (in *SamenessGroup) ConsulGlobalResource() bool

func (*SamenessGroup) ConsulKind

func (in *SamenessGroup) ConsulKind() string

func (*SamenessGroup) ConsulMirroringNS

func (in *SamenessGroup) ConsulMirroringNS() string

func (*SamenessGroup) ConsulName

func (in *SamenessGroup) ConsulName() string

func (*SamenessGroup) DeepCopy

func (in *SamenessGroup) DeepCopy() *SamenessGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SamenessGroup.

func (*SamenessGroup) DeepCopyInto

func (in *SamenessGroup) DeepCopyInto(out *SamenessGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SamenessGroup) DeepCopyObject

func (in *SamenessGroup) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*SamenessGroup) DefaultNamespaceFields

func (in *SamenessGroup) DefaultNamespaceFields(_ common.ConsulMeta)

DefaultNamespaceFields has no behaviour here as sameness-groups have no namespace specific fields.

func (*SamenessGroup) Finalizers

func (in *SamenessGroup) Finalizers() []string

func (*SamenessGroup) GetObjectMeta

func (in *SamenessGroup) GetObjectMeta() metav1.ObjectMeta

func (*SamenessGroup) KubeKind

func (in *SamenessGroup) KubeKind() string

func (*SamenessGroup) KubernetesName

func (in *SamenessGroup) KubernetesName() string

func (*SamenessGroup) MatchesConsul

func (in *SamenessGroup) MatchesConsul(candidate api.ConfigEntry) bool

func (*SamenessGroup) RemoveFinalizer

func (in *SamenessGroup) RemoveFinalizer(name string)

func (*SamenessGroup) SetLastSyncedTime

func (in *SamenessGroup) SetLastSyncedTime(time *metav1.Time)

func (*SamenessGroup) SetSyncedCondition

func (in *SamenessGroup) SetSyncedCondition(status corev1.ConditionStatus, reason, message string)

func (*SamenessGroup) SyncedCondition

func (in *SamenessGroup) SyncedCondition() (status corev1.ConditionStatus, reason, message string)

func (*SamenessGroup) SyncedConditionStatus

func (in *SamenessGroup) SyncedConditionStatus() corev1.ConditionStatus

func (*SamenessGroup) ToConsul

func (in *SamenessGroup) ToConsul(datacenter string) api.ConfigEntry

func (*SamenessGroup) Validate

func (in *SamenessGroup) Validate(consulMeta common.ConsulMeta) error

type SamenessGroupList

type SamenessGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []SamenessGroup `json:"items"`
}

SamenessGroupList contains a list of SamenessGroup.

func (*SamenessGroupList) DeepCopy

func (in *SamenessGroupList) DeepCopy() *SamenessGroupList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SamenessGroupList.

func (*SamenessGroupList) DeepCopyInto

func (in *SamenessGroupList) DeepCopyInto(out *SamenessGroupList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SamenessGroupList) DeepCopyObject

func (in *SamenessGroupList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SamenessGroupMember

type SamenessGroupMember struct {
	// The partitions and peers that are part of the sameness group.
	// A sameness group member cannot define both peer and partition at the same time.
	Partition string `json:"partition,omitempty"`
	Peer      string `json:"peer,omitempty"`
}

func (*SamenessGroupMember) DeepCopy

func (in *SamenessGroupMember) DeepCopy() *SamenessGroupMember

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SamenessGroupMember.

func (*SamenessGroupMember) DeepCopyInto

func (in *SamenessGroupMember) DeepCopyInto(out *SamenessGroupMember)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SamenessGroupMembers

type SamenessGroupMembers []SamenessGroupMember

func (SamenessGroupMembers) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SamenessGroupMembers.

func (SamenessGroupMembers) DeepCopyInto

func (in SamenessGroupMembers) DeepCopyInto(out *SamenessGroupMembers)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SamenessGroupSpec

type SamenessGroupSpec struct {
	// DefaultForFailover indicates that upstream requests to members of the given sameness group will implicitly failover between members of this sameness group.
	// When DefaultForFailover is true, the local partition must be a member of the sameness group or IncludeLocal must be set to true.
	DefaultForFailover bool `json:"defaultForFailover,omitempty"`
	// IncludeLocal is used to include the local partition as the first member of the sameness group.
	// The local partition can only be a member of a single sameness group.
	IncludeLocal bool `json:"includeLocal,omitempty"`
	// Members are the partitions and peers that are part of the sameness group.
	// If a member of a sameness group does not exist, it will be ignored.
	Members []SamenessGroupMember `json:"members,omitempty"`
}

SamenessGroupSpec defines the desired state of SamenessGroup.

func (*SamenessGroupSpec) DeepCopy

func (in *SamenessGroupSpec) DeepCopy() *SamenessGroupSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SamenessGroupSpec.

func (*SamenessGroupSpec) DeepCopyInto

func (in *SamenessGroupSpec) DeepCopyInto(out *SamenessGroupSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SamenessGroupWebhook

type SamenessGroupWebhook struct {
	Logger logr.Logger

	// ConsulMeta contains metadata specific to the Consul installation.
	ConsulMeta common.ConsulMeta

	client.Client
	// contains filtered or unexported fields
}

func (*SamenessGroupWebhook) Handle

func (*SamenessGroupWebhook) List

func (*SamenessGroupWebhook) SetupWithManager

func (v *SamenessGroupWebhook) SetupWithManager(mgr ctrl.Manager)

type Secret

type Secret struct {
	// Name is the name of the secret generated.
	Name string `json:"name,omitempty"`
	// Key is the key of the secret generated.
	Key string `json:"key,omitempty"`
	// Backend is where the generated secret is stored. Currently supports the value: "kubernetes".
	Backend string `json:"backend,omitempty"`
}

func (*Secret) DeepCopy

func (in *Secret) DeepCopy() *Secret

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Secret.

func (*Secret) DeepCopyInto

func (in *Secret) DeepCopyInto(out *Secret)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SecretRefStatus

type SecretRefStatus struct {
	Secret `json:",inline"`
	// ResourceVersion is the resource version for the secret.
	ResourceVersion string `json:"resourceVersion,omitempty"`
}

func (*SecretRefStatus) DeepCopy

func (in *SecretRefStatus) DeepCopy() *SecretRefStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretRefStatus.

func (*SecretRefStatus) DeepCopyInto

func (in *SecretRefStatus) DeepCopyInto(out *SecretRefStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Service

type Service struct {
	ID                string                    `json:"id,omitempty"`
	Name              string                    `json:"name"`
	Tags              []string                  `json:"tags,omitempty"`
	Meta              map[string]string         `json:"meta,omitempty"`
	Port              int                       `json:"port"`
	Address           string                    `json:"address,omitempty"`
	SocketPath        string                    `json:"socketPath,omitempty"`
	TaggedAddresses   map[string]ServiceAddress `json:"taggedAddresses,omitempty"`
	Weights           Weights                   `json:"weights,omitempty"`
	EnableTagOverride bool                      `json:"enableTagOverride,omitempty"`
	Locality          *Locality                 `json:"locality,omitempty"`
	Namespace         string                    `json:"namespace,omitempty"`
	Partition         string                    `json:"partition,omitempty"`
}

func (*Service) DeepCopy

func (in *Service) DeepCopy() *Service

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.

func (*Service) DeepCopyInto

func (in *Service) DeepCopyInto(out *Service)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Service) Equal

func (s *Service) Equal(other *Service) bool

type ServiceAddress

type ServiceAddress struct {
	Address string `json:"address"`
	Port    int    `json:"port"`
}

func (*ServiceAddress) DeepCopy

func (in *ServiceAddress) DeepCopy() *ServiceAddress

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAddress.

func (*ServiceAddress) DeepCopyInto

func (in *ServiceAddress) DeepCopyInto(out *ServiceAddress)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceConsumer

type ServiceConsumer struct {
	// Partition is the admin partition to export the service to.
	Partition string `json:"partition,omitempty"`
	// Peer is the name of the peer to export the service to.
	Peer string `json:"peer,omitempty"`
	// SamenessGroup is the name of the sameness group to export the service to.
	SamenessGroup string `json:"samenessGroup,omitempty"`
}

ServiceConsumer represents a downstream consumer of the service to be exported.

func (*ServiceConsumer) DeepCopy

func (in *ServiceConsumer) DeepCopy() *ServiceConsumer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceConsumer.

func (*ServiceConsumer) DeepCopyInto

func (in *ServiceConsumer) DeepCopyInto(out *ServiceConsumer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceDefaults

type ServiceDefaults struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              ServiceDefaultsSpec `json:"spec,omitempty"`
	Status            `json:"status,omitempty"`
}

ServiceDefaults is the Schema for the servicedefaults API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource" +kubebuilder:resource:shortName="service-defaults"

func (*ServiceDefaults) AddFinalizer

func (in *ServiceDefaults) AddFinalizer(name string)

func (*ServiceDefaults) ConsulGlobalResource

func (in *ServiceDefaults) ConsulGlobalResource() bool

func (*ServiceDefaults) ConsulKind

func (in *ServiceDefaults) ConsulKind() string

func (*ServiceDefaults) ConsulMirroringNS

func (in *ServiceDefaults) ConsulMirroringNS() string

func (*ServiceDefaults) ConsulName

func (in *ServiceDefaults) ConsulName() string

func (*ServiceDefaults) DeepCopy

func (in *ServiceDefaults) DeepCopy() *ServiceDefaults

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDefaults.

func (*ServiceDefaults) DeepCopyInto

func (in *ServiceDefaults) DeepCopyInto(out *ServiceDefaults)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceDefaults) DeepCopyObject

func (in *ServiceDefaults) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ServiceDefaults) DefaultNamespaceFields

func (in *ServiceDefaults) DefaultNamespaceFields(_ common.ConsulMeta)

DefaultNamespaceFields has no behaviour here as service-defaults have no namespace specific fields.

func (*ServiceDefaults) Finalizers

func (in *ServiceDefaults) Finalizers() []string

func (*ServiceDefaults) GetObjectMeta

func (in *ServiceDefaults) GetObjectMeta() metav1.ObjectMeta

func (*ServiceDefaults) KubeKind

func (in *ServiceDefaults) KubeKind() string

func (*ServiceDefaults) KubernetesName

func (in *ServiceDefaults) KubernetesName() string

func (*ServiceDefaults) MatchesConsul

func (in *ServiceDefaults) MatchesConsul(candidate capi.ConfigEntry) bool

MatchesConsul returns true if entry has the same config as this struct.

func (*ServiceDefaults) RemoveFinalizer

func (in *ServiceDefaults) RemoveFinalizer(name string)

func (*ServiceDefaults) SetLastSyncedTime

func (in *ServiceDefaults) SetLastSyncedTime(time *metav1.Time)

func (*ServiceDefaults) SetSyncedCondition

func (in *ServiceDefaults) SetSyncedCondition(status corev1.ConditionStatus, reason string, message string)

func (*ServiceDefaults) SyncedCondition

func (in *ServiceDefaults) SyncedCondition() (status corev1.ConditionStatus, reason string, message string)

func (*ServiceDefaults) SyncedConditionStatus

func (in *ServiceDefaults) SyncedConditionStatus() corev1.ConditionStatus

func (*ServiceDefaults) ToConsul

func (in *ServiceDefaults) ToConsul(datacenter string) capi.ConfigEntry

ToConsul converts the entry into it's Consul equivalent struct.

func (*ServiceDefaults) Validate

func (in *ServiceDefaults) Validate(consulMeta common.ConsulMeta) error

Validate validates the fields provided in the spec of the ServiceDefaults and returns an error which lists all invalid fields in the resource spec.

type ServiceDefaultsDestination

type ServiceDefaultsDestination struct {
	// Addresses is a list of IPs and/or hostnames that can be dialed
	// and routed through a terminating gateway.
	Addresses []string `json:"addresses,omitempty"`
	// Port is the port that can be dialed on any of the addresses in this
	// Destination.
	Port uint32 `json:"port,omitempty"`
}

func (*ServiceDefaultsDestination) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDefaultsDestination.

func (*ServiceDefaultsDestination) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceDefaultsList

type ServiceDefaultsList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ServiceDefaults `json:"items"`
}

ServiceDefaultsList contains a list of ServiceDefaults.

func (*ServiceDefaultsList) DeepCopy

func (in *ServiceDefaultsList) DeepCopy() *ServiceDefaultsList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDefaultsList.

func (*ServiceDefaultsList) DeepCopyInto

func (in *ServiceDefaultsList) DeepCopyInto(out *ServiceDefaultsList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceDefaultsList) DeepCopyObject

func (in *ServiceDefaultsList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ServiceDefaultsSpec

type ServiceDefaultsSpec struct {
	// Protocol sets the protocol of the service. This is used by Connect proxies for
	// things like observability features and to unlock usage of the
	// service-splitter and service-router config entries for a service.
	Protocol string `json:"protocol,omitempty"`
	// Mode can be one of "direct" or "transparent". "transparent" represents that inbound and outbound
	// application traffic is being captured and redirected through the proxy. This mode does not
	// enable the traffic redirection itself. Instead it signals Consul to configure Envoy as if
	// traffic is already being redirected. "direct" represents that the proxy's listeners must be
	// dialed directly by the local application and other proxies.
	// Note: This cannot be set using the CRD and should be set using annotations on the
	// services that are part of the mesh.
	Mode *ProxyMode `json:"mode,omitempty"`
	// TransparentProxy controls configuration specific to proxies in transparent mode.
	// Note: This cannot be set using the CRD and should be set using annotations on the
	// services that are part of the mesh.
	TransparentProxy *TransparentProxy `json:"transparentProxy,omitempty"`
	// MutualTLSMode controls whether mutual TLS is required for all incoming
	// connections when transparent proxy is enabled. This can be set to
	// "permissive" or "strict". "strict" is the default which requires mutual
	// TLS for incoming connections. In the insecure "permissive" mode,
	// connections to the sidecar proxy public listener port require mutual
	// TLS, but connections to the service port do not require mutual TLS and
	// are proxied to the application unmodified. Note: Intentions are not
	// enforced for non-mTLS connections. To keep your services secure, we
	// recommend using "strict" mode whenever possible and enabling
	// "permissive" mode only when necessary.
	MutualTLSMode MutualTLSMode `json:"mutualTLSMode,omitempty"`
	// MeshGateway controls the default mesh gateway configuration for this service.
	MeshGateway MeshGateway `json:"meshGateway,omitempty"`
	// Expose controls the default expose path configuration for Envoy.
	Expose Expose `json:"expose,omitempty"`
	// ExternalSNI is an optional setting that allows for the TLS SNI value
	// to be changed to a non-connect value when federating with an external system.
	ExternalSNI string `json:"externalSNI,omitempty"`
	// UpstreamConfig controls default configuration settings that apply across all upstreams,
	// and per-upstream configuration overrides. Note that per-upstream configuration applies
	// across all federated datacenters to the pairing of source and upstream destination services.
	UpstreamConfig *Upstreams `json:"upstreamConfig,omitempty"`
	// Destination is an address(es)/port combination that represents an endpoint
	// outside the mesh. This is only valid when the mesh is configured in "transparent"
	// mode. Destinations live outside of Consul's catalog, and because of this, they
	// do not require an artificial node to be created.
	Destination *ServiceDefaultsDestination `json:"destination,omitempty"`
	// MaxInboundConnections is the maximum number of concurrent inbound connections to
	// each service instance. Defaults to 0 (using consul's default) if not set.
	MaxInboundConnections int `json:"maxInboundConnections,omitempty"`
	// LocalConnectTimeoutMs is the number of milliseconds allowed to make connections to the local application
	// instance before timing out. Defaults to 5000.
	LocalConnectTimeoutMs int `json:"localConnectTimeoutMs,omitempty"`
	// LocalRequestTimeoutMs is the timeout for HTTP requests to the local application instance in milliseconds.
	// Applies to HTTP-based protocols only. If not specified, inherits the Envoy default for
	// route timeouts (15s).
	LocalRequestTimeoutMs int `json:"localRequestTimeoutMs,omitempty"`
	// BalanceInboundConnections sets the strategy for allocating inbound connections to the service across
	// proxy threads. The only supported value is exact_balance. By default, no connection balancing is used.
	// Refer to the Envoy Connection Balance config for details.
	BalanceInboundConnections string `json:"balanceInboundConnections,omitempty"`
	// RateLimits is rate limiting configuration that is applied to
	// inbound traffic for a service. Rate limiting is a Consul enterprise feature.
	RateLimits *RateLimits `json:"rateLimits,omitempty"`
	// EnvoyExtensions are a list of extensions to modify Envoy proxy configuration.
	EnvoyExtensions EnvoyExtensions `json:"envoyExtensions,omitempty"`
}

ServiceDefaultsSpec defines the desired state of ServiceDefaults.

func (*ServiceDefaultsSpec) DeepCopy

func (in *ServiceDefaultsSpec) DeepCopy() *ServiceDefaultsSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceDefaultsSpec.

func (*ServiceDefaultsSpec) DeepCopyInto

func (in *ServiceDefaultsSpec) DeepCopyInto(out *ServiceDefaultsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceDefaultsWebhook

type ServiceDefaultsWebhook struct {
	Logger logr.Logger

	// ConsulMeta contains metadata specific to the Consul installation.
	ConsulMeta common.ConsulMeta

	client.Client
	// contains filtered or unexported fields
}

func (*ServiceDefaultsWebhook) Handle

func (*ServiceDefaultsWebhook) List

func (*ServiceDefaultsWebhook) SetupWithManager

func (v *ServiceDefaultsWebhook) SetupWithManager(mgr ctrl.Manager)

type ServiceIntentions

type ServiceIntentions struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ServiceIntentionsSpec `json:"spec,omitempty"`
	Status `json:"status,omitempty"`
}

ServiceIntentions is the Schema for the serviceintentions API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource" +kubebuilder:resource:shortName="service-intentions"

func (*ServiceIntentions) AddFinalizer

func (in *ServiceIntentions) AddFinalizer(f string)

func (*ServiceIntentions) ConsulGlobalResource

func (in *ServiceIntentions) ConsulGlobalResource() bool

func (*ServiceIntentions) ConsulKind

func (in *ServiceIntentions) ConsulKind() string

func (*ServiceIntentions) ConsulMirroringNS

func (in *ServiceIntentions) ConsulMirroringNS() string

func (*ServiceIntentions) ConsulName

func (in *ServiceIntentions) ConsulName() string

func (*ServiceIntentions) DeepCopy

func (in *ServiceIntentions) DeepCopy() *ServiceIntentions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceIntentions.

func (*ServiceIntentions) DeepCopyInto

func (in *ServiceIntentions) DeepCopyInto(out *ServiceIntentions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceIntentions) DeepCopyObject

func (in *ServiceIntentions) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ServiceIntentions) DefaultNamespaceFields

func (in *ServiceIntentions) DefaultNamespaceFields(consulMeta common.ConsulMeta)

DefaultNamespaceFields sets the namespace field on spec.destination to their default values if namespaces are enabled.

func (*ServiceIntentions) Finalizers

func (in *ServiceIntentions) Finalizers() []string

func (*ServiceIntentions) GetObjectMeta

func (in *ServiceIntentions) GetObjectMeta() metav1.ObjectMeta

func (*ServiceIntentions) KubeKind

func (in *ServiceIntentions) KubeKind() string

func (*ServiceIntentions) KubernetesName

func (in *ServiceIntentions) KubernetesName() string

func (*ServiceIntentions) MatchesConsul

func (in *ServiceIntentions) MatchesConsul(candidate api.ConfigEntry) bool

func (*ServiceIntentions) RemoveFinalizer

func (in *ServiceIntentions) RemoveFinalizer(f string)

func (*ServiceIntentions) SetLastSyncedTime

func (in *ServiceIntentions) SetLastSyncedTime(time *metav1.Time)

func (*ServiceIntentions) SetSyncedCondition

func (in *ServiceIntentions) SetSyncedCondition(status corev1.ConditionStatus, reason, message string)

func (*ServiceIntentions) SyncedCondition

func (in *ServiceIntentions) SyncedCondition() (status corev1.ConditionStatus, reason, message string)

func (*ServiceIntentions) SyncedConditionStatus

func (in *ServiceIntentions) SyncedConditionStatus() corev1.ConditionStatus

func (*ServiceIntentions) ToConsul

func (in *ServiceIntentions) ToConsul(datacenter string) api.ConfigEntry

func (*ServiceIntentions) Validate

func (in *ServiceIntentions) Validate(consulMeta common.ConsulMeta) error

type ServiceIntentionsList

type ServiceIntentionsList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ServiceIntentions `json:"items"`
}

ServiceIntentionsList contains a list of ServiceIntentions.

func (*ServiceIntentionsList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceIntentionsList.

func (*ServiceIntentionsList) DeepCopyInto

func (in *ServiceIntentionsList) DeepCopyInto(out *ServiceIntentionsList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceIntentionsList) DeepCopyObject

func (in *ServiceIntentionsList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ServiceIntentionsSpec

type ServiceIntentionsSpec struct {
	// Destination is the intention destination that will have the authorization granted to.
	Destination IntentionDestination `json:"destination,omitempty"`
	// Sources is the list of all intention sources and the authorization granted to those sources.
	// The order of this list does not matter, but out of convenience Consul will always store this
	// reverse sorted by intention precedence, as that is the order that they will be evaluated at enforcement time.
	Sources SourceIntentions `json:"sources,omitempty"`
	// JWT specifies the configuration to validate a JSON Web Token for all incoming requests.
	JWT *IntentionJWTRequirement `json:"jwt,omitempty"`
}

ServiceIntentionsSpec defines the desired state of ServiceIntentions.

func (*ServiceIntentionsSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceIntentionsSpec.

func (*ServiceIntentionsSpec) DeepCopyInto

func (in *ServiceIntentionsSpec) DeepCopyInto(out *ServiceIntentionsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceIntentionsWebhook

type ServiceIntentionsWebhook struct {
	client.Client
	Logger logr.Logger

	ConsulMeta common.ConsulMeta
	// contains filtered or unexported fields
}

func (*ServiceIntentionsWebhook) Handle

func (*ServiceIntentionsWebhook) SetupWithManager

func (v *ServiceIntentionsWebhook) SetupWithManager(mgr ctrl.Manager)

type ServiceResolver

type ServiceResolver struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              ServiceResolverSpec `json:"spec,omitempty"`
	Status            `json:"status,omitempty"`
}

ServiceResolver is the Schema for the serviceresolvers API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource" +kubebuilder:resource:shortName="service-resolver"

func (*ServiceResolver) AddFinalizer

func (in *ServiceResolver) AddFinalizer(f string)

func (*ServiceResolver) ConsulGlobalResource

func (in *ServiceResolver) ConsulGlobalResource() bool

func (*ServiceResolver) ConsulKind

func (in *ServiceResolver) ConsulKind() string

func (*ServiceResolver) ConsulMirroringNS

func (in *ServiceResolver) ConsulMirroringNS() string

func (*ServiceResolver) ConsulName

func (in *ServiceResolver) ConsulName() string

func (*ServiceResolver) DeepCopy

func (in *ServiceResolver) DeepCopy() *ServiceResolver

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceResolver.

func (*ServiceResolver) DeepCopyInto

func (in *ServiceResolver) DeepCopyInto(out *ServiceResolver)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceResolver) DeepCopyObject

func (in *ServiceResolver) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ServiceResolver) DefaultNamespaceFields

func (in *ServiceResolver) DefaultNamespaceFields(_ common.ConsulMeta)

DefaultNamespaceFields has no behaviour here as service-resolver have namespace fields that do not default.

func (*ServiceResolver) Finalizers

func (in *ServiceResolver) Finalizers() []string

func (*ServiceResolver) GetObjectMeta

func (in *ServiceResolver) GetObjectMeta() metav1.ObjectMeta

func (*ServiceResolver) KubeKind

func (in *ServiceResolver) KubeKind() string

func (*ServiceResolver) KubernetesName

func (in *ServiceResolver) KubernetesName() string

func (*ServiceResolver) MatchesConsul

func (in *ServiceResolver) MatchesConsul(candidate capi.ConfigEntry) bool

func (*ServiceResolver) RemoveFinalizer

func (in *ServiceResolver) RemoveFinalizer(f string)

func (*ServiceResolver) SetLastSyncedTime

func (in *ServiceResolver) SetLastSyncedTime(time *metav1.Time)

func (*ServiceResolver) SetSyncedCondition

func (in *ServiceResolver) SetSyncedCondition(status corev1.ConditionStatus, reason string, message string)

func (*ServiceResolver) SyncedCondition

func (in *ServiceResolver) SyncedCondition() (status corev1.ConditionStatus, reason string, message string)

func (*ServiceResolver) SyncedConditionStatus

func (in *ServiceResolver) SyncedConditionStatus() corev1.ConditionStatus

func (*ServiceResolver) ToConsul

func (in *ServiceResolver) ToConsul(datacenter string) capi.ConfigEntry

ToConsul converts the entry into its Consul equivalent struct.

func (*ServiceResolver) Validate

func (in *ServiceResolver) Validate(consulMeta common.ConsulMeta) error

type ServiceResolverFailover

type ServiceResolverFailover struct {
	// Service is the service to resolve instead of the default as the failover
	// group of instances during failover.
	Service string `json:"service,omitempty"`
	// ServiceSubset is the named subset of the requested service to resolve as
	// the failover group of instances. If empty the default subset for the
	// requested service is used.
	ServiceSubset string `json:"serviceSubset,omitempty"`
	// Namespace is the namespace to resolve the requested service from to form
	// the failover group of instances. If empty the current namespace is used.
	Namespace string `json:"namespace,omitempty"`
	// Datacenters is a fixed list of datacenters to try during failover.
	Datacenters []string `json:"datacenters,omitempty"`
	// Targets specifies a fixed list of failover targets to try during failover.
	Targets []ServiceResolverFailoverTarget `json:"targets,omitempty"`
	// Policy specifies the exact mechanism used for failover.
	Policy *FailoverPolicy `json:"policy,omitempty"`
	// SamenessGroup is the name of the sameness group to try during failover.
	SamenessGroup string `json:"samenessGroup,omitempty"`
}

func (*ServiceResolverFailover) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceResolverFailover.

func (*ServiceResolverFailover) DeepCopyInto

func (in *ServiceResolverFailover) DeepCopyInto(out *ServiceResolverFailover)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceResolverFailoverMap

type ServiceResolverFailoverMap map[string]ServiceResolverFailover

func (ServiceResolverFailoverMap) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceResolverFailoverMap.

func (ServiceResolverFailoverMap) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceResolverFailoverTarget

type ServiceResolverFailoverTarget struct {
	// Service specifies the name of the service to try during failover.
	Service string `json:"service,omitempty"`
	// ServiceSubset specifies the service subset to try during failover.
	ServiceSubset string `json:"serviceSubset,omitempty"`
	// Partition specifies the partition to try during failover.
	Partition string `json:"partition,omitempty"`
	// Namespace specifies the namespace to try during failover.
	Namespace string `json:"namespace,omitempty"`
	// Datacenter specifies the datacenter to try during failover.
	Datacenter string `json:"datacenter,omitempty"`
	// Peer specifies the name of the cluster peer to try during failover.
	Peer string `json:"peer,omitempty"`
}

func (*ServiceResolverFailoverTarget) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceResolverFailoverTarget.

func (*ServiceResolverFailoverTarget) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceResolverList

type ServiceResolverList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ServiceResolver `json:"items"`
}

ServiceResolverList contains a list of ServiceResolver.

func (*ServiceResolverList) DeepCopy

func (in *ServiceResolverList) DeepCopy() *ServiceResolverList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceResolverList.

func (*ServiceResolverList) DeepCopyInto

func (in *ServiceResolverList) DeepCopyInto(out *ServiceResolverList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceResolverList) DeepCopyObject

func (in *ServiceResolverList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ServiceResolverRedirect

type ServiceResolverRedirect struct {
	// Service is a service to resolve instead of the current service.
	Service string `json:"service,omitempty"`
	// ServiceSubset is a named subset of the given service to resolve instead
	// of one defined as that service's DefaultSubset If empty the default
	// subset is used.
	ServiceSubset string `json:"serviceSubset,omitempty"`
	// Namespace is the Consul namespace to resolve the service from instead of
	// the current namespace. If empty the current namespace is assumed.
	Namespace string `json:"namespace,omitempty"`
	// Partition is the Consul partition to resolve the service from instead of
	// the current partition. If empty the current partition is assumed.
	Partition string `json:"partition,omitempty"`
	// Datacenter is the datacenter to resolve the service from instead of the
	// current one.
	Datacenter string `json:"datacenter,omitempty"`
	// Peer is the name of the cluster peer to resolve the service from instead
	// of the current one.
	Peer string `json:"peer,omitempty"`
	// SamenessGroup is the name of the sameness group to resolve the service from instead of the current one.
	SamenessGroup string `json:"samenessGroup,omitempty"`
}

func (*ServiceResolverRedirect) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceResolverRedirect.

func (*ServiceResolverRedirect) DeepCopyInto

func (in *ServiceResolverRedirect) DeepCopyInto(out *ServiceResolverRedirect)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceResolverSpec

type ServiceResolverSpec struct {
	// DefaultSubset is the subset to use when no explicit subset is requested.
	// If empty the unnamed subset is used.
	DefaultSubset string `json:"defaultSubset,omitempty"`
	// Subsets is map of subset name to subset definition for all usable named
	// subsets of this service. The map key is the name of the subset and all
	// names must be valid DNS subdomain elements.
	// This may be empty, in which case only the unnamed default subset will
	// be usable.
	Subsets ServiceResolverSubsetMap `json:"subsets,omitempty"`
	// Redirect when configured, all attempts to resolve the service this
	// resolver defines will be substituted for the supplied redirect
	// EXCEPT when the redirect has already been applied.
	// When substituting the supplied redirect, all other fields besides
	// Kind, Name, and Redirect will be ignored.
	Redirect *ServiceResolverRedirect `json:"redirect,omitempty"`
	// Failover controls when and how to reroute traffic to an alternate pool of
	// service instances.
	// The map is keyed by the service subset it applies to and the special
	// string "*" is a wildcard that applies to any subset not otherwise
	// specified here.
	Failover ServiceResolverFailoverMap `json:"failover,omitempty"`
	// ConnectTimeout is the timeout for establishing new network connections
	// to this service.
	ConnectTimeout metav1.Duration `json:"connectTimeout,omitempty"`
	// RequestTimeout is the timeout for receiving an HTTP response from this
	// service before the connection is terminated.
	RequestTimeout metav1.Duration `json:"requestTimeout,omitempty"`
	// LoadBalancer determines the load balancing policy and configuration for services
	// issuing requests to this upstream service.
	LoadBalancer *LoadBalancer `json:"loadBalancer,omitempty"`
	// PrioritizeByLocality controls whether the locality of services within the
	// local partition will be used to prioritize connectivity.
	PrioritizeByLocality *PrioritizeByLocality `json:"prioritizeByLocality,omitempty"`
}

ServiceResolverSpec defines the desired state of ServiceResolver.

func (*ServiceResolverSpec) DeepCopy

func (in *ServiceResolverSpec) DeepCopy() *ServiceResolverSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceResolverSpec.

func (*ServiceResolverSpec) DeepCopyInto

func (in *ServiceResolverSpec) DeepCopyInto(out *ServiceResolverSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceResolverSubset

type ServiceResolverSubset struct {
	// Filter is the filter expression to be used for selecting instances of the
	// requested service. If empty all healthy instances are returned. This
	// expression can filter on the same selectors as the Health API endpoint.
	Filter string `json:"filter,omitempty"`
	// OnlyPassing specifies the behavior of the resolver's health check
	// interpretation. If this is set to false, instances with checks in the
	// passing as well as the warning states will be considered healthy. If this
	// is set to true, only instances with checks in the passing state will be
	// considered healthy.
	OnlyPassing bool `json:"onlyPassing,omitempty"`
}

func (*ServiceResolverSubset) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceResolverSubset.

func (*ServiceResolverSubset) DeepCopyInto

func (in *ServiceResolverSubset) DeepCopyInto(out *ServiceResolverSubset)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceResolverSubsetMap

type ServiceResolverSubsetMap map[string]ServiceResolverSubset

func (ServiceResolverSubsetMap) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceResolverSubsetMap.

func (ServiceResolverSubsetMap) DeepCopyInto

func (in ServiceResolverSubsetMap) DeepCopyInto(out *ServiceResolverSubsetMap)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceResolverWebhook

type ServiceResolverWebhook struct {
	Logger logr.Logger

	// ConsulMeta contains metadata specific to the Consul installation.
	ConsulMeta common.ConsulMeta

	client.Client
	// contains filtered or unexported fields
}

func (*ServiceResolverWebhook) Handle

func (*ServiceResolverWebhook) List

func (*ServiceResolverWebhook) SetupWithManager

func (v *ServiceResolverWebhook) SetupWithManager(mgr ctrl.Manager)

type ServiceRoute

type ServiceRoute struct {
	// Match is a set of criteria that can match incoming L7 requests.
	// If empty or omitted it acts as a catch-all.
	Match *ServiceRouteMatch `json:"match,omitempty"`
	// Destination controls how to proxy the matching request(s) to a service.
	Destination *ServiceRouteDestination `json:"destination,omitempty"`
}

func (*ServiceRoute) DeepCopy

func (in *ServiceRoute) DeepCopy() *ServiceRoute

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRoute.

func (*ServiceRoute) DeepCopyInto

func (in *ServiceRoute) DeepCopyInto(out *ServiceRoute)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceRouteDestination

type ServiceRouteDestination struct {
	// Service is the service to resolve instead of the default service.
	// If empty then the default service name is used.
	Service string `json:"service,omitempty"`
	// ServiceSubset is a named subset of the given service to resolve instead
	// of the one defined as that service's DefaultSubset.
	// If empty, the default subset is used.
	ServiceSubset string `json:"serviceSubset,omitempty"`
	// Namespace is the Consul namespace to resolve the service from instead of
	// the current namespace. If empty the current namespace is assumed.
	Namespace string `json:"namespace,omitempty"`
	// Partition is the Consul partition to resolve the service from instead of
	// the current partition. If empty the current partition is assumed.
	Partition string `json:"partition,omitempty"`
	// PrefixRewrite defines how to rewrite the HTTP request path before proxying
	// it to its final destination.
	// This requires that either match.http.pathPrefix or match.http.pathExact
	// be configured on this route.
	PrefixRewrite string `json:"prefixRewrite,omitempty"`
	// IdleTimeout is total amount of time permitted
	// for the request stream to be idle.
	IdleTimeout metav1.Duration `json:"idleTimeout,omitempty"`
	// RequestTimeout is the total amount of time permitted for the entire
	// downstream request (and retries) to be processed.
	RequestTimeout metav1.Duration `json:"requestTimeout,omitempty"`
	// NumRetries is the number of times to retry the request when a retryable result occurs
	NumRetries uint32 `json:"numRetries,omitempty"`
	// RetryOnConnectFailure allows for connection failure errors to trigger a retry.
	RetryOnConnectFailure bool `json:"retryOnConnectFailure,omitempty"`
	// RetryOn is a flat list of conditions for Consul to retry requests based on the response from an upstream service.
	// Refer to the valid conditions here: https://developer.hashicorp.com/consul/docs/connect/config-entries/service-router#routes-destination-retryon
	RetryOn []string `json:"retryOn,omitempty"`
	// RetryOnStatusCodes is a flat list of http response status codes that are eligible for retry.
	RetryOnStatusCodes []uint32 `json:"retryOnStatusCodes,omitempty"`
	// Allow HTTP header manipulation to be configured.
	RequestHeaders  *HTTPHeaderModifiers `json:"requestHeaders,omitempty"`
	ResponseHeaders *HTTPHeaderModifiers `json:"responseHeaders,omitempty"`
}

func (*ServiceRouteDestination) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRouteDestination.

func (*ServiceRouteDestination) DeepCopyInto

func (in *ServiceRouteDestination) DeepCopyInto(out *ServiceRouteDestination)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceRouteHTTPMatch

type ServiceRouteHTTPMatch struct {
	// CaseInsensitive configures PathExact and PathPrefix matches to ignore upper/lower casing.
	CaseInsensitive bool `json:"caseInsensitive,omitempty"`
	// PathExact is an exact path to match on the HTTP request path.
	PathExact string `json:"pathExact,omitempty"`
	// PathPrefix is a path prefix to match on the HTTP request path.
	PathPrefix string `json:"pathPrefix,omitempty"`
	// PathRegex is a regular expression to match on the HTTP request path.
	PathRegex string `json:"pathRegex,omitempty"`

	// Header is a set of criteria that can match on HTTP request headers.
	// If more than one is configured all must match for the overall match to apply.
	Header []ServiceRouteHTTPMatchHeader `json:"header,omitempty"`
	// QueryParam is a set of criteria that can match on HTTP query parameters.
	// If more than one is configured all must match for the overall match to apply.
	QueryParam []ServiceRouteHTTPMatchQueryParam `json:"queryParam,omitempty"`
	// Methods is a list of HTTP methods for which this match applies.
	// If unspecified all http methods are matched.
	Methods []string `json:"methods,omitempty"`
}

func (*ServiceRouteHTTPMatch) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRouteHTTPMatch.

func (*ServiceRouteHTTPMatch) DeepCopyInto

func (in *ServiceRouteHTTPMatch) DeepCopyInto(out *ServiceRouteHTTPMatch)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceRouteHTTPMatchHeader

type ServiceRouteHTTPMatchHeader struct {
	// Name is the name of the header to match.
	Name string `json:"name"`
	// Present will match if the header with the given name is present with any value.
	Present bool `json:"present,omitempty"`
	// Exact will match if the header with the given name is this value.
	Exact string `json:"exact,omitempty"`
	// Prefix will match if the header with the given name has this prefix.
	Prefix string `json:"prefix,omitempty"`
	// Suffix will match if the header with the given name has this suffix.
	Suffix string `json:"suffix,omitempty"`
	// Regex will match if the header with the given name matches this pattern.
	Regex string `json:"regex,omitempty"`
	// Invert inverts the logic of the match.
	Invert bool `json:"invert,omitempty"`
}

func (*ServiceRouteHTTPMatchHeader) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRouteHTTPMatchHeader.

func (*ServiceRouteHTTPMatchHeader) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceRouteHTTPMatchQueryParam

type ServiceRouteHTTPMatchQueryParam struct {
	// Name is the name of the query parameter to match on.
	Name string `json:"name"`
	// Present will match if the query parameter with the given name is present
	// with any value.
	Present bool `json:"present,omitempty"`
	// Exact will match if the query parameter with the given name is this value.
	Exact string `json:"exact,omitempty"`
	// Regex will match if the query parameter with the given name matches this pattern.
	Regex string `json:"regex,omitempty"`
}

func (*ServiceRouteHTTPMatchQueryParam) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRouteHTTPMatchQueryParam.

func (*ServiceRouteHTTPMatchQueryParam) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceRouteMatch

type ServiceRouteMatch struct {
	// HTTP is a set of http-specific match criteria.
	HTTP *ServiceRouteHTTPMatch `json:"http,omitempty"`
}

func (*ServiceRouteMatch) DeepCopy

func (in *ServiceRouteMatch) DeepCopy() *ServiceRouteMatch

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRouteMatch.

func (*ServiceRouteMatch) DeepCopyInto

func (in *ServiceRouteMatch) DeepCopyInto(out *ServiceRouteMatch)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceRouter

type ServiceRouter struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ServiceRouterSpec `json:"spec,omitempty"`
	Status `json:"status,omitempty"`
}

ServiceRouter is the Schema for the servicerouters API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource" +kubebuilder:resource:shortName="service-router"

func (*ServiceRouter) AddFinalizer

func (in *ServiceRouter) AddFinalizer(name string)

func (*ServiceRouter) ConsulGlobalResource

func (in *ServiceRouter) ConsulGlobalResource() bool

func (*ServiceRouter) ConsulKind

func (in *ServiceRouter) ConsulKind() string

func (*ServiceRouter) ConsulMirroringNS

func (in *ServiceRouter) ConsulMirroringNS() string

func (*ServiceRouter) ConsulName

func (in *ServiceRouter) ConsulName() string

func (*ServiceRouter) DeepCopy

func (in *ServiceRouter) DeepCopy() *ServiceRouter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRouter.

func (*ServiceRouter) DeepCopyInto

func (in *ServiceRouter) DeepCopyInto(out *ServiceRouter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceRouter) DeepCopyObject

func (in *ServiceRouter) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ServiceRouter) DefaultNamespaceFields

func (in *ServiceRouter) DefaultNamespaceFields(consulMeta common.ConsulMeta)

DefaultNamespaceFields sets the namespace field on spec.routes[].destination to their default values if namespaces are enabled.

func (*ServiceRouter) Finalizers

func (in *ServiceRouter) Finalizers() []string

func (*ServiceRouter) GetObjectMeta

func (in *ServiceRouter) GetObjectMeta() metav1.ObjectMeta

func (*ServiceRouter) KubeKind

func (in *ServiceRouter) KubeKind() string

func (*ServiceRouter) KubernetesName

func (in *ServiceRouter) KubernetesName() string

func (*ServiceRouter) MatchesConsul

func (in *ServiceRouter) MatchesConsul(candidate capi.ConfigEntry) bool

func (*ServiceRouter) RemoveFinalizer

func (in *ServiceRouter) RemoveFinalizer(name string)

func (*ServiceRouter) SetLastSyncedTime

func (in *ServiceRouter) SetLastSyncedTime(time *metav1.Time)

func (*ServiceRouter) SetSyncedCondition

func (in *ServiceRouter) SetSyncedCondition(status corev1.ConditionStatus, reason, message string)

func (*ServiceRouter) SyncedCondition

func (in *ServiceRouter) SyncedCondition() (status corev1.ConditionStatus, reason, message string)

func (*ServiceRouter) SyncedConditionStatus

func (in *ServiceRouter) SyncedConditionStatus() corev1.ConditionStatus

func (*ServiceRouter) ToConsul

func (in *ServiceRouter) ToConsul(datacenter string) capi.ConfigEntry

func (*ServiceRouter) Validate

func (in *ServiceRouter) Validate(consulMeta common.ConsulMeta) error

type ServiceRouterList

type ServiceRouterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ServiceRouter `json:"items"`
}

ServiceRouterList contains a list of ServiceRouter.

func (*ServiceRouterList) DeepCopy

func (in *ServiceRouterList) DeepCopy() *ServiceRouterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRouterList.

func (*ServiceRouterList) DeepCopyInto

func (in *ServiceRouterList) DeepCopyInto(out *ServiceRouterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceRouterList) DeepCopyObject

func (in *ServiceRouterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ServiceRouterSpec

type ServiceRouterSpec struct {
	// Routes are the list of routes to consider when processing L7 requests.
	// The first route to match in the list is terminal and stops further
	// evaluation. Traffic that fails to match any of the provided routes will
	// be routed to the default service.
	Routes []ServiceRoute `json:"routes,omitempty"`
}

ServiceRouterSpec defines the desired state of ServiceRouter.

func (*ServiceRouterSpec) DeepCopy

func (in *ServiceRouterSpec) DeepCopy() *ServiceRouterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRouterSpec.

func (*ServiceRouterSpec) DeepCopyInto

func (in *ServiceRouterSpec) DeepCopyInto(out *ServiceRouterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceRouterWebhook

type ServiceRouterWebhook struct {
	Logger logr.Logger

	// ConsulMeta contains metadata specific to the Consul installation.
	ConsulMeta common.ConsulMeta

	client.Client
	// contains filtered or unexported fields
}

func (*ServiceRouterWebhook) Handle

func (*ServiceRouterWebhook) List

func (*ServiceRouterWebhook) SetupWithManager

func (v *ServiceRouterWebhook) SetupWithManager(mgr ctrl.Manager)

type ServiceSplit

type ServiceSplit struct {
	// Weight is a value between 0 and 100 reflecting what portion of traffic should be directed to this split.
	// The smallest representable weight is 1/10000 or .01%.
	Weight float32 `json:"weight,omitempty"`
	// Service is the service to resolve instead of the default.
	Service string `json:"service,omitempty"`
	// ServiceSubset is a named subset of the given service to resolve instead of one defined
	// as that service's DefaultSubset. If empty the default subset is used.
	ServiceSubset string `json:"serviceSubset,omitempty"`
	// Namespace is the Consul namespace to resolve the service from instead of
	// the current namespace. If empty the current namespace is assumed.
	Namespace string `json:"namespace,omitempty"`
	// Partition is the Consul partition to resolve the service from instead of
	// the current partition. If empty the current partition is assumed.
	Partition string `json:"partition,omitempty"`
	// Allow HTTP header manipulation to be configured.
	RequestHeaders  *HTTPHeaderModifiers `json:"requestHeaders,omitempty"`
	ResponseHeaders *HTTPHeaderModifiers `json:"responseHeaders,omitempty"`
}

func (*ServiceSplit) DeepCopy

func (in *ServiceSplit) DeepCopy() *ServiceSplit

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSplit.

func (*ServiceSplit) DeepCopyInto

func (in *ServiceSplit) DeepCopyInto(out *ServiceSplit)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceSplits

type ServiceSplits []ServiceSplit

func (ServiceSplits) DeepCopy

func (in ServiceSplits) DeepCopy() ServiceSplits

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSplits.

func (ServiceSplits) DeepCopyInto

func (in ServiceSplits) DeepCopyInto(out *ServiceSplits)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceSplitter

type ServiceSplitter struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ServiceSplitterSpec `json:"spec,omitempty"`
	Status `json:"status,omitempty"`
}

ServiceSplitter is the Schema for the servicesplitters API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource" +kubebuilder:resource:shortName="service-splitter"

func (*ServiceSplitter) AddFinalizer

func (in *ServiceSplitter) AddFinalizer(name string)

func (*ServiceSplitter) ConsulGlobalResource

func (in *ServiceSplitter) ConsulGlobalResource() bool

func (*ServiceSplitter) ConsulKind

func (in *ServiceSplitter) ConsulKind() string

func (*ServiceSplitter) ConsulMirroringNS

func (in *ServiceSplitter) ConsulMirroringNS() string

func (*ServiceSplitter) ConsulName

func (in *ServiceSplitter) ConsulName() string

func (*ServiceSplitter) DeepCopy

func (in *ServiceSplitter) DeepCopy() *ServiceSplitter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSplitter.

func (*ServiceSplitter) DeepCopyInto

func (in *ServiceSplitter) DeepCopyInto(out *ServiceSplitter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceSplitter) DeepCopyObject

func (in *ServiceSplitter) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ServiceSplitter) DefaultNamespaceFields

func (in *ServiceSplitter) DefaultNamespaceFields(_ common.ConsulMeta)

DefaultNamespaceFields has no behaviour here as service-splitter have namespace fields that do not default.

func (*ServiceSplitter) Finalizers

func (in *ServiceSplitter) Finalizers() []string

func (*ServiceSplitter) GetObjectMeta

func (in *ServiceSplitter) GetObjectMeta() metav1.ObjectMeta

func (*ServiceSplitter) KubeKind

func (in *ServiceSplitter) KubeKind() string

func (*ServiceSplitter) KubernetesName

func (in *ServiceSplitter) KubernetesName() string

func (*ServiceSplitter) MatchesConsul

func (in *ServiceSplitter) MatchesConsul(candidate capi.ConfigEntry) bool

func (*ServiceSplitter) RemoveFinalizer

func (in *ServiceSplitter) RemoveFinalizer(name string)

func (*ServiceSplitter) SetLastSyncedTime

func (in *ServiceSplitter) SetLastSyncedTime(time *metav1.Time)

func (*ServiceSplitter) SetSyncedCondition

func (in *ServiceSplitter) SetSyncedCondition(status corev1.ConditionStatus, reason, message string)

func (*ServiceSplitter) SyncedCondition

func (in *ServiceSplitter) SyncedCondition() (status corev1.ConditionStatus, reason, message string)

func (*ServiceSplitter) SyncedConditionStatus

func (in *ServiceSplitter) SyncedConditionStatus() corev1.ConditionStatus

func (*ServiceSplitter) ToConsul

func (in *ServiceSplitter) ToConsul(datacenter string) capi.ConfigEntry

func (*ServiceSplitter) Validate

func (in *ServiceSplitter) Validate(consulMeta common.ConsulMeta) error

type ServiceSplitterList

type ServiceSplitterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []ServiceSplitter `json:"items"`
}

ServiceSplitterList contains a list of ServiceSplitter.

func (*ServiceSplitterList) DeepCopy

func (in *ServiceSplitterList) DeepCopy() *ServiceSplitterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSplitterList.

func (*ServiceSplitterList) DeepCopyInto

func (in *ServiceSplitterList) DeepCopyInto(out *ServiceSplitterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServiceSplitterList) DeepCopyObject

func (in *ServiceSplitterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ServiceSplitterSpec

type ServiceSplitterSpec struct {
	// Splits defines how much traffic to send to which set of service instances during a traffic split.
	// The sum of weights across all splits must add up to 100.
	Splits ServiceSplits `json:"splits,omitempty"`
}

ServiceSplitterSpec defines the desired state of ServiceSplitter.

func (*ServiceSplitterSpec) DeepCopy

func (in *ServiceSplitterSpec) DeepCopy() *ServiceSplitterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSplitterSpec.

func (*ServiceSplitterSpec) DeepCopyInto

func (in *ServiceSplitterSpec) DeepCopyInto(out *ServiceSplitterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceSplitterWebhook

type ServiceSplitterWebhook struct {
	Logger logr.Logger

	// ConsulMeta contains metadata specific to the Consul installation.
	ConsulMeta common.ConsulMeta

	client.Client
	// contains filtered or unexported fields
}

func (*ServiceSplitterWebhook) Handle

func (*ServiceSplitterWebhook) List

func (*ServiceSplitterWebhook) SetupWithManager

func (v *ServiceSplitterWebhook) SetupWithManager(mgr ctrl.Manager)

type SourceIntention

type SourceIntention struct {
	// Name is the source of the intention. This is the name of a
	// Consul service. The service doesn't need to be registered.
	Name string `json:"name,omitempty"`
	// Namespace is the namespace for the Name parameter.
	Namespace string `json:"namespace,omitempty"`
	// Peer is the peer name for the Name parameter.
	Peer string `json:"peer,omitempty"`
	// Partition is the Admin Partition for the Name parameter.
	Partition string `json:"partition,omitempty"`
	// SamenessGroup is the name of the sameness group, if applicable.
	SamenessGroup string `json:"samenessGroup,omitempty"`
	// Action is required for an L4 intention, and should be set to one of
	// "allow" or "deny" for the action that should be taken if this intention matches a request.
	Action IntentionAction `json:"action,omitempty"`
	// Permissions is the list of all additional L7 attributes that extend the intention match criteria.
	// Permission precedence is applied top to bottom. For any given request the first permission to match
	// in the list is terminal and stops further evaluation. As with L4 intentions, traffic that fails to
	// match any of the provided permissions in this intention will be subject to the default intention
	// behavior is defined by the default ACL policy. This should be omitted for an L4 intention
	// as it is mutually exclusive with the Action field.
	Permissions IntentionPermissions `json:"permissions,omitempty"`
	// Description for the intention. This is not used by Consul, but is presented in API responses to assist tooling.
	Description string `json:"description,omitempty"`
}

func (*SourceIntention) DeepCopy

func (in *SourceIntention) DeepCopy() *SourceIntention

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceIntention.

func (*SourceIntention) DeepCopyInto

func (in *SourceIntention) DeepCopyInto(out *SourceIntention)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SourceIntentions

type SourceIntentions []*SourceIntention

func (SourceIntentions) DeepCopy

func (in SourceIntentions) DeepCopy() SourceIntentions

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceIntentions.

func (SourceIntentions) DeepCopyInto

func (in SourceIntentions) DeepCopyInto(out *SourceIntentions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Status

type Status struct {
	// Conditions indicate the latest available observations of a resource's current state.
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	Conditions Conditions `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`

	// LastSyncedTime is the last time the resource successfully synced with Consul.
	// +optional
	LastSyncedTime *metav1.Time `json:"lastSyncedTime,omitempty" description:"last time the condition transitioned from one status to another"`
}

+k8s:deepcopy-gen=true +k8s:openapi-gen=true

func (*Status) DeepCopy

func (in *Status) DeepCopy() *Status

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status.

func (*Status) DeepCopyInto

func (in *Status) DeepCopyInto(out *Status)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Status) GetCondition

func (s *Status) GetCondition(t ConditionType) *Condition

type TerminatingGateway

type TerminatingGateway struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TerminatingGatewaySpec `json:"spec,omitempty"`
	Status `json:"status,omitempty"`
}

TerminatingGateway is the Schema for the terminatinggateways API +kubebuilder:printcolumn:name="Synced",type="string",JSONPath=".status.conditions[?(@.type==\"Synced\")].status",description="The sync status of the resource with Consul" +kubebuilder:printcolumn:name="Last Synced",type="date",JSONPath=".status.lastSyncedTime",description="The last successful synced time of the resource with Consul" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="The age of the resource" +kubebuilder:resource:shortName="terminating-gateway"

func (*TerminatingGateway) AddFinalizer

func (in *TerminatingGateway) AddFinalizer(name string)

func (*TerminatingGateway) ConsulGlobalResource

func (in *TerminatingGateway) ConsulGlobalResource() bool

func (*TerminatingGateway) ConsulKind

func (in *TerminatingGateway) ConsulKind() string

func (*TerminatingGateway) ConsulMirroringNS

func (in *TerminatingGateway) ConsulMirroringNS() string

func (*TerminatingGateway) ConsulName

func (in *TerminatingGateway) ConsulName() string

func (*TerminatingGateway) DeepCopy

func (in *TerminatingGateway) DeepCopy() *TerminatingGateway

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TerminatingGateway.

func (*TerminatingGateway) DeepCopyInto

func (in *TerminatingGateway) DeepCopyInto(out *TerminatingGateway)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TerminatingGateway) DeepCopyObject

func (in *TerminatingGateway) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*TerminatingGateway) DefaultNamespaceFields

func (in *TerminatingGateway) DefaultNamespaceFields(consulMeta common.ConsulMeta)

DefaultNamespaceFields sets the namespace field on spec.services to their default values if namespaces are enabled.

func (*TerminatingGateway) Finalizers

func (in *TerminatingGateway) Finalizers() []string

func (*TerminatingGateway) GetObjectMeta

func (in *TerminatingGateway) GetObjectMeta() metav1.ObjectMeta

func (*TerminatingGateway) KubeKind

func (in *TerminatingGateway) KubeKind() string

func (*TerminatingGateway) KubernetesName

func (in *TerminatingGateway) KubernetesName() string

func (*TerminatingGateway) MatchesConsul

func (in *TerminatingGateway) MatchesConsul(candidate capi.ConfigEntry) bool

func (*TerminatingGateway) RemoveFinalizer

func (in *TerminatingGateway) RemoveFinalizer(name string)

func (*TerminatingGateway) SetACLStatusConditon

func (in *TerminatingGateway) SetACLStatusConditon(status corev1.ConditionStatus, reason, message string)

func (*TerminatingGateway) SetLastSyncedTime

func (in *TerminatingGateway) SetLastSyncedTime(time *metav1.Time)

func (*TerminatingGateway) SetSyncedCondition

func (in *TerminatingGateway) SetSyncedCondition(status corev1.ConditionStatus, reason, message string)

func (*TerminatingGateway) SyncedCondition

func (in *TerminatingGateway) SyncedCondition() (status corev1.ConditionStatus, reason, message string)

func (*TerminatingGateway) SyncedConditionStatus

func (in *TerminatingGateway) SyncedConditionStatus() corev1.ConditionStatus

func (*TerminatingGateway) ToConsul

func (in *TerminatingGateway) ToConsul(datacenter string) capi.ConfigEntry

func (*TerminatingGateway) Validate

func (in *TerminatingGateway) Validate(consulMeta common.ConsulMeta) error

type TerminatingGatewayList

type TerminatingGatewayList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []TerminatingGateway `json:"items"`
}

TerminatingGatewayList contains a list of TerminatingGateway.

func (*TerminatingGatewayList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TerminatingGatewayList.

func (*TerminatingGatewayList) DeepCopyInto

func (in *TerminatingGatewayList) DeepCopyInto(out *TerminatingGatewayList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TerminatingGatewayList) DeepCopyObject

func (in *TerminatingGatewayList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TerminatingGatewaySpec

type TerminatingGatewaySpec struct {
	// Services is a list of service names represented by the terminating gateway.
	Services []LinkedService `json:"services,omitempty"`
}

TerminatingGatewaySpec defines the desired state of TerminatingGateway.

func (*TerminatingGatewaySpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TerminatingGatewaySpec.

func (*TerminatingGatewaySpec) DeepCopyInto

func (in *TerminatingGatewaySpec) DeepCopyInto(out *TerminatingGatewaySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TerminatingGatewayWebhook

type TerminatingGatewayWebhook struct {
	Logger logr.Logger

	// ConsulMeta contains metadata specific to the Consul installation.
	ConsulMeta common.ConsulMeta

	client.Client
	// contains filtered or unexported fields
}

func (*TerminatingGatewayWebhook) Handle

func (*TerminatingGatewayWebhook) List

func (*TerminatingGatewayWebhook) SetupWithManager

func (v *TerminatingGatewayWebhook) SetupWithManager(mgr ctrl.Manager)

type TransparentProxy

type TransparentProxy struct {
	// OutboundListenerPort is the port of the listener where outbound application
	// traffic is being redirected to.
	OutboundListenerPort int `json:"outboundListenerPort,omitempty"`

	// DialedDirectly indicates whether transparent proxies can dial this proxy instance directly.
	// The discovery chain is not considered when dialing a service instance directly.
	// This setting is useful when addressing stateful services, such as a database cluster with a leader node.
	DialedDirectly bool `json:"dialedDirectly,omitempty"`
}

func (*TransparentProxy) DeepCopy

func (in *TransparentProxy) DeepCopy() *TransparentProxy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransparentProxy.

func (*TransparentProxy) DeepCopyInto

func (in *TransparentProxy) DeepCopyInto(out *TransparentProxy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TransparentProxyMeshConfig

type TransparentProxyMeshConfig struct {
	// MeshDestinationsOnly determines whether sidecar proxies operating in "transparent" mode can proxy traffic
	// to IP addresses not registered in Consul's catalog. If enabled, traffic will only be proxied to upstreams
	// with service registrations in the catalog.
	MeshDestinationsOnly bool `json:"meshDestinationsOnly,omitempty"`
}

TransparentProxyMeshConfig controls configuration specific to proxies in "transparent" mode. Added in v1.10.0.

func (*TransparentProxyMeshConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransparentProxyMeshConfig.

func (*TransparentProxyMeshConfig) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Upstream

type Upstream struct {
	// Name is only accepted within service ServiceDefaultsSpec.UpstreamConfig.Overrides config entry.
	Name string `json:"name,omitempty"`
	// Namespace is only accepted within service ServiceDefaultsSpec.UpstreamConfig.Overrides config entry.
	Namespace string `json:"namespace,omitempty"`
	// Partition is only accepted within service ServiceDefaultsSpec.UpstreamConfig.Overrides config entry.
	Partition string `json:"partition,omitempty"`
	// Peer is only accepted within service ServiceDefaultsSpec.UpstreamConfig.Overrides config entry.
	Peer string `json:"peer,omitempty"`
	// EnvoyListenerJSON is a complete override ("escape hatch") for the upstream's
	// listener.
	// Note: This escape hatch is NOT compatible with the discovery chain and
	// will be ignored if a discovery chain is active.
	EnvoyListenerJSON string `json:"envoyListenerJSON,omitempty"`
	// EnvoyClusterJSON is a complete override ("escape hatch") for the upstream's
	// cluster. The Connect client TLS certificate and context will be injected
	// overriding any TLS settings present.
	// Note: This escape hatch is NOT compatible with the discovery chain and
	// will be ignored if a discovery chain is active.
	EnvoyClusterJSON string `json:"envoyClusterJSON,omitempty"`
	// Protocol describes the upstream's service protocol. Valid values are "tcp",
	// "http" and "grpc". Anything else is treated as tcp. This enables protocol
	// aware features like per-request metrics and connection pooling, tracing,
	// routing etc.
	Protocol string `json:"protocol,omitempty"`
	// ConnectTimeoutMs is the number of milliseconds to timeout making a new
	// connection to this upstream. Defaults to 5000 (5 seconds) if not set.
	ConnectTimeoutMs int `json:"connectTimeoutMs,omitempty"`
	// Limits are the set of limits that are applied to the proxy for a specific upstream of a
	// service instance.
	Limits *UpstreamLimits `json:"limits,omitempty"`
	// PassiveHealthCheck configuration determines how upstream proxy instances will
	// be monitored for removal from the load balancing pool.
	PassiveHealthCheck *PassiveHealthCheck `json:"passiveHealthCheck,omitempty"`
	// MeshGatewayConfig controls how Mesh Gateways are configured and used.
	MeshGateway MeshGateway `json:"meshGateway,omitempty"`
}

func (*Upstream) DeepCopy

func (in *Upstream) DeepCopy() *Upstream

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Upstream.

func (*Upstream) DeepCopyInto

func (in *Upstream) DeepCopyInto(out *Upstream)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type UpstreamLimits

type UpstreamLimits struct {
	// MaxConnections is the maximum number of connections the local proxy can
	// make to the upstream service.
	MaxConnections *int `json:"maxConnections,omitempty"`
	// MaxPendingRequests is the maximum number of requests that will be queued
	// waiting for an available connection. This is mostly applicable to HTTP/1.1
	// clusters since all HTTP/2 requests are streamed over a single
	// connection.
	MaxPendingRequests *int `json:"maxPendingRequests,omitempty"`
	// MaxConcurrentRequests is the maximum number of in-flight requests that will be allowed
	// to the upstream cluster at a point in time. This is mostly applicable to HTTP/2
	// clusters since all HTTP/1.1 requests are limited by MaxConnections.
	MaxConcurrentRequests *int `json:"maxConcurrentRequests,omitempty"`
}

UpstreamLimits describes the limits that are associated with a specific upstream of a service instance.

func (*UpstreamLimits) DeepCopy

func (in *UpstreamLimits) DeepCopy() *UpstreamLimits

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpstreamLimits.

func (*UpstreamLimits) DeepCopyInto

func (in *UpstreamLimits) DeepCopyInto(out *UpstreamLimits)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Upstreams

type Upstreams struct {
	// Defaults contains default configuration for all upstreams of a given
	// service. The name field must be empty.
	Defaults *Upstream `json:"defaults,omitempty"`
	// Overrides is a slice of per-service configuration. The name field is
	// required.
	Overrides []*Upstream `json:"overrides,omitempty"`
}

func (*Upstreams) DeepCopy

func (in *Upstreams) DeepCopy() *Upstreams

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Upstreams.

func (*Upstreams) DeepCopyInto

func (in *Upstreams) DeepCopyInto(out *Upstreams)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Weights

type Weights struct {
	Passing int `json:"passing"`
	Warning int `json:"warning"`
}

func (*Weights) DeepCopy

func (in *Weights) DeepCopy() *Weights

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Weights.

func (*Weights) DeepCopyInto

func (in *Weights) DeepCopyInto(out *Weights)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Weights) Equal

func (w Weights) Equal(other Weights) bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL