Documentation ¶
Index ¶
- Constants
- Variables
- func DefaultEnvoyProxyHpaMetrics() []autoscalingv2.MetricSpec
- func DefaultKubernetesContainerImage(image string) *string
- func DefaultKubernetesDeploymentStrategy() *appv1.DeploymentStrategy
- func DefaultResourceRequirements() *corev1.ResourceRequirements
- func DefaultShutdownManagerContainerResourceRequirements() *v1.ResourceRequirements
- type ALPNProtocol
- type BackOffPolicy
- type BootstrapType
- type ClientTimeout
- type ClientValidationContext
- type CustomTag
- type CustomTagType
- type EnvironmentCustomTag
- type EnvoyProxy
- type EnvoyProxyKubernetesProvider
- type EnvoyProxyList
- type EnvoyProxyProvider
- type EnvoyProxySpec
- type EnvoyProxyStatus
- type FileEnvoyProxyAccessLog
- type GroupVersionKind
- type HTTPClientTimeout
- type HTTPStatus
- type HTTPTimeout
- type KubernetesContainerSpec
- type KubernetesDeploymentSpec
- type KubernetesHorizontalPodAutoscalerSpec
- type KubernetesPatchSpec
- type KubernetesPodSpec
- type KubernetesServiceSpec
- type LiteralCustomTag
- type LogLevel
- type MergeType
- type MetricSinkType
- type OpenTelemetryEnvoyProxyAccessLog
- type PerRetryPolicy
- type ProviderType
- type ProxyAccessLog
- type ProxyAccessLogFormat
- type ProxyAccessLogFormatType
- type ProxyAccessLogSetting
- type ProxyAccessLogSink
- type ProxyAccessLogSinkType
- type ProxyBootstrap
- type ProxyLogComponent
- type ProxyLogging
- type ProxyMetricSink
- type ProxyMetrics
- type ProxyOpenTelemetrySink
- type ProxyPrometheusProvider
- type ProxyTelemetry
- type ProxyTracing
- type RequestHeaderCustomTag
- type Retry
- type RetryOn
- type ServiceExternalTrafficPolicy
- type ServiceType
- type ShutdownConfig
- type StringMatch
- type StringMatchType
- type TCPKeepalive
- type TCPTimeout
- type TLSSettings
- type TLSVersion
- type Timeout
- type TracingProvider
- type TracingProviderType
- type TriggerEnum
- type XDSTranslatorHook
Constants ¶
const ( // DefaultDeploymentReplicas is the default number of deployment replicas. DefaultDeploymentReplicas = 1 // DefaultDeploymentCPUResourceRequests for deployment cpu resource DefaultDeploymentCPUResourceRequests = "100m" // DefaultDeploymentMemoryResourceRequests for deployment memory resource DefaultDeploymentMemoryResourceRequests = "512Mi" // DefaultEnvoyProxyImage is the default image used by envoyproxy DefaultEnvoyProxyImage = "envoyproxy/envoy:distroless-v1.29.3" // DefaultShutdownManagerCPUResourceRequests for shutdown manager cpu resource DefaultShutdownManagerCPUResourceRequests = "10m" // DefaultShutdownManagerMemoryResourceRequests for shutdown manager memory resource DefaultShutdownManagerMemoryResourceRequests = "32Mi" // DefaultShutdownManagerImage is the default image used for the shutdown manager. DefaultShutdownManagerImage = "envoyproxy/gateway-dev:latest" // DefaultRateLimitImage is the default image used by ratelimit. DefaultRateLimitImage = "envoyproxy/ratelimit:19f2079f" // HTTPProtocol is the common-used http protocol. HTTPProtocol = "http" // GRPCProtocol is the common-used grpc protocol. GRPCProtocol = "grpc" )
const GroupName = "dp.wso2.com"
const (
// KindEnvoyProxy is the name of the EnvoyProxy kind.
KindEnvoyProxy = "EnvoyProxy"
)
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func DefaultEnvoyProxyHpaMetrics ¶
func DefaultEnvoyProxyHpaMetrics() []autoscalingv2.MetricSpec
func DefaultKubernetesContainerImage ¶
DefaultKubernetesContainerImage returns the default envoyproxy image.
func DefaultKubernetesDeploymentStrategy ¶
func DefaultKubernetesDeploymentStrategy() *appv1.DeploymentStrategy
DefaultKubernetesDeploymentStrategy returns the default deployment strategy settings.
func DefaultResourceRequirements ¶
func DefaultResourceRequirements() *corev1.ResourceRequirements
DefaultResourceRequirements returns a new ResourceRequirements with default settings.
func DefaultShutdownManagerContainerResourceRequirements ¶
func DefaultShutdownManagerContainerResourceRequirements() *v1.ResourceRequirements
DefaultShutdownManagerContainerResourceRequirements returns a new ResourceRequirements with default settings.
Types ¶
type ALPNProtocol ¶
type ALPNProtocol string
+k8s:deepcopy-gen=true ALPNProtocol specifies the protocol to be negotiated using ALPN +kubebuilder:validation:Enum=http/1.0;http/1.1;h2
const ( // HTTPProtocolVersion1_0 specifies that HTTP/1.0 should be negotiable with ALPN HTTPProtocolVersion1_0 ALPNProtocol = "http/1.0" // HTTPProtocolVersion1_1 specifies that HTTP/1.1 should be negotiable with ALPN HTTPProtocolVersion1_1 ALPNProtocol = "http/1.1" // HTTPProtocolVersion2 specifies that HTTP/2 should be negotiable with ALPN HTTPProtocolVersion2 ALPNProtocol = "h2" )
When adding ALPN constants, they must be values that are defined in the IANA registry for ALPN identification sequences https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids
type BackOffPolicy ¶
type BackOffPolicy struct { // BaseInterval is the base interval between retries. // // +kubebuilder:validation:Format=duration BaseInterval *metav1.Duration `json:"baseInterval,omitempty"` // MaxInterval is the maximum interval between retries. This parameter is optional, but must be greater than or equal to the base_interval if set. // The default is 10 times the base_interval // // +optional // +kubebuilder:validation:Format=duration MaxInterval *metav1.Duration `json:"maxInterval,omitempty"` }
type BootstrapType ¶
type BootstrapType string
+k8s:deepcopy-gen=true BootstrapType defines the types of bootstrap supported by Envoy Gateway. +kubebuilder:validation:Enum=Merge;Replace
const ( // Merge merges the provided bootstrap with the default one. The provided bootstrap can add or override a value // within a map, or add a new value to a list. // Please note that the provided bootstrap can't override a value within a list. BootstrapTypeMerge BootstrapType = "Merge" // Replace replaces the default bootstrap with the provided one. BootstrapTypeReplace BootstrapType = "Replace" )
type ClientTimeout ¶
type ClientTimeout struct { // Timeout settings for HTTP. // // +optional HTTP *HTTPClientTimeout `json:"http,omitempty"` }
+k8s:deepcopy-gen=true
func (*ClientTimeout) DeepCopy ¶
func (in *ClientTimeout) DeepCopy() *ClientTimeout
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientTimeout.
func (*ClientTimeout) DeepCopyInto ¶
func (in *ClientTimeout) DeepCopyInto(out *ClientTimeout)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClientValidationContext ¶
type ClientValidationContext struct { // CACertificateRefs contains one or more references to // Kubernetes objects that contain TLS certificates of // the Certificate Authorities that can be used // as a trust anchor to validate the certificates presented by the client. // // A single reference to a Kubernetes ConfigMap or a Kubernetes Secret, // with the CA certificate in a key named `ca.crt` is currently supported. // // References to a resource in different namespace are invalid UNLESS there // is a ReferenceGrant in the target namespace that allows the certificate // to be attached. // // +kubebuilder:validation:MaxItems=8 // +optional CACertificateRefs []gwapiv1.SecretObjectReference `json:"caCertificateRefs,omitempty"` }
+k8s:deepcopy-gen=true ClientValidationContext holds configuration that can be used to validate the client initiating the TLS connection to the Gateway. By default, no client specific configuration is validated.
func (*ClientValidationContext) DeepCopy ¶
func (in *ClientValidationContext) DeepCopy() *ClientValidationContext
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientValidationContext.
func (*ClientValidationContext) DeepCopyInto ¶
func (in *ClientValidationContext) DeepCopyInto(out *ClientValidationContext)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CustomTag ¶
type CustomTag struct { // Type defines the type of custom tag. // +kubebuilder:validation:Enum=Literal;Environment;RequestHeader // +unionDiscriminator // +kubebuilder:default=Literal Type CustomTagType `json:"type"` // Literal adds hard-coded value to each span. // It's required when the type is "Literal". Literal *LiteralCustomTag `json:"literal,omitempty"` // Environment adds value from environment variable to each span. // It's required when the type is "Environment". Environment *EnvironmentCustomTag `json:"environment,omitempty"` // RequestHeader adds value from request header to each span. // It's required when the type is "RequestHeader". RequestHeader *RequestHeaderCustomTag `json:"requestHeader,omitempty"` }
+k8s:deepcopy-gen=true
func (*CustomTag) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomTag.
func (*CustomTag) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CustomTagType ¶
type CustomTagType string
+k8s:deepcopy-gen=true
const ( // CustomTagTypeLiteral adds hard-coded value to each span. CustomTagTypeLiteral CustomTagType = "Literal" // CustomTagTypeEnvironment adds value from environment variable to each span. CustomTagTypeEnvironment CustomTagType = "Environment" // CustomTagTypeRequestHeader adds value from request header to each span. CustomTagTypeRequestHeader CustomTagType = "RequestHeader" )
type EnvironmentCustomTag ¶
type EnvironmentCustomTag struct { // Name defines the name of the environment variable which to extract the value from. Name string `json:"name"` // DefaultValue defines the default value to use if the environment variable is not set. // +optional DefaultValue *string `json:"defaultValue,omitempty"` }
+k8s:deepcopy-gen=true EnvironmentCustomTag adds value from environment variable to each span.
func (*EnvironmentCustomTag) DeepCopy ¶
func (in *EnvironmentCustomTag) DeepCopy() *EnvironmentCustomTag
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentCustomTag.
func (*EnvironmentCustomTag) DeepCopyInto ¶
func (in *EnvironmentCustomTag) DeepCopyInto(out *EnvironmentCustomTag)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvoyProxy ¶
type EnvoyProxy struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // EnvoyProxySpec defines the desired state of EnvoyProxy. Spec EnvoyProxySpec `json:"spec,omitempty"` // EnvoyProxyStatus defines the actual state of EnvoyProxy. Status EnvoyProxyStatus `json:"status,omitempty"` }
EnvoyProxy is the schema for the envoyproxies API.
func (*EnvoyProxy) DeepCopy ¶
func (in *EnvoyProxy) DeepCopy() *EnvoyProxy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxy.
func (*EnvoyProxy) DeepCopyInto ¶
func (in *EnvoyProxy) DeepCopyInto(out *EnvoyProxy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EnvoyProxy) DeepCopyObject ¶
func (in *EnvoyProxy) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*EnvoyProxy) GetEnvoyProxyProvider ¶
func (e *EnvoyProxy) GetEnvoyProxyProvider() *EnvoyProxyProvider
GetEnvoyProxyProvider returns the EnvoyProxyProvider of EnvoyProxy or a default EnvoyProxyProvider if unspecified.
type EnvoyProxyKubernetesProvider ¶
type EnvoyProxyKubernetesProvider struct { // EnvoyDeployment defines the desired state of the Envoy deployment resource. // If unspecified, default settings for the managed Envoy deployment resource // are applied. // // +optional EnvoyDeployment *KubernetesDeploymentSpec `json:"envoyDeployment,omitempty"` // EnvoyService defines the desired state of the Envoy service resource. // If unspecified, default settings for the managed Envoy service resource // are applied. // // +optional EnvoyService *KubernetesServiceSpec `json:"envoyService,omitempty"` // EnvoyHpa defines the Horizontal Pod Autoscaler settings for Envoy Proxy Deployment. // Once the HPA is being set, Replicas field from EnvoyDeployment will be ignored. // // +optional EnvoyHpa *KubernetesHorizontalPodAutoscalerSpec `json:"envoyHpa,omitempty"` }
+k8s:deepcopy-gen=true EnvoyProxyKubernetesProvider defines configuration for the Kubernetes resource provider.
func DefaultEnvoyProxyKubeProvider ¶
func DefaultEnvoyProxyKubeProvider() *EnvoyProxyKubernetesProvider
DefaultEnvoyProxyKubeProvider returns a new EnvoyProxyKubernetesProvider with default settings.
func (*EnvoyProxyKubernetesProvider) DeepCopy ¶
func (in *EnvoyProxyKubernetesProvider) DeepCopy() *EnvoyProxyKubernetesProvider
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxyKubernetesProvider.
func (*EnvoyProxyKubernetesProvider) DeepCopyInto ¶
func (in *EnvoyProxyKubernetesProvider) DeepCopyInto(out *EnvoyProxyKubernetesProvider)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvoyProxyList ¶
type EnvoyProxyList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []EnvoyProxy `json:"items"` }
EnvoyProxyList contains a list of EnvoyProxy
func (*EnvoyProxyList) DeepCopy ¶
func (in *EnvoyProxyList) DeepCopy() *EnvoyProxyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxyList.
func (*EnvoyProxyList) DeepCopyInto ¶
func (in *EnvoyProxyList) DeepCopyInto(out *EnvoyProxyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EnvoyProxyList) DeepCopyObject ¶
func (in *EnvoyProxyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type EnvoyProxyProvider ¶
type EnvoyProxyProvider struct { // Type is the type of resource provider to use. A resource provider provides // infrastructure resources for running the data plane, e.g. Envoy proxy, and // optional auxiliary control planes. Supported types are "Kubernetes". // // +unionDiscriminator Type ProviderType `json:"type"` // Kubernetes defines the desired state of the Kubernetes resource provider. // Kubernetes provides infrastructure resources for running the data plane, // e.g. Envoy proxy. If unspecified and type is "Kubernetes", default settings // for managed Kubernetes resources are applied. // // +optional Kubernetes *EnvoyProxyKubernetesProvider `json:"kubernetes,omitempty"` }
+k8s:deepcopy-gen=true EnvoyProxyProvider defines the desired state of a resource provider. +union
func DefaultEnvoyProxyProvider ¶
func DefaultEnvoyProxyProvider() *EnvoyProxyProvider
DefaultEnvoyProxyProvider returns a new EnvoyProxyProvider with default settings.
func (*EnvoyProxyProvider) DeepCopy ¶
func (in *EnvoyProxyProvider) DeepCopy() *EnvoyProxyProvider
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxyProvider.
func (*EnvoyProxyProvider) DeepCopyInto ¶
func (in *EnvoyProxyProvider) DeepCopyInto(out *EnvoyProxyProvider)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*EnvoyProxyProvider) GetEnvoyProxyKubeProvider ¶
func (r *EnvoyProxyProvider) GetEnvoyProxyKubeProvider() *EnvoyProxyKubernetesProvider
GetEnvoyProxyKubeProvider returns the EnvoyProxyKubernetesProvider of EnvoyProxyProvider or a default EnvoyProxyKubernetesProvider if unspecified. If EnvoyProxyProvider is not of type "Kubernetes", a nil EnvoyProxyKubernetesProvider is returned.
type EnvoyProxySpec ¶
type EnvoyProxySpec struct { // Provider defines the desired resource provider and provider-specific configuration. // If unspecified, the "Kubernetes" resource provider is used with default configuration // parameters. // // +optional Provider *EnvoyProxyProvider `json:"provider,omitempty"` // Logging defines logging parameters for managed proxies. // +kubebuilder:default={level: {default: warn}} Logging ProxyLogging `json:"logging,omitempty"` // Telemetry defines telemetry parameters for managed proxies. // // +optional Telemetry *ProxyTelemetry `json:"telemetry,omitempty"` // Bootstrap defines the Envoy Bootstrap as a YAML string. // Visit https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/bootstrap/v3/bootstrap.proto#envoy-v3-api-msg-config-bootstrap-v3-bootstrap // to learn more about the syntax. // If set, this is the Bootstrap configuration used for the managed Envoy Proxy fleet instead of the default Bootstrap configuration // set by APK. // Some fields within the Bootstrap that are required to communicate with the xDS Server and receive xDS resources // from it are not configurable and will result in the `EnvoyProxy` resource being rejected. // Backward compatibility across minor versions is not guaranteed. // We strongly recommend using `egctl x translate` to generate a `EnvoyProxy` resource with the `Bootstrap` field set to the default // Bootstrap configuration used. You can edit this configuration, and rerun `egctl x translate` to ensure there are no validation errors. // // +optional Bootstrap *ProxyBootstrap `json:"bootstrap,omitempty"` // Concurrency defines the number of worker threads to run. If unset, it defaults to // the number of cpuset threads on the platform. // // +optional Concurrency *int32 `json:"concurrency,omitempty"` // ExtraArgs defines additional command line options that are provided to Envoy. // More info: https://www.envoyproxy.io/docs/envoy/latest/operations/cli#command-line-options // Note: some command line options are used internally(e.g. --log-level) so they cannot be provided here. // // +optional ExtraArgs []string `json:"extraArgs,omitempty"` // MergeGateways defines if Gateway resources should be merged onto the same Envoy Proxy Infrastructure. // Setting this field to true would merge all Gateway Listeners under the parent Gateway Class. // This means that the port, protocol and hostname tuple must be unique for every listener. // If a duplicate listener is detected, the newer listener (based on timestamp) will be rejected and its status will be updated with a "Accepted=False" condition. // // +optional MergeGateways *bool `json:"mergeGateways,omitempty"` // Shutdown defines configuration for graceful envoy shutdown process. // // +optional Shutdown *ShutdownConfig `json:"shutdown,omitempty"` }
+k8s:deepcopy-gen=true EnvoyProxySpec defines the desired state of EnvoyProxy.
func (*EnvoyProxySpec) DeepCopy ¶
func (in *EnvoyProxySpec) DeepCopy() *EnvoyProxySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxySpec.
func (*EnvoyProxySpec) DeepCopyInto ¶
func (in *EnvoyProxySpec) DeepCopyInto(out *EnvoyProxySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EnvoyProxyStatus ¶
type EnvoyProxyStatus struct { }
+k8s:deepcopy-gen=true EnvoyProxyStatus defines the observed state of EnvoyProxy. This type is not implemented until https://github.com/envoyproxy/gateway/issues/1007 is fixed.
func (*EnvoyProxyStatus) DeepCopy ¶
func (in *EnvoyProxyStatus) DeepCopy() *EnvoyProxyStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxyStatus.
func (*EnvoyProxyStatus) DeepCopyInto ¶
func (in *EnvoyProxyStatus) DeepCopyInto(out *EnvoyProxyStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FileEnvoyProxyAccessLog ¶
type FileEnvoyProxyAccessLog struct { // Path defines the file path used to expose envoy access log(e.g. /dev/stdout). // +kubebuilder:validation:MinLength=1 Path string `json:"path,omitempty"` }
+k8s:deepcopy-gen=true
func (*FileEnvoyProxyAccessLog) DeepCopy ¶
func (in *FileEnvoyProxyAccessLog) DeepCopy() *FileEnvoyProxyAccessLog
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileEnvoyProxyAccessLog.
func (*FileEnvoyProxyAccessLog) DeepCopyInto ¶
func (in *FileEnvoyProxyAccessLog) DeepCopyInto(out *FileEnvoyProxyAccessLog)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GroupVersionKind ¶
type GroupVersionKind struct { Group string `json:"group"` Version string `json:"version"` Kind string `json:"kind"` }
GroupVersionKind unambiguously identifies a Kind. It can be converted to k8s.io/apimachinery/pkg/runtime/schema.GroupVersionKind
type HTTPClientTimeout ¶
type HTTPClientTimeout struct { // The duration envoy waits for the complete request reception. This timer starts upon request // initiation and stops when either the last byte of the request is sent upstream or when the response begins. // // +optional RequestReceivedTimeout *gwapiv1.Duration `json:"requestReceivedTimeout,omitempty"` }
+k8s:deepcopy-gen=true
func (*HTTPClientTimeout) DeepCopy ¶
func (in *HTTPClientTimeout) DeepCopy() *HTTPClientTimeout
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPClientTimeout.
func (*HTTPClientTimeout) DeepCopyInto ¶
func (in *HTTPClientTimeout) DeepCopyInto(out *HTTPClientTimeout)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HTTPStatus ¶
type HTTPStatus int
+k8s:deepcopy-gen=true HTTPStatus defines the http status code. +kubebuilder:validation:Minimum=100 +kubebuilder:validation:Maximum=600 +kubebuilder:validation:ExclusiveMaximum=true
type HTTPTimeout ¶
type HTTPTimeout struct { // The idle timeout for an HTTP connection. Idle time is defined as a period in which there are no active requests in the connection. // Default: 1 hour. // // +optional ConnectionIdleTimeout *gwapiv1.Duration `json:"connectionIdleTimeout,omitempty"` // The maximum duration of an HTTP connection. // Default: unlimited. // // +optional MaxConnectionDuration *gwapiv1.Duration `json:"maxConnectionDuration,omitempty"` }
+k8s:deepcopy-gen=true
func (*HTTPTimeout) DeepCopy ¶
func (in *HTTPTimeout) DeepCopy() *HTTPTimeout
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPTimeout.
func (*HTTPTimeout) DeepCopyInto ¶
func (in *HTTPTimeout) DeepCopyInto(out *HTTPTimeout)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubernetesContainerSpec ¶
type KubernetesContainerSpec struct { // List of environment variables to set in the container. // // +optional Env []corev1.EnvVar `json:"env,omitempty"` // Resources required by this container. // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // // +optional Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // SecurityContext defines the security options the container should be run with. // If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ // // +optional SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"` // Image specifies the EnvoyProxy container image to be used, instead of the default image. // // +optional Image *string `json:"image,omitempty"` // VolumeMounts are volumes to mount into the container's filesystem. // Cannot be updated. // // +optional VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"` }
+k8s:deepcopy-gen=true KubernetesContainerSpec defines the desired state of the Kubernetes container resource.
func DefaultKubernetesContainer ¶
func DefaultKubernetesContainer(image string) *KubernetesContainerSpec
DefaultKubernetesContainer returns a new KubernetesContainerSpec with default settings.
func (*KubernetesContainerSpec) DeepCopy ¶
func (in *KubernetesContainerSpec) DeepCopy() *KubernetesContainerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesContainerSpec.
func (*KubernetesContainerSpec) DeepCopyInto ¶
func (in *KubernetesContainerSpec) DeepCopyInto(out *KubernetesContainerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubernetesDeploymentSpec ¶
type KubernetesDeploymentSpec struct { // Patch defines how to perform the patch operation to deployment // // +optional Patch *KubernetesPatchSpec `json:"patch,omitempty"` // Replicas is the number of desired pods. Defaults to 1. // // +optional Replicas *int32 `json:"replicas,omitempty"` // The deployment strategy to use to replace existing pods with new ones. // +optional Strategy *appv1.DeploymentStrategy `json:"strategy,omitempty"` // Pod defines the desired specification of pod. // // +optional Pod *KubernetesPodSpec `json:"pod,omitempty"` // EnvoyProxyContainer defines the desired specification of main container. // // +optional EnvoyProxyContainer *KubernetesContainerSpec `json:"envoyProxyContainer,omitempty"` // EnforcerContainer defines the desired specification of main container. // // +optional EnforcerContainer *KubernetesContainerSpec `json:"enforcerContainer,omitempty"` // List of initialization containers belonging to the pod. // More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ // // +optional InitContainers []corev1.Container `json:"initContainers,omitempty"` }
+k8s:deepcopy-gen=true KubernetesDeploymentSpec defines the desired state of the Kubernetes deployment resource.
func DefaultKubernetesDeployment ¶
func DefaultKubernetesDeployment(envoyProxyImage string, enforcerImage string) *KubernetesDeploymentSpec
DefaultKubernetesDeployment returns a new KubernetesDeploymentSpec with default settings.
func (*KubernetesDeploymentSpec) ApplyMergePatch ¶
func (deployment *KubernetesDeploymentSpec) ApplyMergePatch(old *appv1.Deployment) (*appv1.Deployment, error)
ApplyMergePatch applies a merge patch to a deployment based on the merge type
func (*KubernetesDeploymentSpec) DeepCopy ¶
func (in *KubernetesDeploymentSpec) DeepCopy() *KubernetesDeploymentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesDeploymentSpec.
func (*KubernetesDeploymentSpec) DeepCopyInto ¶
func (in *KubernetesDeploymentSpec) DeepCopyInto(out *KubernetesDeploymentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubernetesHorizontalPodAutoscalerSpec ¶
type KubernetesHorizontalPodAutoscalerSpec struct { // minReplicas is the lower limit for the number of replicas to which the autoscaler // can scale down. It defaults to 1 replica. // // +kubebuilder:validation:XValidation:message="minReplicas must be greater than 0",rule="self > 0" // +optional MinReplicas *int32 `json:"minReplicas,omitempty"` // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. // It cannot be less that minReplicas. // // +kubebuilder:validation:XValidation:message="maxReplicas must be greater than 0",rule="self > 0" MaxReplicas *int32 `json:"maxReplicas"` // metrics contains the specifications for which to use to calculate the // desired replica count (the maximum replica count across all metrics will // be used). // If left empty, it defaults to being based on CPU utilization with average on 80% usage. // // +optional Metrics []autoscalingv2.MetricSpec `json:"metrics,omitempty"` // behavior configures the scaling behavior of the target // in both Up and Down directions (scaleUp and scaleDown fields respectively). // If not set, the default HPAScalingRules for scale up and scale down are used. // See k8s.io.autoscaling.v2.HorizontalPodAutoScalerBehavior. // // +optional Behavior *autoscalingv2.HorizontalPodAutoscalerBehavior `json:"behavior,omitempty"` }
+k8s:deepcopy-gen=true KubernetesHorizontalPodAutoscalerSpec defines Kubernetes Horizontal Pod Autoscaler settings of Envoy Proxy Deployment. When HPA is enabled, it is recommended that the value in `KubernetesDeploymentSpec.replicas` be removed, otherwise APK Gateway will revert back to this value every time reconciliation occurs. See k8s.io.autoscaling.v2.HorizontalPodAutoScalerSpec.
+kubebuilder:validation:XValidation:message="maxReplicas cannot be less than minReplicas",rule="!has(self.minReplicas) || self.maxReplicas >= self.minReplicas"
func (*KubernetesHorizontalPodAutoscalerSpec) DeepCopy ¶
func (in *KubernetesHorizontalPodAutoscalerSpec) DeepCopy() *KubernetesHorizontalPodAutoscalerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesHorizontalPodAutoscalerSpec.
func (*KubernetesHorizontalPodAutoscalerSpec) DeepCopyInto ¶
func (in *KubernetesHorizontalPodAutoscalerSpec) DeepCopyInto(out *KubernetesHorizontalPodAutoscalerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubernetesPatchSpec ¶
type KubernetesPatchSpec struct { // Type is the type of merge operation to perform // // By default, StrategicMerge is used as the patch type. // +optional Type *MergeType `json:"type,omitempty"` // Object contains the raw configuration for merged object Value apiextensionsv1.JSON `json:"value"` }
+k8s:deepcopy-gen=true KubernetesPatchSpec defines how to perform the patch operation
func (*KubernetesPatchSpec) DeepCopy ¶
func (in *KubernetesPatchSpec) DeepCopy() *KubernetesPatchSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesPatchSpec.
func (*KubernetesPatchSpec) DeepCopyInto ¶
func (in *KubernetesPatchSpec) DeepCopyInto(out *KubernetesPatchSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubernetesPodSpec ¶
type KubernetesPodSpec struct { // Annotations are the annotations that should be appended to the pods. // By default, no pod annotations are appended. // // +optional Annotations map[string]string `json:"annotations,omitempty"` // Labels are the additional labels that should be tagged to the pods. // By default, no additional pod labels are tagged. // // +optional Labels map[string]string `json:"labels,omitempty"` // SecurityContext holds pod-level security attributes and common container settings. // Optional: Defaults to empty. See type description for default values of each field. // // +optional SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"` // If specified, the pod's scheduling constraints. // +optional Affinity *corev1.Affinity `json:"affinity,omitempty"` // If specified, the pod's tolerations. // +optional Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // Volumes that can be mounted by containers belonging to the pod. // More info: https://kubernetes.io/docs/concepts/storage/volumes // // +optional Volumes []corev1.Volume `json:"volumes,omitempty"` // ImagePullSecrets is an optional list of references to secrets // in the same namespace to use for pulling any of the images used by this PodSpec. // If specified, these secrets will be passed to individual puller implementations for them to use. // More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod // // +optional ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"` // NodeSelector is a selector which must be true for the pod to fit on a node. // Selector which must match a node's labels for the pod to be scheduled on that node. // More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ // // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` // TopologySpreadConstraints describes how a group of pods ought to spread across topology // domains. Scheduler will schedule pods in a way which abides by the constraints. // All topologySpreadConstraints are ANDed. // // +optional TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` }
+k8s:deepcopy-gen=true KubernetesPodSpec defines the desired state of the Kubernetes pod resource.
func DefaultKubernetesPod ¶
func DefaultKubernetesPod() *KubernetesPodSpec
DefaultKubernetesPod returns a new KubernetesPodSpec with default settings.
func (*KubernetesPodSpec) DeepCopy ¶
func (in *KubernetesPodSpec) DeepCopy() *KubernetesPodSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesPodSpec.
func (*KubernetesPodSpec) DeepCopyInto ¶
func (in *KubernetesPodSpec) DeepCopyInto(out *KubernetesPodSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubernetesServiceSpec ¶
type KubernetesServiceSpec struct { // Annotations that should be appended to the service. // By default, no annotations are appended. // // +optional Annotations map[string]string `json:"annotations,omitempty"` // Type determines how the Service is exposed. Defaults to LoadBalancer. // Valid options are ClusterIP, LoadBalancer and NodePort. // "LoadBalancer" means a service will be exposed via an external load balancer (if the cloud provider supports it). // "ClusterIP" means a service will only be accessible inside the cluster, via the cluster IP. // "NodePort" means a service will be exposed on a static Port on all Nodes of the cluster. // +kubebuilder:default:="LoadBalancer" // +optional Type *ServiceType `json:"type,omitempty"` // LoadBalancerClass, when specified, allows for choosing the LoadBalancer provider // implementation if more than one are available or is otherwise expected to be specified // +optional LoadBalancerClass *string `json:"loadBalancerClass,omitempty"` // AllocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for // services with type LoadBalancer. Default is "true". It may be set to "false" if the cluster // load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a // value), those requests will be respected, regardless of this field. This field may only be set for // services with type LoadBalancer and will be cleared if the type is changed to any other type. // +optional AllocateLoadBalancerNodePorts *bool `json:"allocateLoadBalancerNodePorts,omitempty"` // LoadBalancerIP defines the IP Address of the underlying load balancer service. This field // may be ignored if the load balancer provider does not support this feature. // This field has been deprecated in Kubernetes, but it is still used for setting the IP Address in some cloud // providers such as GCP. // // +kubebuilder:validation:XValidation:message="loadBalancerIP must be a valid IPv4 address",rule="self.matches(r\"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$\")" // +optional LoadBalancerIP *string `json:"loadBalancerIP,omitempty"` // ExternalTrafficPolicy determines the externalTrafficPolicy for the Envoy Service. Valid options // are Local and Cluster. Default is "Local". "Local" means traffic will only go to pods on the node // receiving the traffic. "Cluster" means connections are loadbalanced to all pods in the cluster. // +kubebuilder:default:="Local" // +optional ExternalTrafficPolicy *ServiceExternalTrafficPolicy `json:"externalTrafficPolicy,omitempty"` // Patch defines how to perform the patch operation to the service // // +optional Patch *KubernetesPatchSpec `json:"patch,omitempty"` }
+k8s:deepcopy-gen=true KubernetesServiceSpec defines the desired state of the Kubernetes service resource. +kubebuilder:validation:XValidation:message="allocateLoadBalancerNodePorts can only be set for LoadBalancer type",rule="!has(self.allocateLoadBalancerNodePorts) || self.type == 'LoadBalancer'" +kubebuilder:validation:XValidation:message="loadBalancerIP can only be set for LoadBalancer type",rule="!has(self.loadBalancerIP) || self.type == 'LoadBalancer'"
func DefaultKubernetesService ¶
func DefaultKubernetesService() *KubernetesServiceSpec
DefaultKubernetesService returns a new KubernetesServiceSpec with default settings.
func (*KubernetesServiceSpec) ApplyMergePatch ¶
ApplyMergePatch applies a merge patch to a service based on the merge type
func (*KubernetesServiceSpec) DeepCopy ¶
func (in *KubernetesServiceSpec) DeepCopy() *KubernetesServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesServiceSpec.
func (*KubernetesServiceSpec) DeepCopyInto ¶
func (in *KubernetesServiceSpec) DeepCopyInto(out *KubernetesServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LiteralCustomTag ¶
type LiteralCustomTag struct { // Value defines the hard-coded value to add to each span. Value string `json:"value"` }
+k8s:deepcopy-gen=true LiteralCustomTag adds hard-coded value to each span.
func (*LiteralCustomTag) DeepCopy ¶
func (in *LiteralCustomTag) DeepCopy() *LiteralCustomTag
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LiteralCustomTag.
func (*LiteralCustomTag) DeepCopyInto ¶
func (in *LiteralCustomTag) DeepCopyInto(out *LiteralCustomTag)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LogLevel ¶
type LogLevel string
+k8s:deepcopy-gen=true LogLevel defines a log level for APK Gateway and EnvoyProxy system logs. +kubebuilder:validation:Enum=debug;info;error;warn
const ( // LogLevelDebug defines the "debug" logging level. LogLevelDebug LogLevel = "debug" // LogLevelInfo defines the "Info" logging level. LogLevelInfo LogLevel = "info" // LogLevelWarn defines the "Warn" logging level. LogLevelWarn LogLevel = "warn" // LogLevelError defines the "Error" logging level. LogLevelError LogLevel = "error" )
type MergeType ¶
type MergeType string
+k8s:deepcopy-gen=true MergeType defines the type of merge operation
type MetricSinkType ¶
type MetricSinkType string
const (
MetricSinkTypeOpenTelemetry MetricSinkType = "OpenTelemetry"
)
type OpenTelemetryEnvoyProxyAccessLog ¶
type OpenTelemetryEnvoyProxyAccessLog struct { // Host define the extension service hostname. Host string `json:"host"` // Port defines the port the extension service is exposed on. // // +optional // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=4317 Port int32 `json:"port,omitempty"` // Resources is a set of labels that describe the source of a log entry, including envoy node info. // It's recommended to follow [semantic conventions](https://opentelemetry.io/docs/reference/specification/resource/semantic_conventions/). // +optional Resources map[string]string `json:"resources,omitempty"` }
+k8s:deepcopy-gen=true TODO: consider reuse ExtensionService?
func (*OpenTelemetryEnvoyProxyAccessLog) DeepCopy ¶
func (in *OpenTelemetryEnvoyProxyAccessLog) DeepCopy() *OpenTelemetryEnvoyProxyAccessLog
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenTelemetryEnvoyProxyAccessLog.
func (*OpenTelemetryEnvoyProxyAccessLog) DeepCopyInto ¶
func (in *OpenTelemetryEnvoyProxyAccessLog) DeepCopyInto(out *OpenTelemetryEnvoyProxyAccessLog)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PerRetryPolicy ¶
type PerRetryPolicy struct { // Timeout is the timeout per retry attempt. // // +optional // +kubebuilder:validation:Format=duration Timeout *metav1.Duration `json:"timeout,omitempty"` // Backoff is the backoff policy to be applied per retry attempt. gateway uses a fully jittered exponential // back-off algorithm for retries. For additional details, // see https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#config-http-filters-router-x-envoy-max-retries // // +optional BackOff *BackOffPolicy `json:"backOff,omitempty"` }
type ProviderType ¶
type ProviderType string
ProviderType defines the types of providers supported by APK Gateway.
+kubebuilder:validation:Enum=Kubernetes
const ( // ProviderTypeKubernetes defines the "Kubernetes" provider. ProviderTypeKubernetes ProviderType = "Kubernetes" // ProviderTypeFile defines the "File" provider. This type is not implemented // until https://github.com/envoyproxy/gateway/issues/1001 is fixed. ProviderTypeFile ProviderType = "File" )
type ProxyAccessLog ¶
type ProxyAccessLog struct { // Disable disables access logging for managed proxies if set to true. Disable bool `json:"disable,omitempty"` // Settings defines accesslog settings for managed proxies. // If unspecified, will send default format to stdout. // +optional Settings []ProxyAccessLogSetting `json:"settings,omitempty"` }
+k8s:deepcopy-gen=true
func (*ProxyAccessLog) DeepCopy ¶
func (in *ProxyAccessLog) DeepCopy() *ProxyAccessLog
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyAccessLog.
func (*ProxyAccessLog) DeepCopyInto ¶
func (in *ProxyAccessLog) DeepCopyInto(out *ProxyAccessLog)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyAccessLogFormat ¶
type ProxyAccessLogFormat struct { // Type defines the type of accesslog format. // +kubebuilder:validation:Enum=Text;JSON // +unionDiscriminator Type ProxyAccessLogFormatType `json:"type,omitempty"` // Text defines the text accesslog format, following Envoy accesslog formatting, // It's required when the format type is "Text". // Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) may be used in the format. // The [format string documentation](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format-strings) provides more information. // +optional Text *string `json:"text,omitempty"` // JSON is additional attributes that describe the specific event occurrence. // Structured format for the envoy access logs. Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) // can be used as values for fields within the Struct. // It's required when the format type is "JSON". // +optional JSON map[string]string `json:"json,omitempty"` }
+k8s:deepcopy-gen=true ProxyAccessLogFormat defines the format of accesslog. By default accesslogs are written to standard output. +union
+kubebuilder:validation:XValidation:rule="self.type == 'Text' ? has(self.text) : !has(self.text)",message="If AccessLogFormat type is Text, text field needs to be set." +kubebuilder:validation:XValidation:rule="self.type == 'JSON' ? has(self.json) : !has(self.json)",message="If AccessLogFormat type is JSON, json field needs to be set."
func (*ProxyAccessLogFormat) DeepCopy ¶
func (in *ProxyAccessLogFormat) DeepCopy() *ProxyAccessLogFormat
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyAccessLogFormat.
func (*ProxyAccessLogFormat) DeepCopyInto ¶
func (in *ProxyAccessLogFormat) DeepCopyInto(out *ProxyAccessLogFormat)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyAccessLogFormatType ¶
type ProxyAccessLogFormatType string
+k8s:deepcopy-gen=true
const ( // ProxyAccessLogFormatTypeText defines the text accesslog format. ProxyAccessLogFormatTypeText ProxyAccessLogFormatType = "Text" // ProxyAccessLogFormatTypeJSON defines the JSON accesslog format. ProxyAccessLogFormatTypeJSON ProxyAccessLogFormatType = "JSON" )
type ProxyAccessLogSetting ¶
type ProxyAccessLogSetting struct { // Format defines the format of accesslog. Format ProxyAccessLogFormat `json:"format"` // Sinks defines the sinks of accesslog. // +kubebuilder:validation:MinItems=1 Sinks []ProxyAccessLogSink `json:"sinks"` }
+k8s:deepcopy-gen=true
func (*ProxyAccessLogSetting) DeepCopy ¶
func (in *ProxyAccessLogSetting) DeepCopy() *ProxyAccessLogSetting
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyAccessLogSetting.
func (*ProxyAccessLogSetting) DeepCopyInto ¶
func (in *ProxyAccessLogSetting) DeepCopyInto(out *ProxyAccessLogSetting)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyAccessLogSink ¶
type ProxyAccessLogSink struct { // Type defines the type of accesslog sink. // +kubebuilder:validation:Enum=File;OpenTelemetry // +unionDiscriminator Type ProxyAccessLogSinkType `json:"type,omitempty"` // File defines the file accesslog sink. // +optional File *FileEnvoyProxyAccessLog `json:"file,omitempty"` // OpenTelemetry defines the OpenTelemetry accesslog sink. // +optional OpenTelemetry *OpenTelemetryEnvoyProxyAccessLog `json:"openTelemetry,omitempty"` }
+k8s:deepcopy-gen=true ProxyAccessLogSink defines the sink of accesslog. +union
+kubebuilder:validation:XValidation:rule="self.type == 'File' ? has(self.file) : !has(self.file)",message="If AccessLogSink type is File, file field needs to be set." +kubebuilder:validation:XValidation:rule="self.type == 'OpenTelemetry' ? has(self.openTelemetry) : !has(self.openTelemetry)",message="If AccessLogSink type is OpenTelemetry, openTelemetry field needs to be set."
func (*ProxyAccessLogSink) DeepCopy ¶
func (in *ProxyAccessLogSink) DeepCopy() *ProxyAccessLogSink
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyAccessLogSink.
func (*ProxyAccessLogSink) DeepCopyInto ¶
func (in *ProxyAccessLogSink) DeepCopyInto(out *ProxyAccessLogSink)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyAccessLogSinkType ¶
type ProxyAccessLogSinkType string
+k8s:deepcopy-gen=true
const ( // ProxyAccessLogSinkTypeFile defines the file accesslog sink. ProxyAccessLogSinkTypeFile ProxyAccessLogSinkType = "File" // ProxyAccessLogSinkTypeOpenTelemetry defines the OpenTelemetry accesslog sink. // When the provider is Kubernetes, EnvoyGateway always sends `k8s.namespace.name` // and `k8s.pod.name` as additional attributes. ProxyAccessLogSinkTypeOpenTelemetry ProxyAccessLogSinkType = "OpenTelemetry" )
type ProxyBootstrap ¶
type ProxyBootstrap struct { // Type is the type of the bootstrap configuration, it should be either Replace or Merge. // If unspecified, it defaults to Replace. // +optional // +kubebuilder:default=Replace Type *BootstrapType `json:"type"` // Value is a YAML string of the bootstrap. Value string `json:"value"` }
+k8s:deepcopy-gen=true ProxyBootstrap defines Envoy Bootstrap configuration.
func (*ProxyBootstrap) DeepCopy ¶
func (in *ProxyBootstrap) DeepCopy() *ProxyBootstrap
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyBootstrap.
func (*ProxyBootstrap) DeepCopyInto ¶
func (in *ProxyBootstrap) DeepCopyInto(out *ProxyBootstrap)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyLogComponent ¶
type ProxyLogComponent string
+k8s:deepcopy-gen=true ProxyLogComponent defines a component that supports a configured logging level. +kubebuilder:validation:Enum=system;upstream;http;connection;admin;client;filter;main;router;runtime
const ( // LogComponentDefault defines the default logging component. // See more details: https://www.envoyproxy.io/docs/envoy/latest/operations/cli#cmdoption-l LogComponentDefault ProxyLogComponent = "default" // LogComponentUpstream defines the "upstream" logging component. LogComponentUpstream ProxyLogComponent = "upstream" // LogComponentHTTP defines the "http" logging component. LogComponentHTTP ProxyLogComponent = "http" // LogComponentConnection defines the "connection" logging component. LogComponentConnection ProxyLogComponent = "connection" // LogComponentAdmin defines the "admin" logging component. LogComponentAdmin ProxyLogComponent = "admin" // LogComponentClient defines the "client" logging component. LogComponentClient ProxyLogComponent = "client" // LogComponentFilter defines the "filter" logging component. LogComponentFilter ProxyLogComponent = "filter" // LogComponentMain defines the "main" logging component. LogComponentMain ProxyLogComponent = "main" // LogComponentRouter defines the "router" logging component. LogComponentRouter ProxyLogComponent = "router" // LogComponentRuntime defines the "runtime" logging component. LogComponentRuntime ProxyLogComponent = "runtime" )
type ProxyLogging ¶
type ProxyLogging struct { // Level is a map of logging level per component, where the component is the key // and the log level is the value. If unspecified, defaults to "default: warn". // // +kubebuilder:default={default: warn} Level map[ProxyLogComponent]LogLevel `json:"level,omitempty"` }
+k8s:deepcopy-gen=true ProxyLogging defines logging parameters for managed proxies.
func (*ProxyLogging) DeepCopy ¶
func (in *ProxyLogging) DeepCopy() *ProxyLogging
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyLogging.
func (*ProxyLogging) DeepCopyInto ¶
func (in *ProxyLogging) DeepCopyInto(out *ProxyLogging)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProxyLogging) DefaultEnvoyProxyLoggingLevel ¶
func (logging *ProxyLogging) DefaultEnvoyProxyLoggingLevel() LogLevel
DefaultEnvoyProxyLoggingLevel returns envoy proxy v1alpha1.LogComponentGatewayDefault log level. If unspecified, defaults to "warn". When specified, all other logging components are ignored.
func (*ProxyLogging) GetEnvoyProxyComponentLevel ¶
func (logging *ProxyLogging) GetEnvoyProxyComponentLevel() string
GetEnvoyProxyComponentLevel returns envoy proxy component log level args. xref: https://www.envoyproxy.io/docs/envoy/latest/operations/cli#cmdoption-component-log-level
type ProxyMetricSink ¶
type ProxyMetricSink struct { // Type defines the metric sink type. // EG currently only supports OpenTelemetry. // +kubebuilder:validation:Enum=OpenTelemetry // +kubebuilder:default=OpenTelemetry // +unionDiscriminator Type MetricSinkType `json:"type"` // OpenTelemetry defines the configuration for OpenTelemetry sink. // It's required if the sink type is OpenTelemetry. // +optional OpenTelemetry *ProxyOpenTelemetrySink `json:"openTelemetry,omitempty"` }
+k8s:deepcopy-gen=true ProxyMetricSink defines the sink of metrics. Default metrics sink is OpenTelemetry. +union
+kubebuilder:validation:XValidation:rule="self.type == 'OpenTelemetry' ? has(self.openTelemetry) : !has(self.openTelemetry)",message="If MetricSink type is OpenTelemetry, openTelemetry field needs to be set."
func (*ProxyMetricSink) DeepCopy ¶
func (in *ProxyMetricSink) DeepCopy() *ProxyMetricSink
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyMetricSink.
func (*ProxyMetricSink) DeepCopyInto ¶
func (in *ProxyMetricSink) DeepCopyInto(out *ProxyMetricSink)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyMetrics ¶
type ProxyMetrics struct { // Prometheus defines the configuration for Admin endpoint `/stats/prometheus`. Prometheus *ProxyPrometheusProvider `json:"prometheus,omitempty"` // Sinks defines the metric sinks where metrics are sent to. Sinks []ProxyMetricSink `json:"sinks,omitempty"` // Matches defines configuration for selecting specific metrics instead of generating all metrics stats // that are enabled by default. This helps reduce CPU and memory overhead in Envoy, but eliminating some stats // may after critical functionality. Here are the stats that we strongly recommend not disabling: // `cluster_manager.warming_clusters`, `cluster.<cluster_name>.membership_total`,`cluster.<cluster_name>.membership_healthy`, // `cluster.<cluster_name>.membership_degraded`,reference https://github.com/envoyproxy/envoy/issues/9856, // https://github.com/envoyproxy/envoy/issues/14610 // Matches []StringMatch `json:"matches,omitempty"` // EnableVirtualHostStats enables envoy stat metrics for virtual hosts. EnableVirtualHostStats bool `json:"enableVirtualHostStats,omitempty"` }
+k8s:deepcopy-gen=true
func (*ProxyMetrics) DeepCopy ¶
func (in *ProxyMetrics) DeepCopy() *ProxyMetrics
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyMetrics.
func (*ProxyMetrics) DeepCopyInto ¶
func (in *ProxyMetrics) DeepCopyInto(out *ProxyMetrics)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyOpenTelemetrySink ¶
type ProxyOpenTelemetrySink struct { // Host define the service hostname. Host string `json:"host"` // Port defines the port the service is exposed on. // // +optional // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=65535 // +kubebuilder:default=4317 Port int32 `json:"port,omitempty"` }
+k8s:deepcopy-gen=true
func (*ProxyOpenTelemetrySink) DeepCopy ¶
func (in *ProxyOpenTelemetrySink) DeepCopy() *ProxyOpenTelemetrySink
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyOpenTelemetrySink.
func (*ProxyOpenTelemetrySink) DeepCopyInto ¶
func (in *ProxyOpenTelemetrySink) DeepCopyInto(out *ProxyOpenTelemetrySink)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyPrometheusProvider ¶
type ProxyPrometheusProvider struct { // Disable the Prometheus endpoint. Disable bool `json:"disable,omitempty"` }
+k8s:deepcopy-gen=true
func (*ProxyPrometheusProvider) DeepCopy ¶
func (in *ProxyPrometheusProvider) DeepCopy() *ProxyPrometheusProvider
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyPrometheusProvider.
func (*ProxyPrometheusProvider) DeepCopyInto ¶
func (in *ProxyPrometheusProvider) DeepCopyInto(out *ProxyPrometheusProvider)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyTelemetry ¶
type ProxyTelemetry struct { // AccessLogs defines accesslog parameters for managed proxies. // If unspecified, will send default format to stdout. // +optional AccessLog *ProxyAccessLog `json:"accessLog,omitempty"` // Tracing defines tracing configuration for managed proxies. // If unspecified, will not send tracing data. // +optional Tracing *ProxyTracing `json:"tracing,omitempty"` // Metrics defines metrics configuration for managed proxies. Metrics *ProxyMetrics `json:"metrics,omitempty"` }
+k8s:deepcopy-gen=true
func (*ProxyTelemetry) DeepCopy ¶
func (in *ProxyTelemetry) DeepCopy() *ProxyTelemetry
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyTelemetry.
func (*ProxyTelemetry) DeepCopyInto ¶
func (in *ProxyTelemetry) DeepCopyInto(out *ProxyTelemetry)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProxyTracing ¶
type ProxyTracing struct { // SamplingRate controls the rate at which traffic will be // selected for tracing if no prior sampling decision has been made. // Defaults to 100, valid values [0-100]. 100 indicates 100% sampling. // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=100 // +kubebuilder:default=100 // +optional SamplingRate *uint32 `json:"samplingRate,omitempty"` // CustomTags defines the custom tags to add to each span. // If provider is kubernetes, pod name and namespace are added by default. CustomTags map[string]CustomTag `json:"customTags,omitempty"` // Provider defines the tracing provider. // Only OpenTelemetry is supported currently. Provider TracingProvider `json:"provider"` }
+k8s:deepcopy-gen=true
func (*ProxyTracing) DeepCopy ¶
func (in *ProxyTracing) DeepCopy() *ProxyTracing
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyTracing.
func (*ProxyTracing) DeepCopyInto ¶
func (in *ProxyTracing) DeepCopyInto(out *ProxyTracing)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RequestHeaderCustomTag ¶
type RequestHeaderCustomTag struct { // Name defines the name of the request header which to extract the value from. Name string `json:"name"` // DefaultValue defines the default value to use if the request header is not set. // +optional DefaultValue *string `json:"defaultValue,omitempty"` }
+k8s:deepcopy-gen=true RequestHeaderCustomTag adds value from request header to each span.
func (*RequestHeaderCustomTag) DeepCopy ¶
func (in *RequestHeaderCustomTag) DeepCopy() *RequestHeaderCustomTag
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestHeaderCustomTag.
func (*RequestHeaderCustomTag) DeepCopyInto ¶
func (in *RequestHeaderCustomTag) DeepCopyInto(out *RequestHeaderCustomTag)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Retry ¶
type Retry struct { // NumRetries is the number of retries to be attempted. Defaults to 2. // // +optional // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=2 NumRetries *int32 `json:"numRetries,omitempty"` // RetryOn specifies the retry trigger condition. // // If not specified, the default is to retry on connect-failure,refused-stream,unavailable,cancelled,retriable-status-codes(503). // +optional RetryOn *RetryOn `json:"retryOn,omitempty"` // PerRetry is the retry policy to be applied per retry attempt. // // +optional PerRetry *PerRetryPolicy `json:"perRetry,omitempty"` }
Retry defines the retry strategy to be applied.
type RetryOn ¶
type RetryOn struct { // Triggers specifies the retry trigger condition(Http/Grpc). // // +optional Triggers []TriggerEnum `json:"triggers,omitempty"` // HttpStatusCodes specifies the http status codes to be retried. // The retriable-status-codes trigger must also be configured for these status codes to trigger a retry. // // +optional HTTPStatusCodes []HTTPStatus `json:"httpStatusCodes,omitempty"` }
type ServiceExternalTrafficPolicy ¶
type ServiceExternalTrafficPolicy string
+k8s:deepcopy-gen=true ServiceExternalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs. +enum +kubebuilder:validation:Enum=Local;Cluster
const ( // ServiceExternalTrafficPolicyCluster routes traffic to all endpoints. ServiceExternalTrafficPolicyCluster ServiceExternalTrafficPolicy = "Cluster" // ServiceExternalTrafficPolicyLocal preserves the source IP of the traffic by // routing only to endpoints on the same node as the traffic was received on // (dropping the traffic if there are no local endpoints). ServiceExternalTrafficPolicyLocal ServiceExternalTrafficPolicy = "Local" )
func DefaultKubernetesServiceExternalTrafficPolicy ¶
func DefaultKubernetesServiceExternalTrafficPolicy() *ServiceExternalTrafficPolicy
func GetKubernetesServiceExternalTrafficPolicy ¶
func GetKubernetesServiceExternalTrafficPolicy(serviceExternalTrafficPolicy ServiceExternalTrafficPolicy) *ServiceExternalTrafficPolicy
type ServiceType ¶
type ServiceType string
+k8s:deepcopy-gen=true ServiceType string describes ingress methods for a service +enum +kubebuilder:validation:Enum=ClusterIP;LoadBalancer;NodePort
const ( // ServiceTypeClusterIP means a service will only be accessible inside the // cluster, via the cluster IP. ServiceTypeClusterIP ServiceType = "ClusterIP" // ServiceTypeLoadBalancer means a service will be exposed via an // external load balancer (if the cloud provider supports it). ServiceTypeLoadBalancer ServiceType = "LoadBalancer" // ServiceTypeNodePort means a service will be exposed on each Kubernetes Node // at a static Port, common across all Nodes. ServiceTypeNodePort ServiceType = "NodePort" )
func DefaultKubernetesServiceType ¶
func DefaultKubernetesServiceType() *ServiceType
DefaultKubernetesServiceType returns a new KubernetesServiceType with default settings.
func GetKubernetesServiceType ¶
func GetKubernetesServiceType(serviceType ServiceType) *ServiceType
GetKubernetesServiceType returns the KubernetesServiceType pointer.
type ShutdownConfig ¶
type ShutdownConfig struct { // DrainTimeout defines the graceful drain timeout. This should be less than the pod's terminationGracePeriodSeconds. // If unspecified, defaults to 600 seconds. // // +optional DrainTimeout *metav1.Duration `json:"drainTimeout,omitempty"` // MinDrainDuration defines the minimum drain duration allowing time for endpoint deprogramming to complete. // If unspecified, defaults to 5 seconds. // // +optional MinDrainDuration *metav1.Duration `json:"minDrainDuration,omitempty"` }
+k8s:deepcopy-gen=true ShutdownConfig defines configuration for graceful envoy shutdown process.
func (*ShutdownConfig) DeepCopy ¶
func (in *ShutdownConfig) DeepCopy() *ShutdownConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShutdownConfig.
func (*ShutdownConfig) DeepCopyInto ¶
func (in *ShutdownConfig) DeepCopyInto(out *ShutdownConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StringMatch ¶
type StringMatch struct { // Type specifies how to match against a string. // // +optional // +kubebuilder:default=Exact Type *StringMatchType `json:"type,omitempty"` // Value specifies the string value that the match must have. // // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=1024 Value string `json:"value"` }
+k8s:deepcopy-gen=true StringMatch defines how to match any strings. This is a general purpose match condition that can be used by other EG APIs that need to match against a string.
func (*StringMatch) DeepCopy ¶
func (in *StringMatch) DeepCopy() *StringMatch
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringMatch.
func (*StringMatch) DeepCopyInto ¶
func (in *StringMatch) DeepCopyInto(out *StringMatch)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StringMatchType ¶
type StringMatchType string
+k8s:deepcopy-gen=true StringMatchType specifies the semantics of how a string value should be compared. Valid MatchType values are "Exact", "Prefix", "Suffix", "RegularExpression".
+kubebuilder:validation:Enum=Exact;Prefix;Suffix;RegularExpression
const ( // StringMatchExact :the input string must match exactly the match value. StringMatchExact StringMatchType = "Exact" // StringMatchPrefix :the input string must start with the match value. StringMatchPrefix StringMatchType = "Prefix" // StringMatchSuffix :the input string must end with the match value. StringMatchSuffix StringMatchType = "Suffix" // StringMatchRegularExpression :The input string must match the regular expression // specified in the match value. // The regex string must adhere to the syntax documented in // https://github.com/google/re2/wiki/Syntax. StringMatchRegularExpression StringMatchType = "RegularExpression" )
type TCPKeepalive ¶
type TCPKeepalive struct { // The total number of unacknowledged probes to send before deciding // the connection is dead. // Defaults to 9. // // +optional Probes *uint32 `json:"probes,omitempty"` // The duration a connection needs to be idle before keep-alive // probes start being sent. // The duration format is // Defaults to `7200s`. // // +optional IdleTime *gwapiv1.Duration `json:"idleTime,omitempty"` // The duration between keep-alive probes. // Defaults to `75s`. // // +optional Interval *gwapiv1.Duration `json:"interval,omitempty"` }
+k8s:deepcopy-gen=true TCPKeepalive define the TCP Keepalive configuration.
func (*TCPKeepalive) DeepCopy ¶
func (in *TCPKeepalive) DeepCopy() *TCPKeepalive
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPKeepalive.
func (*TCPKeepalive) DeepCopyInto ¶
func (in *TCPKeepalive) DeepCopyInto(out *TCPKeepalive)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TCPTimeout ¶
type TCPTimeout struct { // The timeout for network connection establishment, including TCP and TLS handshakes. // Default: 10 seconds. // // +optional ConnectTimeout *gwapiv1.Duration `json:"connectTimeout,omitempty"` }
+k8s:deepcopy-gen=true
func (*TCPTimeout) DeepCopy ¶
func (in *TCPTimeout) DeepCopy() *TCPTimeout
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPTimeout.
func (*TCPTimeout) DeepCopyInto ¶
func (in *TCPTimeout) DeepCopyInto(out *TCPTimeout)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSSettings ¶
type TLSSettings struct { // Min specifies the minimal TLS protocol version to allow. // The default is TLS 1.2 if this is not specified. // // +optional MinVersion *TLSVersion `json:"minVersion,omitempty"` // Max specifies the maximal TLS protocol version to allow // The default is TLS 1.3 if this is not specified. // // +optional MaxVersion *TLSVersion `json:"maxVersion,omitempty"` // Ciphers specifies the set of cipher suites supported when // negotiating TLS 1.0 - 1.2. This setting has no effect for TLS 1.3. // In non-FIPS Envoy Proxy builds the default cipher list is: // - [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 // In builds using BoringSSL FIPS the default cipher list is: // - ECDHE-ECDSA-AES128-GCM-SHA256 // - ECDHE-RSA-AES128-GCM-SHA256 // - ECDHE-ECDSA-AES256-GCM-SHA384 // - ECDHE-RSA-AES256-GCM-SHA384 // // +optional Ciphers []string `json:"ciphers,omitempty"` // ECDHCurves specifies the set of supported ECDH curves. // In non-FIPS Envoy Proxy builds the default curves are: // - X25519 // - P-256 // In builds using BoringSSL FIPS the default curve is: // - P-256 // // +optional ECDHCurves []string `json:"ecdhCurves,omitempty"` // SignatureAlgorithms specifies which signature algorithms the listener should // support. // // +optional SignatureAlgorithms []string `json:"signatureAlgorithms,omitempty"` // ALPNProtocols supplies the list of ALPN protocols that should be // exposed by the listener. By default h2 and http/1.1 are enabled. // Supported values are: // - http/1.0 // - http/1.1 // - h2 // // +optional ALPNProtocols []ALPNProtocol `json:"alpnProtocols,omitempty"` // ClientValidation specifies the configuration to validate the client // initiating the TLS connection to the Gateway listener. // +optional ClientValidation *ClientValidationContext `json:"clientValidation,omitempty"` }
+k8s:deepcopy-gen=true +kubebuilder:validation:XValidation:rule="has(self.minVersion) && self.minVersion == '1.3' ? !has(self.ciphers) : true", message="setting ciphers has no effect if the minimum possible TLS version is 1.3" +kubebuilder:validation:XValidation:rule="has(self.minVersion) && has(self.maxVersion) ? {\"Auto\":0,\"1.0\":1,\"1.1\":2,\"1.2\":3,\"1.3\":4}[self.minVersion] <= {\"1.0\":1,\"1.1\":2,\"1.2\":3,\"1.3\":4,\"Auto\":5}[self.maxVersion] : !has(self.minVersion) && has(self.maxVersion) ? 3 <= {\"1.0\":1,\"1.1\":2,\"1.2\":3,\"1.3\":4,\"Auto\":5}[self.maxVersion] : true", message="minVersion must be smaller or equal to maxVersion"
func (*TLSSettings) DeepCopy ¶
func (in *TLSSettings) DeepCopy() *TLSSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSSettings.
func (*TLSSettings) DeepCopyInto ¶
func (in *TLSSettings) DeepCopyInto(out *TLSSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSVersion ¶
type TLSVersion string
+k8s:deepcopy-gen=true TLSVersion specifies the TLS version +kubebuilder:validation:Enum=Auto;"1.0";"1.1";"1.2";"1.3"
const ( // TLSAuto allows Envoy to choose the optimal TLS Version TLSAuto TLSVersion = "Auto" // TLS1.0 specifies TLS version 1.0 TLSv10 TLSVersion = "1.0" // TLS1.1 specifies TLS version 1.1 TLSv11 TLSVersion = "1.1" // TLSv1.2 specifies TLS version 1.2 TLSv12 TLSVersion = "1.2" // TLSv1.3 specifies TLS version 1.3 TLSv13 TLSVersion = "1.3" )
type Timeout ¶
type Timeout struct { // Timeout settings for TCP. // // +optional TCP *TCPTimeout `json:"tcp,omitempty"` // Timeout settings for HTTP. // // +optional HTTP *HTTPTimeout `json:"http,omitempty"` }
+k8s:deepcopy-gen=true Timeout defines configuration for timeouts related to connections.
func (*Timeout) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Timeout.
func (*Timeout) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TracingProvider ¶
type TracingProvider struct { // Type defines the tracing provider type. // EG currently only supports OpenTelemetry. // +kubebuilder:validation:Enum=OpenTelemetry // +kubebuilder:default=OpenTelemetry Type TracingProviderType `json:"type"` // Host define the provider service hostname. Host string `json:"host"` // Port defines the port the provider service is exposed on. // // +optional // +kubebuilder:validation:Minimum=0 // +kubebuilder:default=4317 Port int32 `json:"port,omitempty"` }
+k8s:deepcopy-gen=true
func (*TracingProvider) DeepCopy ¶
func (in *TracingProvider) DeepCopy() *TracingProvider
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingProvider.
func (*TracingProvider) DeepCopyInto ¶
func (in *TracingProvider) DeepCopyInto(out *TracingProvider)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TracingProviderType ¶
type TracingProviderType string
+k8s:deepcopy-gen=true
const (
TracingProviderTypeOpenTelemetry TracingProviderType = "OpenTelemetry"
)
type TriggerEnum ¶
type TriggerEnum string
TriggerEnum specifies the conditions that trigger retries. +kubebuilder:validation:Enum={"5xx","gateway-error","reset","connect-failure","retriable-4xx","refused-stream","retriable-status-codes","cancelled","deadline-exceeded","internal","resource-exhausted","unavailable"}
const ( // The upstream server responds with any 5xx response code, or does not respond at all (disconnect/reset/read timeout). // Includes connect-failure and refused-stream. Error5XX TriggerEnum = "5xx" // The response is a gateway error (502,503 or 504). GatewayError TriggerEnum = "gateway-error" // The upstream server does not respond at all (disconnect/reset/read timeout.) Reset TriggerEnum = "reset" // Connection failure to the upstream server (connect timeout, etc.). (Included in *5xx*) ConnectFailure TriggerEnum = "connect-failure" // The upstream server responds with a retriable 4xx response code. // Currently, the only response code in this category is 409. Retriable4XX TriggerEnum = "retriable-4xx" // The upstream server resets the stream with a REFUSED_STREAM error code. RefusedStream TriggerEnum = "refused-stream" // The upstream server responds with any response code matching one defined in the RetriableStatusCodes. RetriableStatusCodes TriggerEnum = "retriable-status-codes" // The gRPC status code in the response headers is “cancelled”. Cancelled TriggerEnum = "cancelled" // The gRPC status code in the response headers is “deadline-exceeded”. DeadlineExceeded TriggerEnum = "deadline-exceeded" // The gRPC status code in the response headers is “internal”. Internal TriggerEnum = "internal" // The gRPC status code in the response headers is “resource-exhausted”. ResourceExhausted TriggerEnum = "resource-exhausted" Unavailable TriggerEnum = "unavailable" )
type XDSTranslatorHook ¶
type XDSTranslatorHook string
+k8s:deepcopy-gen=true XDSTranslatorHook defines the types of hooks that an APK Gateway extension may support for the xds-translator
+kubebuilder:validation:Enum=VirtualHost;Route;HTTPListener;Translation
const ( XDSVirtualHost XDSTranslatorHook = "VirtualHost" XDSRoute XDSTranslatorHook = "Route" XDSHTTPListener XDSTranslatorHook = "HTTPListener" XDSTranslation XDSTranslatorHook = "Translation" )