v1alpha1

package
v0.26.0 Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2021 License: MPL-2.0 Imports: 22 Imported by: 0

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 ConsulHashicorpGroup string = "consul.hashicorp.com"
View Source
const (
	MeshKubeKind = "mesh"
)
View Source
const (
	ProxyDefaultsKubeKind string = "proxydefaults"
)
View Source
const (
	ServiceDefaultsKubeKind string = "servicedefaults"
)
View Source
const ServiceResolverKubeKind string = "serviceresolver"
View Source
const (
	ServiceRouterKubeKind string = "servicerouter"
)

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
)

Functions

This section is empty.

Types

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"
)

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 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 Destination

type Destination 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 (*Destination) DeepCopy

func (in *Destination) DeepCopy() *Destination

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

func (*Destination) DeepCopyInto

func (in *Destination) DeepCopyInto(out *Destination)

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

type Expose added in v0.26.0

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 added in v0.26.0

func (in *Expose) DeepCopy() *Expose

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

func (*Expose) DeepCopyInto added in v0.26.0

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 GatewayTLSConfig added in v0.22.0

type GatewayTLSConfig struct {
	// Indicates that TLS should be enabled for this gateway service.
	Enabled bool `json:"enabled"`
}

func (*GatewayTLSConfig) DeepCopy added in v0.22.0

func (in *GatewayTLSConfig) DeepCopy() *GatewayTLSConfig

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

func (*GatewayTLSConfig) DeepCopyInto added in v0.22.0

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

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 IngressGateway added in v0.22.0

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"

func (*IngressGateway) AddFinalizer added in v0.22.0

func (in *IngressGateway) AddFinalizer(name string)

func (*IngressGateway) ConsulGlobalResource added in v0.22.0

func (in *IngressGateway) ConsulGlobalResource() bool

func (*IngressGateway) ConsulKind added in v0.22.0

func (in *IngressGateway) ConsulKind() string

func (*IngressGateway) ConsulMirroringNS added in v0.22.0

func (in *IngressGateway) ConsulMirroringNS() string

func (*IngressGateway) ConsulName added in v0.22.0

func (in *IngressGateway) ConsulName() string

func (*IngressGateway) DeepCopy added in v0.22.0

func (in *IngressGateway) DeepCopy() *IngressGateway

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

func (*IngressGateway) DeepCopyInto added in v0.22.0

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 added in v0.22.0

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

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

func (*IngressGateway) DefaultNamespaceFields added in v0.23.0

func (in *IngressGateway) DefaultNamespaceFields(consulNamespacesEnabled bool, destinationNamespace string, mirroring bool, prefix string)

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

func (*IngressGateway) Finalizers added in v0.22.0

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

func (*IngressGateway) GetObjectMeta added in v0.22.0

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

func (*IngressGateway) KubeKind added in v0.22.0

func (in *IngressGateway) KubeKind() string

func (*IngressGateway) KubernetesName added in v0.22.0

func (in *IngressGateway) KubernetesName() string

func (*IngressGateway) MatchesConsul added in v0.22.0

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

func (*IngressGateway) RemoveFinalizer added in v0.22.0

func (in *IngressGateway) RemoveFinalizer(name string)

func (*IngressGateway) SetLastSyncedTime added in v0.25.0

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

func (*IngressGateway) SetSyncedCondition added in v0.22.0

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

func (*IngressGateway) SyncedCondition added in v0.22.0

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

func (*IngressGateway) SyncedConditionStatus added in v0.22.0

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

func (*IngressGateway) ToConsul added in v0.22.0

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

func (*IngressGateway) Validate added in v0.22.0

func (in *IngressGateway) Validate(namespacesEnabled bool) error

type IngressGatewayList added in v0.22.0

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 added in v0.22.0

func (in *IngressGatewayList) DeepCopy() *IngressGatewayList

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

func (*IngressGatewayList) DeepCopyInto added in v0.22.0

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 added in v0.22.0

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

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

type IngressGatewaySpec added in v0.22.0

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"`
}

IngressGatewaySpec defines the desired state of IngressGateway

func (*IngressGatewaySpec) DeepCopy added in v0.22.0

func (in *IngressGatewaySpec) DeepCopy() *IngressGatewaySpec

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

func (*IngressGatewaySpec) DeepCopyInto added in v0.22.0

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 added in v0.22.0

type IngressGatewayWebhook struct {
	ConsulClient *capi.Client
	Logger       logr.Logger

	// EnableConsulNamespaces indicates that a user is running Consul Enterprise
	// with version 1.7+ which supports namespaces.
	EnableConsulNamespaces bool

	// EnableNSMirroring causes Consul namespaces to be created to match the
	// k8s namespace of any config entry custom resource. Config entries will
	// be created in the matching Consul namespace.
	EnableNSMirroring bool

	// ConsulDestinationNamespace is the namespace in Consul that the config entry created
	// in k8s will get mapped into. If the Consul namespace does not already exist, it will
	// be created.
	ConsulDestinationNamespace string

	// NSMirroringPrefix works in conjunction with Namespace Mirroring.
	// It is the prefix added to the Consul namespace to map to a specific.
	// k8s namespace. For example, if `mirroringK8SPrefix` is set to "k8s-", a
	// service in the k8s `staging` namespace will be registered into the
	// `k8s-staging` Consul namespace.
	NSMirroringPrefix string

	client.Client
	// contains filtered or unexported fields
}

func (*IngressGatewayWebhook) Handle added in v0.22.0

func (*IngressGatewayWebhook) InjectDecoder added in v0.22.0

func (v *IngressGatewayWebhook) InjectDecoder(d *admission.Decoder) error

func (*IngressGatewayWebhook) List added in v0.22.0

type IngressListener added in v0.22.0

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"`

	// 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 added in v0.22.0

func (in *IngressListener) DeepCopy() *IngressListener

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

func (*IngressListener) DeepCopyInto added in v0.22.0

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 added in v0.22.0

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"`
}

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

func (*IngressService) DeepCopy added in v0.22.0

func (in *IngressService) DeepCopy() *IngressService

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

func (*IngressService) DeepCopyInto added in v0.22.0

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

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 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"`
	// Regex matches 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 (*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 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"`
}

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 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 added in v0.22.0

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"`
}

A LinkedService is a service represented by a terminating gateway

func (*LinkedService) DeepCopy added in v0.22.0

func (in *LinkedService) DeepCopy() *LinkedService

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

func (*LinkedService) DeepCopyInto added in v0.22.0

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

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

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 Mesh added in v0.26.0

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 added in v0.26.0

func (in *Mesh) AddFinalizer(name string)

func (*Mesh) ConsulGlobalResource added in v0.26.0

func (in *Mesh) ConsulGlobalResource() bool

func (*Mesh) ConsulKind added in v0.26.0

func (in *Mesh) ConsulKind() string

func (*Mesh) ConsulMirroringNS added in v0.26.0

func (in *Mesh) ConsulMirroringNS() string

func (*Mesh) ConsulName added in v0.26.0

func (in *Mesh) ConsulName() string

func (*Mesh) DeepCopy added in v0.26.0

func (in *Mesh) DeepCopy() *Mesh

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

func (*Mesh) DeepCopyInto added in v0.26.0

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 added in v0.26.0

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

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

func (*Mesh) DefaultNamespaceFields added in v0.26.0

func (in *Mesh) DefaultNamespaceFields(_ bool, _ string, _ bool, _ string)

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

func (*Mesh) Finalizers added in v0.26.0

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

func (*Mesh) GetObjectMeta added in v0.26.0

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

func (*Mesh) KubeKind added in v0.26.0

func (in *Mesh) KubeKind() string

func (*Mesh) KubernetesName added in v0.26.0

func (in *Mesh) KubernetesName() string

func (*Mesh) MatchesConsul added in v0.26.0

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

func (*Mesh) RemoveFinalizer added in v0.26.0

func (in *Mesh) RemoveFinalizer(name string)

func (*Mesh) SetLastSyncedTime added in v0.26.0

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

func (*Mesh) SetSyncedCondition added in v0.26.0

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

func (*Mesh) SyncedCondition added in v0.26.0

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

func (*Mesh) SyncedConditionStatus added in v0.26.0

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

func (*Mesh) ToConsul added in v0.26.0

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

func (*Mesh) Validate added in v0.26.0

func (in *Mesh) Validate(_ bool) error

type MeshGateway added in v0.26.0

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 added in v0.26.0

func (in *MeshGateway) DeepCopy() *MeshGateway

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

func (*MeshGateway) DeepCopyInto added in v0.26.0

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 MeshList added in v0.26.0

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 added in v0.26.0

func (in *MeshList) DeepCopy() *MeshList

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

func (*MeshList) DeepCopyInto added in v0.26.0

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 added in v0.26.0

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

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

type MeshSpec added in v0.26.0

type MeshSpec struct {
	TransparentProxy TransparentProxyMeshConfig `json:"transparentProxy,omitempty"`
}

MeshSpec defines the desired state of Mesh

func (*MeshSpec) DeepCopy added in v0.26.0

func (in *MeshSpec) DeepCopy() *MeshSpec

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

func (*MeshSpec) DeepCopyInto added in v0.26.0

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

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

type MeshWebhook added in v0.26.0

type MeshWebhook struct {
	client.Client
	ConsulClient *capi.Client
	Logger       logr.Logger

	EnableConsulNamespaces bool
	EnableNSMirroring      bool
	// contains filtered or unexported fields
}

func (*MeshWebhook) Handle added in v0.26.0

func (*MeshWebhook) InjectDecoder added in v0.26.0

func (v *MeshWebhook) InjectDecoder(d *admission.Decoder) error

type PassiveHealthCheck added in v0.26.0

type PassiveHealthCheck struct {
	// Interval between health check analysis sweeps. Each sweep may remove
	// hosts or return hosts to the pool.
	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"`
}

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

func (*PassiveHealthCheck) DeepCopy added in v0.26.0

func (in *PassiveHealthCheck) DeepCopy() *PassiveHealthCheck

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

func (*PassiveHealthCheck) DeepCopyInto added in v0.26.0

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

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"

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 added in v0.23.0

func (in *ProxyDefaults) DefaultNamespaceFields(_ bool, _ string, _ bool, _ string)

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 added in v0.25.0

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(namespacesEnabled bool) 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 {
	// 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"`
	// 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"`
	// 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"`
}

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
	ConsulClient *capi.Client
	Logger       logr.Logger

	EnableConsulNamespaces bool
	EnableNSMirroring      bool
	// contains filtered or unexported fields
}

func (*ProxyDefaultsWebhook) Handle

func (*ProxyDefaultsWebhook) InjectDecoder

func (v *ProxyDefaultsWebhook) InjectDecoder(d *admission.Decoder) error

type ProxyMode added in v0.26.0

type ProxyMode string

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 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"

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 added in v0.23.0

func (in *ServiceDefaults) DefaultNamespaceFields(_ bool, _ string, _ bool, _ string)

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 added in v0.25.0

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(namespacesEnabled bool) 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 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"`
	// 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"`
	// 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"`
	// 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"`
	// 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"`
}

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 {
	ConsulClient *capi.Client
	Logger       logr.Logger

	// EnableConsulNamespaces indicates that a user is running Consul Enterprise
	// with version 1.7+ which supports namespaces.
	EnableConsulNamespaces bool

	// EnableNSMirroring causes Consul namespaces to be created to match the
	// k8s namespace of any config entry custom resource. Config entries will
	// be created in the matching Consul namespace.
	EnableNSMirroring bool

	// ConsulDestinationNamespace is the namespace in Consul that the config entry created
	// in k8s will get mapped into. If the Consul namespace does not already exist, it will
	// be created.
	ConsulDestinationNamespace string

	// NSMirroringPrefix works in conjunction with Namespace Mirroring.
	// It is the prefix added to the Consul namespace to map to a specific.
	// k8s namespace. For example, if `mirroringK8SPrefix` is set to "k8s-", a
	// service in the k8s `staging` namespace will be registered into the
	// `k8s-staging` Consul namespace.
	NSMirroringPrefix string

	client.Client
	// contains filtered or unexported fields
}

func (*ServiceDefaultsWebhook) Handle

func (*ServiceDefaultsWebhook) InjectDecoder

func (v *ServiceDefaultsWebhook) InjectDecoder(d *admission.Decoder) error

func (*ServiceDefaultsWebhook) List

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"

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 added in v0.23.0

func (in *ServiceIntentions) DefaultNamespaceFields(consulNamespacesEnabled bool, destinationNamespace string, mirroring bool, prefix string)

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 added in v0.25.0

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(namespacesEnabled bool) 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 Destination `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"`
}

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
	ConsulClient *capi.Client
	Logger       logr.Logger

	EnableConsulNamespaces     bool
	EnableNSMirroring          bool
	ConsulDestinationNamespace string
	NSMirroringPrefix          string
	// contains filtered or unexported fields
}

func (*ServiceIntentionsWebhook) Handle

func (*ServiceIntentionsWebhook) InjectDecoder

func (v *ServiceIntentionsWebhook) InjectDecoder(d *admission.Decoder) error

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"

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 added in v0.23.0

func (in *ServiceResolver) DefaultNamespaceFields(_ bool, _ string, _ bool, _ string)

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 added in v0.25.0

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(namespacesEnabled bool) 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"`
}

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 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 namespace to resolve the service from instead of the
	// current one.
	Namespace string `json:"namespace,omitempty"`
	// Datacenter is the datacenter to resolve the service from instead of the
	// current one.
	Datacenter string `json:"datacenter,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"`
	// LoadBalancer determines the load balancing policy and configuration for services
	// issuing requests to this upstream service.
	LoadBalancer *LoadBalancer `json:"loadBalancer,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 {
	ConsulClient *capi.Client
	Logger       logr.Logger

	// EnableConsulNamespaces indicates that a user is running Consul Enterprise
	// with version 1.7+ which supports namespaces.
	EnableConsulNamespaces bool

	// EnableNSMirroring causes Consul namespaces to be created to match the
	// k8s namespace of any config entry custom resource. Config entries will
	// be created in the matching Consul namespace.
	EnableNSMirroring bool

	// ConsulDestinationNamespace is the namespace in Consul that the config entry created
	// in k8s will get mapped into. If the Consul namespace does not already exist, it will
	// be created.
	ConsulDestinationNamespace string

	// NSMirroringPrefix works in conjunction with Namespace Mirroring.
	// It is the prefix added to the Consul namespace to map to a specific.
	// k8s namespace. For example, if `mirroringK8SPrefix` is set to "k8s-", a
	// service in the k8s `staging` namespace will be registered into the
	// `k8s-staging` Consul namespace.
	NSMirroringPrefix string

	client.Client
	// contains filtered or unexported fields
}

func (*ServiceResolverWebhook) Handle

func (*ServiceResolverWebhook) InjectDecoder

func (v *ServiceResolverWebhook) InjectDecoder(d *admission.Decoder) error

func (*ServiceResolverWebhook) List

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"`
	// 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"`
	// 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"`
	// RetryOnStatusCodes is a flat list of http response status codes that are eligible for retry.
	RetryOnStatusCodes []uint32 `json:"retryOnStatusCodes,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 {
	// 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"

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 added in v0.23.0

func (in *ServiceRouter) DefaultNamespaceFields(consulNamespacesEnabled bool, destinationNamespace string, mirroring bool, prefix string)

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 added in v0.25.0

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(namespacesEnabled bool) 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 {
	ConsulClient *capi.Client
	Logger       logr.Logger

	// EnableConsulNamespaces indicates that a user is running Consul Enterprise
	// with version 1.7+ which supports namespaces.
	EnableConsulNamespaces bool

	// EnableNSMirroring causes Consul namespaces to be created to match the
	// k8s namespace of any config entry custom resource. Config entries will
	// be created in the matching Consul namespace.
	EnableNSMirroring bool

	// ConsulDestinationNamespace is the namespace in Consul that the config entry created
	// in k8s will get mapped into. If the Consul namespace does not already exist, it will
	// be created.
	ConsulDestinationNamespace string

	// NSMirroringPrefix works in conjunction with Namespace Mirroring.
	// It is the prefix added to the Consul namespace to map to a specific.
	// k8s namespace. For example, if `mirroringK8SPrefix` is set to "k8s-", a
	// service in the k8s `staging` namespace will be registered into the
	// `k8s-staging` Consul namespace.
	NSMirroringPrefix string

	client.Client
	// contains filtered or unexported fields
}

func (*ServiceRouterWebhook) Handle

func (*ServiceRouterWebhook) InjectDecoder

func (v *ServiceRouterWebhook) InjectDecoder(d *admission.Decoder) error

func (*ServiceRouterWebhook) List

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"`
	// The namespace to resolve the service from instead of the current namespace.
	// If empty the current namespace is assumed.
	Namespace string `json:"namespace,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"

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 added in v0.23.0

func (in *ServiceSplitter) DefaultNamespaceFields(_ bool, _ string, _ bool, _ string)

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 added in v0.25.0

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(namespacesEnabled bool) 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 {
	ConsulClient *capi.Client
	Logger       logr.Logger

	// EnableConsulNamespaces indicates that a user is running Consul Enterprise
	// with version 1.7+ which supports namespaces.
	EnableConsulNamespaces bool

	// EnableNSMirroring causes Consul namespaces to be created to match the
	// k8s namespace of any config entry custom resource. Config entries will
	// be created in the matching Consul namespace.
	EnableNSMirroring bool

	// ConsulDestinationNamespace is the namespace in Consul that the config entry created
	// in k8s will get mapped into. If the Consul namespace does not already exist, it will
	// be created.
	ConsulDestinationNamespace string

	// NSMirroringPrefix works in conjunction with Namespace Mirroring.
	// It is the prefix added to the Consul namespace to map to a specific.
	// k8s namespace. For example, if `mirroringK8SPrefix` is set to "k8s-", a
	// service in the k8s `staging` namespace will be registered into the
	// `k8s-staging` Consul namespace.
	NSMirroringPrefix string

	client.Client
	// contains filtered or unexported fields
}

func (*ServiceSplitterWebhook) Handle

func (*ServiceSplitterWebhook) InjectDecoder

func (v *ServiceSplitterWebhook) InjectDecoder(d *admission.Decoder) error

func (*ServiceSplitterWebhook) List

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"`
	// 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 added in v0.22.0

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"

func (*TerminatingGateway) AddFinalizer added in v0.22.0

func (in *TerminatingGateway) AddFinalizer(name string)

func (*TerminatingGateway) ConsulGlobalResource added in v0.22.0

func (in *TerminatingGateway) ConsulGlobalResource() bool

func (*TerminatingGateway) ConsulKind added in v0.22.0

func (in *TerminatingGateway) ConsulKind() string

func (*TerminatingGateway) ConsulMirroringNS added in v0.22.0

func (in *TerminatingGateway) ConsulMirroringNS() string

func (*TerminatingGateway) ConsulName added in v0.22.0

func (in *TerminatingGateway) ConsulName() string

func (*TerminatingGateway) DeepCopy added in v0.22.0

func (in *TerminatingGateway) DeepCopy() *TerminatingGateway

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

func (*TerminatingGateway) DeepCopyInto added in v0.22.0

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 added in v0.22.0

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

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

func (*TerminatingGateway) DefaultNamespaceFields added in v0.23.0

func (in *TerminatingGateway) DefaultNamespaceFields(consulNamespacesEnabled bool, destinationNamespace string, mirroring bool, prefix string)

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

func (*TerminatingGateway) Finalizers added in v0.22.0

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

func (*TerminatingGateway) GetObjectMeta added in v0.22.0

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

func (*TerminatingGateway) KubeKind added in v0.22.0

func (in *TerminatingGateway) KubeKind() string

func (*TerminatingGateway) KubernetesName added in v0.22.0

func (in *TerminatingGateway) KubernetesName() string

func (*TerminatingGateway) MatchesConsul added in v0.22.0

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

func (*TerminatingGateway) RemoveFinalizer added in v0.22.0

func (in *TerminatingGateway) RemoveFinalizer(name string)

func (*TerminatingGateway) SetLastSyncedTime added in v0.25.0

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

func (*TerminatingGateway) SetSyncedCondition added in v0.22.0

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

func (*TerminatingGateway) SyncedCondition added in v0.22.0

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

func (*TerminatingGateway) SyncedConditionStatus added in v0.22.0

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

func (*TerminatingGateway) ToConsul added in v0.22.0

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

func (*TerminatingGateway) Validate added in v0.22.0

func (in *TerminatingGateway) Validate(namespacesEnabled bool) error

type TerminatingGatewayList added in v0.22.0

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 added in v0.22.0

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

func (*TerminatingGatewayList) DeepCopyInto added in v0.22.0

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 added in v0.22.0

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

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

type TerminatingGatewaySpec added in v0.22.0

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 added in v0.22.0

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

func (*TerminatingGatewaySpec) DeepCopyInto added in v0.22.0

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 added in v0.22.0

type TerminatingGatewayWebhook struct {
	ConsulClient *capi.Client
	Logger       logr.Logger

	// EnableConsulNamespaces indicates that a user is running Consul Enterprise
	// with version 1.7+ which supports namespaces.
	EnableConsulNamespaces bool

	// EnableNSMirroring causes Consul namespaces to be created to match the
	// k8s namespace of any config entry custom resource. Config entries will
	// be created in the matching Consul namespace.
	EnableNSMirroring bool

	// ConsulDestinationNamespace is the namespace in Consul that the config entry created
	// in k8s will get mapped into. If the Consul namespace does not already exist, it will
	// be created.
	ConsulDestinationNamespace string

	// NSMirroringPrefix works in conjunction with Namespace Mirroring.
	// It is the prefix added to the Consul namespace to map to a specific.
	// k8s namespace. For example, if `mirroringK8SPrefix` is set to "k8s-", a
	// service in the k8s `staging` namespace will be registered into the
	// `k8s-staging` Consul namespace.
	NSMirroringPrefix string

	client.Client
	// contains filtered or unexported fields
}

func (*TerminatingGatewayWebhook) Handle added in v0.22.0

func (*TerminatingGatewayWebhook) InjectDecoder added in v0.22.0

func (v *TerminatingGatewayWebhook) InjectDecoder(d *admission.Decoder) error

func (*TerminatingGatewayWebhook) List added in v0.22.0

type TransparentProxy added in v0.26.0

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 added in v0.26.0

func (in *TransparentProxy) DeepCopy() *TransparentProxy

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

func (*TransparentProxy) DeepCopyInto added in v0.26.0

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 added in v0.26.0

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 added in v0.26.0

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

func (*TransparentProxyMeshConfig) DeepCopyInto added in v0.26.0

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

type Upstream added in v0.26.0

type Upstream struct {
	// Name is only accepted within a service-defaults config entry.
	Name string `json:"name,omitempty"`
	// Namespace is only accepted within a service-defaults config entry.
	Namespace string `json:"namespace,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 added in v0.26.0

func (in *Upstream) DeepCopy() *Upstream

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

func (*Upstream) DeepCopyInto added in v0.26.0

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 added in v0.26.0

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 added in v0.26.0

func (in *UpstreamLimits) DeepCopy() *UpstreamLimits

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

func (*UpstreamLimits) DeepCopyInto added in v0.26.0

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 added in v0.26.0

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 added in v0.26.0

func (in *Upstreams) DeepCopy() *Upstreams

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

func (*Upstreams) DeepCopyInto added in v0.26.0

func (in *Upstreams) DeepCopyInto(out *Upstreams)

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL