v1alpha1

package
v0.0.0-...-a1fe31f Latest Latest
Warning

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

Go to latest
Published: Dec 28, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the projectsesame.io v1alpha1 API group

+kubebuilder:object:generate=true +k8s:deepcopy-gen=package +groupName=projectsesame.io

Index

Constants

View Source
const DEFAULT_ACCESS_LOG_TYPE = EnvoyAccessLog

DEFAULT_ACCESS_LOG_TYPE is the default access log format. nolint:revive

Variables

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

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var DefaultFields = AccessLogFields([]string{
	"@timestamp",
	"authority",
	"bytes_received",
	"bytes_sent",
	"downstream_local_address",
	"downstream_remote_address",
	"duration",
	"method",
	"path",
	"protocol",
	"request_id",
	"requested_server_name",
	"response_code",
	"response_flags",
	"uber_trace_id",
	"upstream_cluster",
	"upstream_host",
	"upstream_local_address",
	"upstream_service_time",
	"user_agent",
	"x_forwarded_for",
})

DefaultFields are fields that will be included by default when JSON logging is enabled.

View Source
var ExtensionServiceGVR = GroupVersion.WithResource("extensionservices")
View Source
var SesameConfigurationGVR = GroupVersion.WithResource("sesameconfigurations")

Functions

This section is empty.

Types

type AccessLogFields

type AccessLogFields []string

func (AccessLogFields) AsFieldMap

func (a AccessLogFields) AsFieldMap() map[string]string

func (AccessLogFields) DeepCopy

func (in AccessLogFields) DeepCopy() AccessLogFields

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

func (AccessLogFields) DeepCopyInto

func (in AccessLogFields) DeepCopyInto(out *AccessLogFields)

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

func (AccessLogFields) Validate

func (a AccessLogFields) Validate() error

type AccessLogType

type AccessLogType string

AccessLogType is the name of a supported access logging mechanism.

const EnvoyAccessLog AccessLogType = "envoy"
const JSONAccessLog AccessLogType = "json"

func (AccessLogType) Validate

func (a AccessLogType) Validate() error

type ClusterDNSFamilyType

type ClusterDNSFamilyType string

ClusterDNSFamilyType is the Ip family to use for resolving DNS names in an Envoy cluster config.

const AutoClusterDNSFamily ClusterDNSFamilyType = "auto"
const IPv4ClusterDNSFamily ClusterDNSFamilyType = "v4"
const IPv6ClusterDNSFamily ClusterDNSFamilyType = "v6"

type ClusterParameters

type ClusterParameters struct {
	// DNSLookupFamily defines how external names are looked up
	// When configured as V4, the DNS resolver will only perform a lookup
	// for addresses in the IPv4 family. If V6 is configured, the DNS resolver
	// will only perform a lookup for addresses in the IPv6 family.
	// If AUTO is configured, the DNS resolver will first perform a lookup
	// for addresses in the IPv6 family and fallback to a lookup for addresses
	// in the IPv4 family.
	// Note: This only applies to externalName clusters.
	//
	// See https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto.html#envoy-v3-api-enum-config-cluster-v3-cluster-dnslookupfamily
	// for more information.
	// +kubebuilder:default="auto"
	// +kubebuilder:validation:Enum="auto";"v4";"v6"
	DNSLookupFamily ClusterDNSFamilyType `json:"dnsLookupFamily"`
}

ClusterParameters holds various configurable cluster values.

func (*ClusterParameters) DeepCopy

func (in *ClusterParameters) DeepCopy() *ClusterParameters

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

func (*ClusterParameters) DeepCopyInto

func (in *ClusterParameters) DeepCopyInto(out *ClusterParameters)

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

type DebugConfig

type DebugConfig struct {
	// Defines the Sesame debug address interface.
	// +optional
	Address string `json:"address"`

	// Defines the Sesame debug address port.
	// +optional
	Port int `json:"port"`

	// DebugLogLevel defines the log level which Sesame will
	// use when outputting log information.
	// +kubebuilder:validation:Enum=info;debug
	DebugLogLevel LogLevel `json:"logLevel"`

	// KubernetesDebugLogLevel defines the log level which Sesame will
	// use when outputting Kubernetes specific log information.
	//
	// Details: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md
	// +optional
	// +kubebuilder:default=0
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=9
	KubernetesDebugLogLevel uint `json:"kubernetesLogLevel"`
}

DebugConfig contains Sesame specific troubleshooting options.

func (*DebugConfig) DeepCopy

func (in *DebugConfig) DeepCopy() *DebugConfig

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

func (*DebugConfig) DeepCopyInto

func (in *DebugConfig) DeepCopyInto(out *DebugConfig)

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

type EnvoyConfig

type EnvoyConfig struct {
	// Listener hold various configurable Envoy listener values.
	Listener EnvoyListenerConfig `json:"listener"`

	// Service holds Envoy service parameters for setting Ingress status.
	// +kubebuilder:default={name: "envoy", namespace: "projectsesame"}
	Service NamespacedName `json:"service"`

	// Defines the HTTP Listener for Envoy.
	// +kubebuilder:default={address: "0.0.0.0", port: 8080, accessLog: "/dev/stdout"}
	HTTPListener EnvoyListener `json:"http"`

	// Defines the HTTP Listener for Envoy.
	// +kubebuilder:default={address: "0.0.0.0", port: 8443, accessLog: "/dev/stdout"}
	HTTPSListener EnvoyListener `json:"https"`

	// Health defines the endpoint Envoy uses to serve health checks.
	// +optional
	// +kubebuilder:default={address: "0.0.0.0", port: 8002}
	Health HealthConfig `json:"health"`

	// Metrics defines the endpoint Envoy uses to serve metrics.
	// +kubebuilder:default={address: "0.0.0.0", port: 8002}
	Metrics MetricsConfig `json:"metrics"`

	// ClientCertificate defines the namespace/name of the Kubernetes
	// secret containing the client certificate and private key
	// to be used when establishing TLS connection to upstream
	// cluster.
	// +optional
	ClientCertificate *NamespacedName `json:"clientCertificate,omitempty"`

	// Logging defines how Envoy's logs can be configured.
	Logging EnvoyLogging `json:"logging"`

	// DefaultHTTPVersions defines the default set of HTTPS
	// versions the proxy should accept. HTTP versions are
	// strings of the form "HTTP/xx". Supported versions are
	// "HTTP/1.1" and "HTTP/2".
	DefaultHTTPVersions []HTTPVersionType `json:"defaultHTTPVersions"`

	// Timeouts holds various configurable timeouts that can
	// be set in the config file.
	// +optional
	Timeouts *TimeoutParameters `json:"timeouts,omitempty"`

	// Cluster holds various configurable Envoy cluster values that can
	// be set in the config file.
	Cluster ClusterParameters `json:"cluster"`

	// Network holds various configurable Envoy network values.
	Network NetworkParameters `json:"network"`
}

EnvoyConfig defines how Envoy is to be Configured from Sesame.

func (*EnvoyConfig) DeepCopy

func (in *EnvoyConfig) DeepCopy() *EnvoyConfig

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

func (*EnvoyConfig) DeepCopyInto

func (in *EnvoyConfig) DeepCopyInto(out *EnvoyConfig)

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

func (*EnvoyConfig) Validate

func (e *EnvoyConfig) Validate() error

Validate configuration that cannot be handled with CRD validation.

type EnvoyListener

type EnvoyListener struct {
	// Defines an Envoy Listener Address.
	// +kubebuilder:validation:MinLength=1
	Address string `json:"address"`

	// Defines an Envoy listener Port.
	Port int `json:"port"`

	// AccessLog defines where Envoy logs are outputted for this listener.
	AccessLog string `json:"accessLog"`
}

EnvoyListener defines parameters for an Envoy Listener.

func (*EnvoyListener) DeepCopy

func (in *EnvoyListener) DeepCopy() *EnvoyListener

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

func (*EnvoyListener) DeepCopyInto

func (in *EnvoyListener) DeepCopyInto(out *EnvoyListener)

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

type EnvoyListenerConfig

type EnvoyListenerConfig struct {
	// Use PROXY protocol for all listeners.
	UseProxyProto bool `json:"useProxyProtocol"`

	// DisableAllowChunkedLength disables the RFC-compliant Envoy behavior to
	// strip the "Content-Length" header if "Transfer-Encoding: chunked" is
	// also set. This is an emergency off-switch to revert back to Envoy's
	// default behavior in case of failures. Please file an issue if failures
	// are encountered.
	// See: https://github.com/projectsesame/sesame/issues/3221
	DisableAllowChunkedLength bool `json:"disableAllowChunkedLength"`

	// ConnectionBalancer. If the value is exact, the listener will use the exact connection balancer
	// See https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/listener.proto#envoy-api-msg-listener-connectionbalanceconfig
	// for more information.
	// +kubebuilder:validation:Enum="";"exact"
	ConnectionBalancer string `json:"connectionBalancer"`

	// TLS holds various configurable Envoy TLS listener values.
	TLS EnvoyTLS `json:"tls"`
}

EnvoyListenerConfig hold various configurable Envoy listener values.

func (*EnvoyListenerConfig) DeepCopy

func (in *EnvoyListenerConfig) DeepCopy() *EnvoyListenerConfig

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

func (*EnvoyListenerConfig) DeepCopyInto

func (in *EnvoyListenerConfig) DeepCopyInto(out *EnvoyListenerConfig)

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

type EnvoyLogging

type EnvoyLogging struct {
	// AccessLogFormat sets the global access log format.
	// Valid options are 'envoy' or 'json'
	// +kubebuilder:validation:Enum="envoy";"json"
	AccessLogFormat AccessLogType `json:"accessLogFormat"`

	// AccessLogFormatString sets the access log format when format is set to `envoy`.
	// When empty, Envoy's default format is used.
	// +optional
	AccessLogFormatString *string `json:"accessLogFormatString,omitempty"`

	// AccessLogFields sets the fields that JSON logging will
	// output when AccessLogFormat is json.
	// +optional
	AccessLogFields AccessLogFields `json:"jsonFields,omitempty"`
}

EnvoyLogging defines how Envoy's logs can be configured.

func (*EnvoyLogging) DeepCopy

func (in *EnvoyLogging) DeepCopy() *EnvoyLogging

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

func (*EnvoyLogging) DeepCopyInto

func (in *EnvoyLogging) DeepCopyInto(out *EnvoyLogging)

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

type EnvoyTLS

type EnvoyTLS struct {
	// MinimumProtocolVersion is the minimum TLS version this vhost should
	// negotiate. Valid options are `1.2` (default) and `1.3`.
	// +kubebuilder:validation:Enum="1.2";"1.3"
	MinimumProtocolVersion string `json:"minimumProtocolVersion"`

	// CipherSuites defines the TLS ciphers to be supported by Envoy TLS
	// listeners when negotiating TLS 1.2. Ciphers are validated against the
	// set that Envoy supports by default. This parameter should only be used
	// by advanced users. Note that these will be ignored when TLS 1.3 is in
	// use.
	//
	//See: https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto#extensions-transport-sockets-tls-v3-tlsparameters
	// Note: This list is a superset of what is valid for stock Envoy builds and those using BoringSSL FIPS.
	CipherSuites []TLSCipherType `json:"cipherSuites"`
}

EnvoyTLS describes tls parameters for Envoy listneners.

func (*EnvoyTLS) DeepCopy

func (in *EnvoyTLS) DeepCopy() *EnvoyTLS

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

func (*EnvoyTLS) DeepCopyInto

func (in *EnvoyTLS) DeepCopyInto(out *EnvoyTLS)

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

type ExtensionProtocolVersion

type ExtensionProtocolVersion string

ExtensionProtocolVersion is the version of the GRPC protocol used to access extension services. The only version currently supported is "v3".

const (
	// SupportProtocolVersion2 requests the "v2" support protocol version.
	//
	// Deprecated: this protocol version is no longer supported and the
	// constant is retained for backwards compatibility only.
	SupportProtocolVersion2 ExtensionProtocolVersion = "v2"

	// SupportProtocolVersion3 requests the "v3" support protocol version.
	SupportProtocolVersion3 ExtensionProtocolVersion = "v3"
)

type ExtensionService

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

	Spec   ExtensionServiceSpec   `json:"spec,omitempty"`
	Status ExtensionServiceStatus `json:"status,omitempty"`
}

ExtensionService is the schema for the Sesame extension services API. An ExtensionService resource binds a network service to the Sesame API so that Sesame API features can be implemented by collaborating components.

func (*ExtensionService) DeepCopy

func (in *ExtensionService) DeepCopy() *ExtensionService

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

func (*ExtensionService) DeepCopyInto

func (in *ExtensionService) DeepCopyInto(out *ExtensionService)

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

func (*ExtensionService) DeepCopyObject

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

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

type ExtensionServiceList

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

ExtensionServiceList contains a list of ExtensionService resources.

func (*ExtensionServiceList) DeepCopy

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

func (*ExtensionServiceList) DeepCopyInto

func (in *ExtensionServiceList) DeepCopyInto(out *ExtensionServiceList)

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

func (*ExtensionServiceList) DeepCopyObject

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

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

type ExtensionServiceSpec

type ExtensionServiceSpec struct {
	// Services specifies the set of Kubernetes Service resources that
	// receive GRPC extension API requests.
	// If no weights are specified for any of the entries in
	// this array, traffic will be spread evenly across all the
	// services.
	// Otherwise, traffic is balanced proportionally to the
	// Weight field in each entry.
	//
	// +required
	// +kubebuilder:validation:MinItems=1
	Services []ExtensionServiceTarget `json:"services"`

	// UpstreamValidation defines how to verify the backend service's certificate
	// +optional
	UpstreamValidation *sesame_api_v1.UpstreamValidation `json:"validation,omitempty"`

	// Protocol may be used to specify (or override) the protocol used to reach this Service.
	// Values may be h2 or h2c. If omitted, protocol-selection falls back on Service annotations.
	//
	// +optional
	// +kubebuilder:validation:Enum=h2;h2c
	Protocol *string `json:"protocol,omitempty"`

	// The policy for load balancing GRPC service requests. Note that the
	// `Cookie` and `RequestHash` load balancing strategies cannot be used
	// here.
	//
	// +optional
	LoadBalancerPolicy *sesame_api_v1.LoadBalancerPolicy `json:"loadBalancerPolicy,omitempty"`

	// The timeout policy for requests to the services.
	//
	// +optional
	TimeoutPolicy *sesame_api_v1.TimeoutPolicy `json:"timeoutPolicy,omitempty"`

	// This field sets the version of the GRPC protocol that Envoy uses to
	// send requests to the extension service. Since Sesame always uses the
	// v3 Envoy API, this is currently fixed at "v3". However, other
	// protocol options will be available in future.
	//
	// +optional
	// +kubebuilder:validation:Enum=v3
	ProtocolVersion ExtensionProtocolVersion `json:"protocolVersion,omitempty"`
}

ExtensionServiceSpec defines the desired state of an ExtensionService resource.

func (*ExtensionServiceSpec) DeepCopy

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

func (*ExtensionServiceSpec) DeepCopyInto

func (in *ExtensionServiceSpec) DeepCopyInto(out *ExtensionServiceSpec)

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

type ExtensionServiceStatus

type ExtensionServiceStatus struct {
	// Conditions contains the current status of the ExtensionService resource.
	//
	// Sesame will update a single condition, `Valid`, that is in normal-true polarity.
	//
	// Sesame will not modify any other Conditions set in this block,
	// in case some other controller wants to add a Condition.
	//
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []sesame_api_v1.DetailedCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

ExtensionServiceStatus defines the observed state of an ExtensionService resource.

func (*ExtensionServiceStatus) DeepCopy

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

func (*ExtensionServiceStatus) DeepCopyInto

func (in *ExtensionServiceStatus) DeepCopyInto(out *ExtensionServiceStatus)

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

func (*ExtensionServiceStatus) GetConditionFor

func (status *ExtensionServiceStatus) GetConditionFor(condType string) *sesame_api_v1.DetailedCondition

GetConditionFor returns the a pointer to the condition for a given type, or nil if there are none currently present.

type ExtensionServiceTarget

type ExtensionServiceTarget struct {
	// Name is the name of Kubernetes service that will accept service
	// traffic.
	//
	// +required
	Name string `json:"name"`

	// Port (defined as Integer) to proxy traffic to since a service can have multiple defined.
	//
	// +required
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65536
	// +kubebuilder:validation:ExclusiveMinimum=false
	// +kubebuilder:validation:ExclusiveMaximum=true
	Port int `json:"port"`

	// Weight defines proportion of traffic to balance to the Kubernetes Service.
	//
	// +optional
	Weight uint32 `json:"weight,omitempty"`
}

ExtensionServiceTarget defines an Kubernetes Service to target with extension service traffic.

func (*ExtensionServiceTarget) DeepCopy

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

func (*ExtensionServiceTarget) DeepCopyInto

func (in *ExtensionServiceTarget) DeepCopyInto(out *ExtensionServiceTarget)

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

type GatewayConfig

type GatewayConfig struct {
	// ControllerName is used to determine whether Sesame should reconcile a
	// GatewayClass. The string takes the form of "projectsesame.io/<namespace>/sesame".
	// If unset, the gatewayclass controller will not be started.
	// +kubebuilder:default="projectsesame.io/projectsesame/sesame"
	ControllerName string `json:"controllerName"`
}

GatewayConfig holds the config for Gateway API controllers.

func (*GatewayConfig) DeepCopy

func (in *GatewayConfig) DeepCopy() *GatewayConfig

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

func (*GatewayConfig) DeepCopyInto

func (in *GatewayConfig) DeepCopyInto(out *GatewayConfig)

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

type HTTPProxyConfig

type HTTPProxyConfig struct {
	// DisablePermitInsecure disables the use of the
	// permitInsecure field in HTTPProxy.
	DisablePermitInsecure bool `json:"disablePermitInsecure"`

	// Restrict Sesame to searching these namespaces for root ingress routes.
	// +optional
	RootNamespaces []string `json:"rootNamespaces,omitempty"`

	// FallbackCertificate defines the namespace/name of the Kubernetes secret to
	// use as fallback when a non-SNI request is received.
	// +optional
	FallbackCertificate *NamespacedName `json:"fallbackCertificate,omitempty"`
}

HTTPProxyConfig defines parameters on HTTPProxy.

func (*HTTPProxyConfig) DeepCopy

func (in *HTTPProxyConfig) DeepCopy() *HTTPProxyConfig

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

func (*HTTPProxyConfig) DeepCopyInto

func (in *HTTPProxyConfig) DeepCopyInto(out *HTTPProxyConfig)

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

type HTTPVersionType

type HTTPVersionType string

HTTPVersionType is the name of a supported HTTP version. +kubebuilder:validation:Enum="HTTP/1.1";"HTTP/2"

const HTTPVersion1 HTTPVersionType = "HTTP/1.1"
const HTTPVersion2 HTTPVersionType = "HTTP/2"

type HeadersPolicy

type HeadersPolicy struct {
	// +optional
	Set map[string]string `json:"set,omitempty"`

	// +optional
	Remove []string `json:"remove,omitempty"`
}

func (*HeadersPolicy) DeepCopy

func (in *HeadersPolicy) DeepCopy() *HeadersPolicy

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

func (*HeadersPolicy) DeepCopyInto

func (in *HeadersPolicy) DeepCopyInto(out *HeadersPolicy)

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

type HealthConfig

type HealthConfig struct {
	// Defines the health address interface.
	// +kubebuilder:validation:MinLength=1
	Address string `json:"address"`

	// Defines the health port.
	Port int `json:"port"`
}

HealthConfig defines the endpoints to enable health checks.

func (*HealthConfig) DeepCopy

func (in *HealthConfig) DeepCopy() *HealthConfig

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

func (*HealthConfig) DeepCopyInto

func (in *HealthConfig) DeepCopyInto(out *HealthConfig)

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

type IngressConfig

type IngressConfig struct {
	// Ingress Class Name Sesame should use.
	// +optional
	ClassName *string `json:"className,omitempty"`

	// Address to set in Ingress object status.
	// +optional
	StatusAddress *string `json:"statusAddress,omitempty"`
}

IngressConfig defines ingress specific config items.

func (*IngressConfig) DeepCopy

func (in *IngressConfig) DeepCopy() *IngressConfig

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

func (*IngressConfig) DeepCopyInto

func (in *IngressConfig) DeepCopyInto(out *IngressConfig)

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

type LogLevel

type LogLevel string

LogLevel is the logging levels available.

const DebugLog LogLevel = "debug"
const InfoLog LogLevel = "info"

type MetricsConfig

type MetricsConfig struct {
	// Defines the metrics address interface.
	// +kubebuilder:validation:MinLength=1
	// +kubebuilder:validation:MaxLength=253
	Address string `json:"address"`

	// Defines the metrics port.
	Port int `json:"port"`

	// TLS holds TLS file config details.
	// Metrics and health endpoints cannot have same port number when metrics is served over HTTPS.
	// +optional
	TLS *MetricsTLS `json:"tls,omitempty"`
}

MetricsConfig defines the metrics endpoint.

func (*MetricsConfig) DeepCopy

func (in *MetricsConfig) DeepCopy() *MetricsConfig

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

func (*MetricsConfig) DeepCopyInto

func (in *MetricsConfig) DeepCopyInto(out *MetricsConfig)

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

type MetricsTLS

type MetricsTLS struct {
	// CA filename.
	// +optional
	CAFile string `json:"caFile,omitempty"`

	// Client certificate filename.
	// +optional
	CertFile string `json:"certFile,omitempty"`

	// Client key filename.
	// +optional
	KeyFile string `json:"keyFile,omitempty"`
}

TLS holds TLS file config details.

func (*MetricsTLS) DeepCopy

func (in *MetricsTLS) DeepCopy() *MetricsTLS

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

func (*MetricsTLS) DeepCopyInto

func (in *MetricsTLS) DeepCopyInto(out *MetricsTLS)

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

type NamespacedName

type NamespacedName struct {
	Name      string `json:"name"`
	Namespace string `json:"namespace"`
}

NamespacedName defines the namespace/name of the Kubernetes resource referred from the config file. Used for Sesame config YAML file parsing, otherwise we could use K8s types.NamespacedName.

func (*NamespacedName) DeepCopy

func (in *NamespacedName) DeepCopy() *NamespacedName

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

func (*NamespacedName) DeepCopyInto

func (in *NamespacedName) DeepCopyInto(out *NamespacedName)

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

type NetworkParameters

type NetworkParameters struct {
	// XffNumTrustedHops defines the number of additional ingress proxy hops from the
	// right side of the x-forwarded-for HTTP header to trust when determining the origin
	// client’s IP address.
	//
	// See https://www.envoyproxy.io/docs/envoy/v1.17.0/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto?highlight=xff_num_trusted_hops
	// for more information.
	// +optional
	XffNumTrustedHops uint32 `json:"numTrustedHops"`

	// Configure the port used to access the Envoy Admin interface.
	// If configured to port "0" then the admin interface is disabled.
	// +kubebuilder:default=9001
	EnvoyAdminPort int `json:"adminPort"`
}

NetworkParameters hold various configurable network values.

func (*NetworkParameters) DeepCopy

func (in *NetworkParameters) DeepCopy() *NetworkParameters

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

func (*NetworkParameters) DeepCopyInto

func (in *NetworkParameters) DeepCopyInto(out *NetworkParameters)

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

type PolicyConfig

type PolicyConfig struct {
	// RequestHeadersPolicy defines the request headers set/removed on all routes
	// +optional
	RequestHeadersPolicy *HeadersPolicy `json:"requestHeaders,omitempty"`

	// ResponseHeadersPolicy defines the response headers set/removed on all routes
	// +optional
	ResponseHeadersPolicy *HeadersPolicy `json:"responseHeaders,omitempty"`

	// ApplyToIngress determines if the Policies will apply to ingress objects
	// +optional
	ApplyToIngress bool `json:"applyToIngress"`
}

PolicyConfig holds default policy used if not explicitly set by the user

func (*PolicyConfig) DeepCopy

func (in *PolicyConfig) DeepCopy() *PolicyConfig

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

func (*PolicyConfig) DeepCopyInto

func (in *PolicyConfig) DeepCopyInto(out *PolicyConfig)

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

type RateLimitServiceConfig

type RateLimitServiceConfig struct {
	// ExtensionService identifies the extension service defining the RLS.
	ExtensionService NamespacedName `json:"extensionService,omitempty"`

	// Domain is passed to the Rate Limit Service.
	Domain string `json:"domain"`

	// FailOpen defines whether to allow requests to proceed when the
	// Rate Limit Service fails to respond with a valid rate limit
	// decision within the timeout defined on the extension service.
	FailOpen bool `json:"failOpen"`

	// EnableXRateLimitHeaders defines whether to include the X-RateLimit
	// headers X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset
	// (as defined by the IETF Internet-Draft linked below), on responses
	// to clients when the Rate Limit Service is consulted for a request.
	//
	// ref. https://tools.ietf.org/id/draft-polli-ratelimit-headers-03.html
	EnableXRateLimitHeaders bool `json:"enableXRateLimitHeaders"`
}

RateLimitServiceConfig defines properties of a global Rate Limit Service.

func (*RateLimitServiceConfig) DeepCopy

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

func (*RateLimitServiceConfig) DeepCopyInto

func (in *RateLimitServiceConfig) DeepCopyInto(out *RateLimitServiceConfig)

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

type SesameConfiguration

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

	Spec SesameConfigurationSpec `json:"spec"`

	// +optional
	Status SesameConfigurationStatus `json:"status,omitempty"`
}

SesameConfiguration is the schema for a Sesame instance.

func (*SesameConfiguration) DeepCopy

func (in *SesameConfiguration) DeepCopy() *SesameConfiguration

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

func (*SesameConfiguration) DeepCopyInto

func (in *SesameConfiguration) DeepCopyInto(out *SesameConfiguration)

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

func (*SesameConfiguration) DeepCopyObject

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

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

type SesameConfigurationList

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

SesameConfigurationList contains a list of Sesame configuration resources.

func (*SesameConfigurationList) DeepCopy

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

func (*SesameConfigurationList) DeepCopyInto

func (in *SesameConfigurationList) DeepCopyInto(out *SesameConfigurationList)

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

func (*SesameConfigurationList) DeepCopyObject

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

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

type SesameConfigurationSpec

type SesameConfigurationSpec struct {
	// XDSServer contains parameters for the xDS server.
	// +optional
	// +kubebuilder:default={type: "sesame", address: "0.0.0.0", port: 8001, tls: { caFile: "/certs/ca.crt", certFile: "/certs/tls.crt", keyFile: "/certs/tls.key", insecure: false}}
	XDSServer XDSServerConfig `json:"xdsServer"`

	// Ingress contains parameters for ingress options.
	// +optional
	Ingress *IngressConfig `json:"ingress,omitempty"`

	// Debug contains parameters to enable debug logging
	// and debug interfaces inside Sesame.
	// +optional
	// +kubebuilder:default={logLevel: "info", kubernetesLogLevel: 0}
	Debug DebugConfig `json:"debug"`

	// Health defines the endpoints Sesame uses to serve health checks.
	// +optional
	// +kubebuilder:default={address: "0.0.0.0", port: 8000}
	Health HealthConfig `json:"health"`

	// Envoy contains parameters for Envoy as well
	// as how to optionally configure a managed Envoy fleet.
	// +optional
	// +kubebuilder:default={listener: {useProxyProtocol: false, disableAllowChunkedLength: false, connectionBalancer: "", tls: { minimumProtocolVersion: "1.2", cipherSuites: "[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]";"[ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]";"ECDHE-ECDSA-AES256-GCM-SHA384";"ECDHE-RSA-AES256-GCM-SHA384" }}, service: {name: "envoy", namespace: "projectsesame"}, http: {address: "0.0.0.0", port: 8080, accessLog: "/dev/stdout"}, https: {address: "0.0.0.0", port: 8443, accessLog: "/dev/stdout"}, health: {address: "0.0.0.0", port: 8002}, metrics: {address: "0.0.0.0", port: 8002}, logging: { accessLogFormat: "envoy"}, defaultHTTPVersions: "HTTP/1.1";"HTTP/2", cluster: {dnsLookupFamily: "auto"}, network: { adminPort: 9001}}
	Envoy EnvoyConfig `json:"envoy"`

	// Gateway contains parameters for the gateway-api Gateway that Sesame
	// is configured to serve traffic.
	// +optional
	Gateway *GatewayConfig `json:"gateway,omitempty"`

	// HTTPProxy defines parameters on HTTPProxy.
	// +optional
	// +kubebuilder:default={disablePermitInsecure: false}
	HTTPProxy HTTPProxyConfig `json:"httpproxy"`

	// EnableExternalNameService allows processing of ExternalNameServices
	// Defaults to disabled for security reasons.
	// +optional
	// +kubebuilder:default=false
	EnableExternalNameService bool `json:"enableExternalNameService"`

	// RateLimitService optionally holds properties of the Rate Limit Service
	// to be used for global rate limiting.
	// +optional
	RateLimitService *RateLimitServiceConfig `json:"rateLimitService,omitempty"`

	// Policy specifies default policy applied if not overridden by the user
	// +optional
	Policy *PolicyConfig `json:"policy,omitempty"`

	// Metrics defines the endpoint Sesame uses to serve metrics.
	// +optional
	// +kubebuilder:default={address: "0.0.0.0", port: 8000}
	Metrics MetricsConfig `json:"metrics"`
}

SesameConfigurationSpec represents a configuration of a Sesame controller. It contains most of all the options that can be customized, the other remaining options being command line flags.

func (*SesameConfigurationSpec) DeepCopy

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

func (*SesameConfigurationSpec) DeepCopyInto

func (in *SesameConfigurationSpec) DeepCopyInto(out *SesameConfigurationSpec)

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

func (*SesameConfigurationSpec) Validate

func (c *SesameConfigurationSpec) Validate() error

Validate configuration that is not already covered by CRD validation.

type SesameConfigurationStatus

type SesameConfigurationStatus struct {
	// Conditions contains the current status of the Sesame resource.
	//
	// Sesame will update a single condition, `Valid`, that is in normal-true polarity.
	//
	// Sesame will not modify any other Conditions set in this block,
	// in case some other controller wants to add a Condition.
	//
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []sesame_api_v1.DetailedCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

SesameConfigurationStatus defines the observed state of a SesameConfiguration resource.

func (*SesameConfigurationStatus) DeepCopy

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

func (*SesameConfigurationStatus) DeepCopyInto

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

type SesameDeployment

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

	Spec   SesameDeploymentSpec   `json:"spec,omitempty"`
	Status SesameDeploymentStatus `json:"status,omitempty"`
}

SesameDeployment is the schema for a Sesame Deployment.

func (*SesameDeployment) DeepCopy

func (in *SesameDeployment) DeepCopy() *SesameDeployment

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

func (*SesameDeployment) DeepCopyInto

func (in *SesameDeployment) DeepCopyInto(out *SesameDeployment)

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

func (*SesameDeployment) DeepCopyObject

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

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

type SesameDeploymentList

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

SesameDeploymentList contains a list of Sesame Deployment resources.

func (*SesameDeploymentList) DeepCopy

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

func (*SesameDeploymentList) DeepCopyInto

func (in *SesameDeploymentList) DeepCopyInto(out *SesameDeploymentList)

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

func (*SesameDeploymentList) DeepCopyObject

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

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

type SesameDeploymentSpec

type SesameDeploymentSpec struct {
	// Replicas is the desired number of Sesame replicas. If unset,
	// defaults to 2.
	//
	// +kubebuilder:default=2
	// +kubebuilder:validation:Minimum=0
	Replicas int32 `json:"replicas,omitempty"`

	// Config is the config that the instances of Sesame are to utilize.
	Config SesameConfigurationSpec `json:"config"`
}

SesameDeploymentSpec defines the parameters of how a Sesame instance should be configured.

func (*SesameDeploymentSpec) DeepCopy

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

func (*SesameDeploymentSpec) DeepCopyInto

func (in *SesameDeploymentSpec) DeepCopyInto(out *SesameDeploymentSpec)

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

type SesameDeploymentStatus

type SesameDeploymentStatus struct {
	// Conditions contains the current status of the Sesame resource.
	//
	// Sesame will update a single condition, `Valid`, that is in normal-true polarity.
	//
	// Sesame will not modify any other Conditions set in this block,
	// in case some other controller wants to add a Condition.
	//
	// +optional
	// +patchMergeKey=type
	// +patchStrategy=merge
	// +listType=map
	// +listMapKey=type
	Conditions []sesame_api_v1.DetailedCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
}

SesameDeploymentStatus defines the observed state of a SesameDeployment resource.

func (*SesameDeploymentStatus) DeepCopy

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

func (*SesameDeploymentStatus) DeepCopyInto

func (in *SesameDeploymentStatus) DeepCopyInto(out *SesameDeploymentStatus)

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

type TLS

type TLS struct {
	// CA filename.
	// +optional
	CAFile string `json:"caFile,omitempty"`

	// Client certificate filename.
	// +optional
	CertFile string `json:"certFile,omitempty"`

	// Client key filename.
	// +optional
	KeyFile string `json:"keyFile,omitempty"`

	// Allow serving the xDS gRPC API without TLS.
	Insecure bool `json:"insecure"`
}

TLS holds TLS file config details.

func (*TLS) DeepCopy

func (in *TLS) DeepCopy() *TLS

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

func (*TLS) DeepCopyInto

func (in *TLS) DeepCopyInto(out *TLS)

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

type TLSCipherType

type TLSCipherType string

+kubebuilder:validation:Enum="[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]";"[ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]";"ECDHE-ECDSA-AES128-GCM-SHA256";"ECDHE-RSA-AES128-GCM-SHA256";"ECDHE-ECDSA-AES128-SHA";"ECDHE-RSA-AES128-SHA";"AES128-GCM-SHA256";"AES128-SHA";"ECDHE-ECDSA-AES256-GCM-SHA384";"ECDHE-RSA-AES256-GCM-SHA384";"ECDHE-ECDSA-AES256-SHA";"ECDHE-RSA-AES256-SHA";"AES256-GCM-SHA384";"AES256-SHA"

type TimeoutParameters

type TimeoutParameters struct {
	// RequestTimeout sets the client request timeout globally for Sesame. Note that
	// this is a timeout for the entire request, not an idle timeout. Omit or set to
	// "infinity" to disable the timeout entirely.
	//
	// See https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-request-timeout
	// for more information.
	// +optional
	RequestTimeout *string `json:"requestTimeout,omitempty"`

	// ConnectionIdleTimeout defines how long the proxy should wait while there are
	// no active requests (for HTTP/1.1) or streams (for HTTP/2) before terminating
	// an HTTP connection. Set to "infinity" to disable the timeout entirely.
	//
	// See https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-field-config-core-v3-httpprotocoloptions-idle-timeout
	// for more information.
	// +optional
	ConnectionIdleTimeout *string `json:"connectionIdleTimeout,omitempty"`

	// StreamIdleTimeout defines how long the proxy should wait while there is no
	// request activity (for HTTP/1.1) or stream activity (for HTTP/2) before
	// terminating the HTTP request or stream. Set to "infinity" to disable the
	// timeout entirely.
	//
	// See https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-stream-idle-timeout
	// for more information.
	// +optional
	StreamIdleTimeout *string `json:"streamIdleTimeout,omitempty"`

	// MaxConnectionDuration defines the maximum period of time after an HTTP connection
	// has been established from the client to the proxy before it is closed by the proxy,
	// regardless of whether there has been activity or not. Omit or set to "infinity" for
	// no max duration.
	//
	// See https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-field-config-core-v3-httpprotocoloptions-max-connection-duration
	// for more information.
	// +optional
	MaxConnectionDuration *string `json:"maxConnectionDuration,omitempty"`

	// DelayedCloseTimeout defines how long envoy will wait, once connection
	// close processing has been initiated, for the downstream peer to close
	// the connection before Envoy closes the socket associated with the connection.
	//
	// Setting this timeout to 'infinity' will disable it, equivalent to setting it to '0'
	// in Envoy. Leaving it unset will result in the Envoy default value being used.
	//
	// See https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-delayed-close-timeout
	// for more information.
	// +optional
	DelayedCloseTimeout *string `json:"delayedCloseTimeout,omitempty"`

	// ConnectionShutdownGracePeriod defines how long the proxy will wait between sending an
	// initial GOAWAY frame and a second, final GOAWAY frame when terminating an HTTP/2 connection.
	// During this grace period, the proxy will continue to respond to new streams. After the final
	// GOAWAY frame has been sent, the proxy will refuse new streams.
	//
	// See https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-drain-timeout
	// for more information.
	// +optional
	ConnectionShutdownGracePeriod *string `json:"connectionShutdownGracePeriod,omitempty"`
}

TimeoutParameters holds various configurable proxy timeout values.

func (*TimeoutParameters) DeepCopy

func (in *TimeoutParameters) DeepCopy() *TimeoutParameters

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

func (*TimeoutParameters) DeepCopyInto

func (in *TimeoutParameters) DeepCopyInto(out *TimeoutParameters)

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

type XDSServerConfig

type XDSServerConfig struct {
	// Defines the XDSServer to use for `sesame serve`.
	// +kubebuilder:validation:Enum=sesame;envoy
	Type XDSServerType `json:"type"`

	// Defines the xDS gRPC API address which Sesame will serve.
	// +kubebuilder:validation:MinLength=1
	Address string `json:"address"`

	// Defines the xDS gRPC API port which Sesame will serve.
	Port int `json:"port"`

	// TLS holds TLS file config details.
	// +optional
	TLS *TLS `json:"tls,omitempty"`
}

XDSServerConfig holds the config for the Sesame xDS server.

func (*XDSServerConfig) DeepCopy

func (in *XDSServerConfig) DeepCopy() *XDSServerConfig

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

func (*XDSServerConfig) DeepCopyInto

func (in *XDSServerConfig) DeepCopyInto(out *XDSServerConfig)

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

type XDSServerType

type XDSServerType string

XDSServerType is the type of xDS server implementation.

const EnvoyServerType XDSServerType = "envoy"
const SesameServerType XDSServerType = "sesame"

Jump to

Keyboard shortcuts

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