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
- Variables
- type AccessLogFields
- type AccessLogType
- type ClusterDNSFamilyType
- type ClusterParameters
- type DebugConfig
- type EnvoyConfig
- type EnvoyListener
- type EnvoyListenerConfig
- type EnvoyLogging
- type EnvoyTLS
- type ExtensionProtocolVersion
- type ExtensionService
- type ExtensionServiceList
- type ExtensionServiceSpec
- type ExtensionServiceStatus
- type ExtensionServiceTarget
- type GatewayConfig
- type HTTPProxyConfig
- type HTTPVersionType
- type HeadersPolicy
- type HealthConfig
- type IngressConfig
- type LogLevel
- type MetricsConfig
- type MetricsTLS
- type NamespacedName
- type NetworkParameters
- type PolicyConfig
- type RateLimitServiceConfig
- type SesameConfiguration
- type SesameConfigurationList
- type SesameConfigurationSpec
- type SesameConfigurationStatus
- type SesameDeployment
- type SesameDeploymentList
- type SesameDeploymentSpec
- type SesameDeploymentStatus
- type TLS
- type TLSCipherType
- type TimeoutParameters
- type XDSServerConfig
- type XDSServerType
Constants ¶
const DEFAULT_ACCESS_LOG_TYPE = EnvoyAccessLog
DEFAULT_ACCESS_LOG_TYPE is the default access log format. nolint:revive
Variables ¶
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 )
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.
var ExtensionServiceGVR = GroupVersion.WithResource("extensionservices")
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyTLS.
func (*EnvoyTLS) DeepCopyInto ¶
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 ¶
func (in *ExtensionServiceList) DeepCopy() *ExtensionServiceList
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 ¶
func (in *ExtensionServiceSpec) DeepCopy() *ExtensionServiceSpec
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 ¶
func (in *ExtensionServiceStatus) DeepCopy() *ExtensionServiceStatus
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 ¶
func (in *ExtensionServiceTarget) DeepCopy() *ExtensionServiceTarget
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 ¶
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 ¶
func (in *RateLimitServiceConfig) DeepCopy() *RateLimitServiceConfig
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 ¶
func (in *SesameConfigurationList) DeepCopy() *SesameConfigurationList
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 ¶
func (in *SesameConfigurationSpec) DeepCopy() *SesameConfigurationSpec
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 ¶
func (in *SesameConfigurationStatus) DeepCopy() *SesameConfigurationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SesameConfigurationStatus.
func (*SesameConfigurationStatus) DeepCopyInto ¶
func (in *SesameConfigurationStatus) DeepCopyInto(out *SesameConfigurationStatus)
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 ¶
func (in *SesameDeploymentList) DeepCopy() *SesameDeploymentList
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 ¶
func (in *SesameDeploymentSpec) DeepCopy() *SesameDeploymentSpec
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 ¶
func (in *SesameDeploymentStatus) DeepCopy() *SesameDeploymentStatus
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLS.
func (*TLS) DeepCopyInto ¶
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"