Documentation
¶
Overview ¶
Package v1alpha2 contains API Schema definitions for the gateway.nginx.org API group.
+kubebuilder:object:generate=true +groupName=gateway.nginx.org
Index ¶
- Constants
- Variables
- func Resource(resource string) schema.GroupResource
- type AgentLogLevel
- type AutoscalingSpec
- type ContainerSpec
- type DaemonSetSpec
- type DeploymentSpec
- type DisableTelemetryFeature
- type ExternalTrafficPolicy
- type HostPort
- type IPFamilyType
- type Image
- type KubernetesSpec
- type Metrics
- type NginxErrorLogLevel
- type NginxLogging
- type NginxPlus
- type NginxPlusAllowAddress
- type NginxPlusAllowAddressType
- type NginxProxy
- type NginxProxyList
- type NginxProxySpec
- type NodePort
- type ObservabilityPolicy
- func (in *ObservabilityPolicy) DeepCopy() *ObservabilityPolicy
- func (in *ObservabilityPolicy) DeepCopyInto(out *ObservabilityPolicy)
- func (in *ObservabilityPolicy) DeepCopyObject() runtime.Object
- func (p *ObservabilityPolicy) GetPolicyStatus() v1alpha2.PolicyStatus
- func (p *ObservabilityPolicy) GetTargetRefs() []v1alpha2.LocalPolicyTargetReference
- func (p *ObservabilityPolicy) SetPolicyStatus(status v1alpha2.PolicyStatus)
- type ObservabilityPolicyList
- type ObservabilityPolicySpec
- type Patch
- type PatchType
- type PodSpec
- type PullPolicy
- type ReadinessProbeSpec
- type RewriteClientIP
- type RewriteClientIPAddress
- type RewriteClientIPAddressType
- type RewriteClientIPModeType
- type ServiceSpec
- type ServiceType
- type Telemetry
- type TelemetryExporter
- type TraceContext
- type TraceStrategy
- type Tracing
Constants ¶
const GroupName = "gateway.nginx.org"
GroupName specifies the group name used to register the objects.
Variables ¶
var ( // SchemeBuilder collects functions that add things to a scheme. It's to allow // code to compile without explicitly referencing generated types. You should // declare one in each package that will have generated deep copy or conversion // functions. SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme applies all the stored functions to the scheme. A non-nil error // indicates that one function failed and the attempt was abandoned. AddToScheme = SchemeBuilder.AddToScheme )
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha2"}
SchemeGroupVersion is group version used to register these objects.
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource.
Types ¶
type AgentLogLevel ¶
type AgentLogLevel string
AgentLevel defines the log level of the NGINX agent process.
+kubebuilder:validation:Enum=debug;info;error;panic;fatal
const ( // AgentLogLevelDebug is the debug level NGINX agent logs. AgentLogLevelDebug AgentLogLevel = "debug" // AgentLogLevelInfo is the info level NGINX agent logs. AgentLogLevelInfo AgentLogLevel = "info" // AgentLogLevelError is the error level NGINX agent logs. AgentLogLevelError AgentLogLevel = "error" // AgentLogLevelPanic is the panic level NGINX agent logs. AgentLogLevelPanic AgentLogLevel = "panic" // AgentLogLevelFatal is the fatal level NGINX agent logs. AgentLogLevelFatal AgentLogLevel = "fatal" )
type AutoscalingSpec ¶
type AutoscalingSpec struct {
// 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.
//
// +optional
Behavior *autoscalingv2.HorizontalPodAutoscalerBehavior `json:"behavior,omitempty"`
// Target cpu utilization percentage of HPA.
//
// +optional
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=100
TargetCPUUtilizationPercentage *int32 `json:"targetCPUUtilizationPercentage,omitempty"`
// Target memory utilization percentage of HPA.
//
// +optional
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=100
TargetMemoryUtilizationPercentage *int32 `json:"targetMemoryUtilizationPercentage,omitempty"`
// Minimum number of replicas.
//
// +optional
// +kubebuilder:validation:Minimum=1
MinReplicas *int32 `json:"minReplicas,omitempty"`
// Metrics configures additional metrics options.
//
// +optional
Metrics []autoscalingv2.MetricSpec `json:"metrics,omitempty"`
// Maximum number of replicas.
//
// +kubebuilder:validation:Minimum=1
MaxReplicas int32 `json:"maxReplicas"`
// Enable or disable Horizontal Pod Autoscaler.
Enable bool `json:"enable"`
}
AutoscalingSpec is the configuration for the Horizontal Pod Autoscaling.
+kubebuilder:validation:XValidation:message="minReplicas must be less than or equal to maxReplicas",rule="(!has(self.minReplicas)) || (self.minReplicas <= self.maxReplicas)"
func (*AutoscalingSpec) DeepCopy ¶
func (in *AutoscalingSpec) DeepCopy() *AutoscalingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoscalingSpec.
func (*AutoscalingSpec) DeepCopyInto ¶
func (in *AutoscalingSpec) DeepCopyInto(out *AutoscalingSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ContainerSpec ¶
type ContainerSpec struct {
// Debug enables debugging for NGINX by using the nginx-debug binary.
//
// +optional
Debug *bool `json:"debug,omitempty"`
// Image is the NGINX image to use.
//
// +optional
Image *Image `json:"image,omitempty"`
// Resources describes the compute resource requirements.
//
// +optional
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
// Lifecycle describes actions that the management system should take in response to container lifecycle
// events. For the PostStart and PreStop lifecycle handlers, management of the container blocks
// until the action is complete, unless the container process fails, in which case the handler is aborted.
//
// +optional
Lifecycle *corev1.Lifecycle `json:"lifecycle,omitempty"`
// ReadinessProbe defines the readiness probe for the NGINX container.
//
// +optional
ReadinessProbe *ReadinessProbeSpec `json:"readinessProbe,omitempty"`
// HostPorts are the list of ports to expose on the host.
//
// +optional
HostPorts []HostPort `json:"hostPorts,omitempty"`
// VolumeMounts describe the mounting of Volumes within a container.
//
// +optional
VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
}
ContainerSpec defines container fields for the NGINX container.
func (*ContainerSpec) DeepCopy ¶
func (in *ContainerSpec) DeepCopy() *ContainerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerSpec.
func (*ContainerSpec) DeepCopyInto ¶
func (in *ContainerSpec) DeepCopyInto(out *ContainerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DaemonSetSpec ¶
type DaemonSetSpec struct {
// Container defines container fields for the NGINX container.
//
// +optional
Container ContainerSpec `json:"container"`
// Pod defines Pod-specific fields.
//
// +optional
Pod PodSpec `json:"pod"`
// Patches are custom patches to apply to the NGINX DaemonSet.
//
// +optional
Patches []Patch `json:"patches,omitempty"`
}
DaemonSet is the configuration for the NGINX DaemonSet.
func (*DaemonSetSpec) DeepCopy ¶
func (in *DaemonSetSpec) DeepCopy() *DaemonSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetSpec.
func (*DaemonSetSpec) DeepCopyInto ¶
func (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DeploymentSpec ¶
type DeploymentSpec struct {
// Number of desired Pods.
//
// +optional
Replicas *int32 `json:"replicas,omitempty"`
// Autoscaling defines the configuration for Horizontal Pod Autoscaling.
//
// +optional
Autoscaling *AutoscalingSpec `json:"autoscaling,omitempty"`
// Pod defines Pod-specific fields.
//
// +optional
Pod PodSpec `json:"pod"`
// Container defines container fields for the NGINX container.
//
// +optional
Container ContainerSpec `json:"container"`
// Patches are custom patches to apply to the NGINX Deployment.
//
// +optional
Patches []Patch `json:"patches,omitempty"`
}
Deployment is the configuration for the NGINX Deployment.
func (*DeploymentSpec) DeepCopy ¶
func (in *DeploymentSpec) DeepCopy() *DeploymentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec.
func (*DeploymentSpec) DeepCopyInto ¶
func (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DisableTelemetryFeature ¶
type DisableTelemetryFeature string
DisableTelemetryFeature is a telemetry feature that can be disabled.
+kubebuilder:validation:Enum=DisableTracing
const ( // DisableTracing disables the OpenTelemetry tracing feature. DisableTracing DisableTelemetryFeature = "DisableTracing" )
type ExternalTrafficPolicy ¶
type ExternalTrafficPolicy corev1.ServiceExternalTrafficPolicy
ExternalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs. Ignored for ClusterIP services. +kubebuilder:validation:Enum=Cluster;Local
const ( // ExternalTrafficPolicyCluster routes traffic to all endpoints. ExternalTrafficPolicyCluster ExternalTrafficPolicy = ExternalTrafficPolicy(corev1.ServiceExternalTrafficPolicyCluster) // ExternalTrafficPolicyLocal 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). ExternalTrafficPolicyLocal ExternalTrafficPolicy = ExternalTrafficPolicy(corev1.ServiceExternalTrafficPolicyLocal) )
type HostPort ¶
type HostPort struct {
// Port to expose on the host.
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
Port int32 `json:"port"`
// ContainerPort is the port on the nginx container to map to the HostPort.
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
ContainerPort int32 `json:"containerPort"`
}
HostPort exposes an nginx container port on the host.
func (*HostPort) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPort.
func (*HostPort) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IPFamilyType ¶
type IPFamilyType string
IPFamilyType specifies the IP family to be used by NGINX.
+kubebuilder:validation:Enum=dual;ipv4;ipv6
const ( // Dual specifies that NGINX will use both IPv4 and IPv6. Dual IPFamilyType = "dual" // IPv4 specifies that NGINX will use only IPv4. IPv4 IPFamilyType = "ipv4" // IPv6 specifies that NGINX will use only IPv6. IPv6 IPFamilyType = "ipv6" )
type Image ¶
type Image struct {
// Repository is the image path.
// Default is ghcr.io/nginx/nginx-gateway-fabric/nginx.
//
// +optional
Repository *string `json:"repository,omitempty"`
// Tag is the image tag to use. Default matches the tag of the control plane.
//
// +optional
Tag *string `json:"tag,omitempty"`
// PullPolicy describes a policy for if/when to pull a container image.
//
// +optional
// +kubebuilder:default:=IfNotPresent
PullPolicy *PullPolicy `json:"pullPolicy,omitempty"`
}
Image is the NGINX image to use.
func (*Image) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image.
func (*Image) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubernetesSpec ¶
type KubernetesSpec struct {
// Deployment is the configuration for the NGINX Deployment.
// This is the default deployment option.
//
// +optional
Deployment *DeploymentSpec `json:"deployment,omitempty"`
// DaemonSet is the configuration for the NGINX DaemonSet.
//
// +optional
DaemonSet *DaemonSetSpec `json:"daemonSet,omitempty"`
// Service is the configuration for the NGINX Service.
//
// +optional
Service *ServiceSpec `json:"service,omitempty"`
}
KubernetesSpec contains the configuration for the NGINX Deployment and Service Kubernetes objects.
+kubebuilder:validation:XValidation:message="only one of deployment or daemonSet can be set",rule="(!has(self.deployment) && !has(self.daemonSet)) || ((has(self.deployment) && !has(self.daemonSet)) || (!has(self.deployment) && has(self.daemonSet)))"
func (*KubernetesSpec) DeepCopy ¶
func (in *KubernetesSpec) DeepCopy() *KubernetesSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesSpec.
func (*KubernetesSpec) DeepCopyInto ¶
func (in *KubernetesSpec) DeepCopyInto(out *KubernetesSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Metrics ¶
type Metrics struct {
// Port where the Prometheus metrics are exposed.
//
// +optional
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
Port *int32 `json:"port,omitempty"`
// Disable serving Prometheus metrics on the listen port.
//
// +optional
Disable *bool `json:"disable,omitempty"`
}
Metrics defines the configuration for Prometheus scraping metrics.
func (*Metrics) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metrics.
func (*Metrics) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NginxErrorLogLevel ¶
type NginxErrorLogLevel string
NginxErrorLogLevel type defines the log level of error logs for NGINX.
+kubebuilder:validation:Enum=debug;info;notice;warn;error;crit;alert;emerg
const ( // NginxLogLevelDebug is the debug level for NGINX error logs. NginxLogLevelDebug NginxErrorLogLevel = "debug" // NginxLogLevelInfo is the info level for NGINX error logs. NginxLogLevelInfo NginxErrorLogLevel = "info" // NginxLogLevelNotice is the notice level for NGINX error logs. NginxLogLevelNotice NginxErrorLogLevel = "notice" // NginxLogLevelWarn is the warn level for NGINX error logs. NginxLogLevelWarn NginxErrorLogLevel = "warn" // NginxLogLevelError is the error level for NGINX error logs. NginxLogLevelError NginxErrorLogLevel = "error" // NginxLogLevelCrit is the crit level for NGINX error logs. NginxLogLevelCrit NginxErrorLogLevel = "crit" // NginxLogLevelAlert is the alert level for NGINX error logs. NginxLogLevelAlert NginxErrorLogLevel = "alert" // NginxLogLevelEmerg is the emerg level for NGINX error logs. NginxLogLevelEmerg NginxErrorLogLevel = "emerg" )
type NginxLogging ¶
type NginxLogging struct {
// ErrorLevel defines the error log level. Possible log levels listed in order of increasing severity are
// debug, info, notice, warn, error, crit, alert, and emerg. Setting a certain log level will cause all messages
// of the specified and more severe log levels to be logged. For example, the log level 'error' will cause error,
// crit, alert, and emerg messages to be logged. https://nginx.org/en/docs/ngx_core_module.html#error_log
//
// +optional
// +kubebuilder:default=info
ErrorLevel *NginxErrorLogLevel `json:"errorLevel,omitempty"`
// AgentLevel defines the log level of the NGINX agent process. Changing this value results in a
// re-roll of the NGINX deployment.
//
// +optional
// +kubebuilder:default=info
AgentLevel *AgentLogLevel `json:"agentLevel,omitempty"`
}
NginxLogging defines logging related settings for NGINX.
func (*NginxLogging) DeepCopy ¶
func (in *NginxLogging) DeepCopy() *NginxLogging
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxLogging.
func (*NginxLogging) DeepCopyInto ¶
func (in *NginxLogging) DeepCopyInto(out *NginxLogging)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NginxPlus ¶
type NginxPlus struct {
// AllowedAddresses specifies IPAddresses or CIDR blocks to the allow list for accessing the NGINX Plus API.
//
// +optional
AllowedAddresses []NginxPlusAllowAddress `json:"allowedAddresses,omitempty"`
}
NginxPlus specifies NGINX Plus additional settings. These will only be applied if NGINX Plus is being used.
func (*NginxPlus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxPlus.
func (*NginxPlus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NginxPlusAllowAddress ¶
type NginxPlusAllowAddress struct {
// Type specifies the type of address.
Type NginxPlusAllowAddressType `json:"type"`
// Value specifies the address value.
Value string `json:"value"`
}
NginxPlusAllowAddress specifies the address type and value for an NginxPlus allow address.
func (*NginxPlusAllowAddress) DeepCopy ¶
func (in *NginxPlusAllowAddress) DeepCopy() *NginxPlusAllowAddress
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxPlusAllowAddress.
func (*NginxPlusAllowAddress) DeepCopyInto ¶
func (in *NginxPlusAllowAddress) DeepCopyInto(out *NginxPlusAllowAddress)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NginxPlusAllowAddressType ¶
type NginxPlusAllowAddressType string
NginxPlusAllowAddressType specifies the type of address. +kubebuilder:validation:Enum=CIDR;IPAddress
const ( // NginxPlusAllowCIDRAddressType specifies that the address is a CIDR block. NginxPlusAllowCIDRAddressType NginxPlusAllowAddressType = "CIDR" // NginxPlusAllowIPAddressType specifies that the address is an IP address. NginxPlusAllowIPAddressType NginxPlusAllowAddressType = "IPAddress" )
type NginxProxy ¶
type NginxProxy struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the desired state of the NginxProxy.
Spec NginxProxySpec `json:"spec"`
}
NginxProxy is a configuration object that can be referenced from a GatewayClass parametersRef or a Gateway infrastructure.parametersRef. It provides a way to configure data plane settings. If referenced from a GatewayClass, the settings apply to all Gateways attached to the GatewayClass. If referenced from a Gateway, the settings apply to that Gateway alone. If both a Gateway and its GatewayClass reference an NginxProxy, the settings are merged. Settings specified on the Gateway NginxProxy override those set on the GatewayClass NginxProxy.
func (*NginxProxy) DeepCopy ¶
func (in *NginxProxy) DeepCopy() *NginxProxy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxProxy.
func (*NginxProxy) DeepCopyInto ¶
func (in *NginxProxy) DeepCopyInto(out *NginxProxy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NginxProxy) DeepCopyObject ¶
func (in *NginxProxy) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NginxProxyList ¶
type NginxProxyList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []NginxProxy `json:"items"`
}
NginxProxyList contains a list of NginxProxies.
func (*NginxProxyList) DeepCopy ¶
func (in *NginxProxyList) DeepCopy() *NginxProxyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxProxyList.
func (*NginxProxyList) DeepCopyInto ¶
func (in *NginxProxyList) DeepCopyInto(out *NginxProxyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NginxProxyList) DeepCopyObject ¶
func (in *NginxProxyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NginxProxySpec ¶
type NginxProxySpec struct {
// IPFamily specifies the IP family to be used by the NGINX.
// Default is "dual", meaning the server will use both IPv4 and IPv6.
//
// +optional
// +kubebuilder:default:=dual
IPFamily *IPFamilyType `json:"ipFamily,omitempty"`
// Telemetry specifies the OpenTelemetry configuration.
//
// +optional
Telemetry *Telemetry `json:"telemetry,omitempty"`
// Metrics defines the configuration for Prometheus scraping metrics. Changing this value results in a
// re-roll of the NGINX deployment.
//
// +optional
Metrics *Metrics `json:"metrics,omitempty"`
// RewriteClientIP defines configuration for rewriting the client IP to the original client's IP.
// +kubebuilder:validation:XValidation:message="if mode is set, trustedAddresses is a required field",rule="!(has(self.mode) && (!has(self.trustedAddresses) || size(self.trustedAddresses) == 0))"
//
// +optional
//nolint:lll
RewriteClientIP *RewriteClientIP `json:"rewriteClientIP,omitempty"`
// Logging defines logging related settings for NGINX.
//
// +optional
Logging *NginxLogging `json:"logging,omitempty"`
// NginxPlus specifies NGINX Plus additional settings.
//
// +optional
NginxPlus *NginxPlus `json:"nginxPlus,omitempty"`
// DisableHTTP2 defines if http2 should be disabled for all servers.
// If not specified, or set to false, http2 will be enabled for all servers.
//
// +optional
DisableHTTP2 *bool `json:"disableHTTP2,omitempty"`
// DisableSNIHostValidation disables the validation that ensures the SNI hostname
// matches the Host header in HTTPS requests. When disabled, HTTPS connections can
// be reused for requests to different hostnames covered by the same certificate.
// This resolves HTTP/2 connection coalescing issues with wildcard certificates but
// introduces security risks as described in Gateway API GEP-3567.
// If not specified, defaults to false (validation enabled).
//
// +optional
DisableSNIHostValidation *bool `json:"disableSNIHostValidation,omitempty"`
// Kubernetes contains the configuration for the NGINX Deployment and Service Kubernetes objects.
//
// +optional
Kubernetes *KubernetesSpec `json:"kubernetes,omitempty"`
// WorkerConnections specifies the maximum number of simultaneous connections that can be opened by a worker process.
// Default is 1024.
//
// +optional
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
WorkerConnections *int32 `json:"workerConnections,omitempty"`
}
NginxProxySpec defines the desired state of the NginxProxy.
func (*NginxProxySpec) DeepCopy ¶
func (in *NginxProxySpec) DeepCopy() *NginxProxySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NginxProxySpec.
func (*NginxProxySpec) DeepCopyInto ¶
func (in *NginxProxySpec) DeepCopyInto(out *NginxProxySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodePort ¶
type NodePort struct {
// Port is the NodePort to expose.
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
Port int32 `json:"port"`
// ListenerPort is the Gateway listener port that this NodePort maps to.
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
ListenerPort int32 `json:"listenerPort"`
}
NodePort creates a port on each node on which the NGINX data plane service is exposed. The NodePort MUST map to a Gateway listener port, otherwise it will be ignored. If not specified, Kubernetes allocates a NodePort automatically if required. The default NodePort range enforced by Kubernetes is 30000-32767.
func (*NodePort) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodePort.
func (*NodePort) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObservabilityPolicy ¶
type ObservabilityPolicy struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// Spec defines the desired state of the ObservabilityPolicy.
Spec ObservabilityPolicySpec `json:"spec"`
// Status defines the state of the ObservabilityPolicy.
Status gatewayv1alpha2.PolicyStatus `json:"status,omitempty"`
}
ObservabilityPolicy is a Direct Attached Policy. It provides a way to configure observability settings for the NGINX Gateway Fabric data plane. Used in conjunction with the NginxProxy CRD that is attached to the GatewayClass parametersRef.
func (*ObservabilityPolicy) DeepCopy ¶
func (in *ObservabilityPolicy) DeepCopy() *ObservabilityPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityPolicy.
func (*ObservabilityPolicy) DeepCopyInto ¶
func (in *ObservabilityPolicy) DeepCopyInto(out *ObservabilityPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ObservabilityPolicy) DeepCopyObject ¶
func (in *ObservabilityPolicy) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ObservabilityPolicy) GetPolicyStatus ¶
func (p *ObservabilityPolicy) GetPolicyStatus() v1alpha2.PolicyStatus
func (*ObservabilityPolicy) GetTargetRefs ¶
func (p *ObservabilityPolicy) GetTargetRefs() []v1alpha2.LocalPolicyTargetReference
func (*ObservabilityPolicy) SetPolicyStatus ¶
func (p *ObservabilityPolicy) SetPolicyStatus(status v1alpha2.PolicyStatus)
type ObservabilityPolicyList ¶
type ObservabilityPolicyList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ObservabilityPolicy `json:"items"`
}
ObservabilityPolicyList contains a list of ObservabilityPolicies.
func (*ObservabilityPolicyList) DeepCopy ¶
func (in *ObservabilityPolicyList) DeepCopy() *ObservabilityPolicyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityPolicyList.
func (*ObservabilityPolicyList) DeepCopyInto ¶
func (in *ObservabilityPolicyList) DeepCopyInto(out *ObservabilityPolicyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ObservabilityPolicyList) DeepCopyObject ¶
func (in *ObservabilityPolicyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ObservabilityPolicySpec ¶
type ObservabilityPolicySpec struct {
// Tracing allows for enabling and configuring tracing.
//
// +optional
Tracing *Tracing `json:"tracing,omitempty"`
// TargetRefs identifies the API object(s) to apply the policy to.
// Objects must be in the same namespace as the policy.
// Support: HTTPRoute, GRPCRoute.
//
// TargetRefs must be _distinct_. This means that the multi-part key defined by `kind` and `name` must
// be unique across all targetRef entries in the ObservabilityPolicy.
//
// +kubebuilder:validation:MinItems=1
// +kubebuilder:validation:MaxItems=16
// +kubebuilder:validation:XValidation:message="TargetRef Kind must be: HTTPRoute or GRPCRoute",rule="(self.exists(t, t.kind=='HTTPRoute') || self.exists(t, t.kind=='GRPCRoute'))"
// +kubebuilder:validation:XValidation:message="TargetRef Group must be gateway.networking.k8s.io",rule="self.all(t, t.group=='gateway.networking.k8s.io')"
// +kubebuilder:validation:XValidation:message="TargetRef Kind and Name combination must be unique",rule="self.all(p1, self.exists_one(p2, (p1.name == p2.name) && (p1.kind == p2.kind)))"
//nolint:lll
TargetRefs []gatewayv1alpha2.LocalPolicyTargetReference `json:"targetRefs"`
}
ObservabilityPolicySpec defines the desired state of the ObservabilityPolicy.
func (*ObservabilityPolicySpec) DeepCopy ¶
func (in *ObservabilityPolicySpec) DeepCopy() *ObservabilityPolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilityPolicySpec.
func (*ObservabilityPolicySpec) DeepCopyInto ¶
func (in *ObservabilityPolicySpec) DeepCopyInto(out *ObservabilityPolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Patch ¶
type Patch struct {
// Type is the type of patch. Defaults to StrategicMerge.
//
// +optional
// +kubebuilder:default:=StrategicMerge
Type *PatchType `json:"type,omitempty"`
// Value is the patch data as raw JSON.
// For StrategicMerge and Merge patches, this should be a JSON object.
// For JSONPatch patches, this should be a JSON array of patch operations.
//
// +optional
// +kubebuilder:validation:XPreserveUnknownFields
Value *apiextv1.JSON `json:"value,omitempty"`
}
Patch defines a patch to apply to a Kubernetes object.
func (*Patch) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Patch.
func (*Patch) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PatchType ¶
type PatchType string
PatchType specifies the type of patch. +kubebuilder:validation:Enum=StrategicMerge;Merge;JSONPatch
type PodSpec ¶
type PodSpec struct {
// TerminationGracePeriodSeconds is the optional duration in seconds the pod needs to terminate gracefully.
// Value must be non-negative integer. The value zero indicates stop immediately via
// the kill signal (no opportunity to shut down).
// If this value is nil, the default grace period will be used instead.
// The grace period is the duration in seconds after the processes running in the pod are sent
// a termination signal and the time when the processes are forcibly halted with a kill signal.
// Set this value longer than the expected cleanup time for your process.
// Defaults to 30 seconds.
//
// +optional
TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"`
// Affinity is the pod's scheduling constraints.
//
// +optional
Affinity *corev1.Affinity `json:"affinity,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.
//
// +optional
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// Tolerations allow the scheduler to schedule Pods with matching taints.
//
// +optional
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
// Volumes represents named volumes in a pod that may be accessed by any container in the pod.
//
// +optional
Volumes []corev1.Volume `json:"volumes,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"`
}
PodSpec defines Pod-specific fields.
func (*PodSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSpec.
func (*PodSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PullPolicy ¶
type PullPolicy corev1.PullPolicy
PullPolicy describes a policy for if/when to pull a container image. +kubebuilder:validation:Enum=Always;Never;IfNotPresent
const ( // PullAlways means that kubelet always attempts to pull the latest image. Container will fail if the pull fails. PullAlways PullPolicy = PullPolicy(corev1.PullAlways) // PullNever means that kubelet never pulls an image, but only uses a local image. Container will fail if the // image isn't present. PullNever PullPolicy = PullPolicy(corev1.PullNever) // PullIfNotPresent means that kubelet pulls if the image isn't present on disk. Container will fail if the image // isn't present and the pull fails. PullIfNotPresent PullPolicy = PullPolicy(corev1.PullIfNotPresent) )
type ReadinessProbeSpec ¶
type ReadinessProbeSpec struct {
// Port is the port on which the readiness endpoint is exposed.
// If not specified, the default port is 8081.
//
// +optional
// +kubebuilder:validation:Minimum=1
// +kubebuilder:validation:Maximum=65535
Port *int32 `json:"port,omitempty"`
// InitialDelaySeconds is the number of seconds after the container has
// started before the readiness probe is initiated.
// If not specified, the default is 3 seconds.
//
// +optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=3600
InitialDelaySeconds *int32 `json:"initialDelaySeconds,omitempty"`
}
ReadinessProbeSpec defines the configuration for the NGINX readiness probe.
func (*ReadinessProbeSpec) DeepCopy ¶
func (in *ReadinessProbeSpec) DeepCopy() *ReadinessProbeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadinessProbeSpec.
func (*ReadinessProbeSpec) DeepCopyInto ¶
func (in *ReadinessProbeSpec) DeepCopyInto(out *ReadinessProbeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RewriteClientIP ¶
type RewriteClientIP struct {
// Mode defines how NGINX will rewrite the client's IP address.
// There are two possible modes:
// - ProxyProtocol: NGINX will rewrite the client's IP using the PROXY protocol header.
// - XForwardedFor: NGINX will rewrite the client's IP using the X-Forwarded-For header.
// Sets NGINX directive real_ip_header: https://nginx.org/en/docs/http/ngx_http_realip_module.html#real_ip_header
//
// +optional
Mode *RewriteClientIPModeType `json:"mode,omitempty"`
// SetIPRecursively configures whether recursive search is used when selecting the client's address from
// the X-Forwarded-For header. It is used in conjunction with TrustedAddresses.
// If enabled, NGINX will recurse on the values in X-Forwarded-Header from the end of array
// to start of array and select the first untrusted IP.
// For example, if X-Forwarded-For is [11.11.11.11, 22.22.22.22, 55.55.55.1],
// and TrustedAddresses is set to 55.55.55.1/32, NGINX will rewrite the client IP to 22.22.22.22.
// If disabled, NGINX will select the IP at the end of the array.
// In the previous example, 55.55.55.1 would be selected.
// Sets NGINX directive real_ip_recursive: https://nginx.org/en/docs/http/ngx_http_realip_module.html#real_ip_recursive
//
// +optional
SetIPRecursively *bool `json:"setIPRecursively,omitempty"`
// TrustedAddresses specifies the addresses that are trusted to send correct client IP information.
// If a request comes from a trusted address, NGINX will rewrite the client IP information,
// and forward it to the backend in the X-Forwarded-For* and X-Real-IP headers.
// If the request does not come from a trusted address, NGINX will not rewrite the client IP information.
// To trust all addresses (not recommended for production), set to 0.0.0.0/0.
// If no addresses are provided, NGINX will not rewrite the client IP information.
// Sets NGINX directive set_real_ip_from: https://nginx.org/en/docs/http/ngx_http_realip_module.html#set_real_ip_from
// This field is required if mode is set.
//
// +optional
// +kubebuilder:validation:MaxItems=16
TrustedAddresses []RewriteClientIPAddress `json:"trustedAddresses,omitempty"`
}
RewriteClientIP specifies the configuration for rewriting the client's IP address.
func (*RewriteClientIP) DeepCopy ¶
func (in *RewriteClientIP) DeepCopy() *RewriteClientIP
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RewriteClientIP.
func (*RewriteClientIP) DeepCopyInto ¶
func (in *RewriteClientIP) DeepCopyInto(out *RewriteClientIP)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RewriteClientIPAddress ¶
type RewriteClientIPAddress struct {
// Type specifies the type of address.
Type RewriteClientIPAddressType `json:"type"`
// Value specifies the address value.
Value string `json:"value"`
}
RewriteClientIPAddress specifies the address type and value for a RewriteClientIP address.
func (*RewriteClientIPAddress) DeepCopy ¶
func (in *RewriteClientIPAddress) DeepCopy() *RewriteClientIPAddress
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RewriteClientIPAddress.
func (*RewriteClientIPAddress) DeepCopyInto ¶
func (in *RewriteClientIPAddress) DeepCopyInto(out *RewriteClientIPAddress)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RewriteClientIPAddressType ¶
type RewriteClientIPAddressType string
RewriteClientIPAddressType specifies the type of address. +kubebuilder:validation:Enum=CIDR;IPAddress;Hostname
const ( // RewriteClientIPCIDRAddressType specifies that the address is a CIDR block. RewriteClientIPCIDRAddressType RewriteClientIPAddressType = "CIDR" // RewriteClientIPIPAddressType specifies that the address is an IP address. RewriteClientIPIPAddressType RewriteClientIPAddressType = "IPAddress" // RewriteClientIPHostnameAddressType specifies that the address is a Hostname. RewriteClientIPHostnameAddressType RewriteClientIPAddressType = "Hostname" )
type RewriteClientIPModeType ¶
type RewriteClientIPModeType string
RewriteClientIPModeType defines how NGINX Gateway Fabric will determine the client's original IP address. +kubebuilder:validation:Enum=ProxyProtocol;XForwardedFor
const ( // RewriteClientIPModeProxyProtocol configures NGINX to accept PROXY protocol and // set the client's IP address to the IP address in the PROXY protocol header. // Sets the proxy_protocol parameter on the listen directive of all servers and sets real_ip_header // to proxy_protocol: https://nginx.org/en/docs/http/ngx_http_realip_module.html#real_ip_header. RewriteClientIPModeProxyProtocol RewriteClientIPModeType = "ProxyProtocol" // RewriteClientIPModeXForwardedFor configures NGINX to set the client's IP address to the // IP address in the X-Forwarded-For HTTP header. // https://nginx.org/en/docs/http/ngx_http_realip_module.html#real_ip_header. RewriteClientIPModeXForwardedFor RewriteClientIPModeType = "XForwardedFor" )
type ServiceSpec ¶
type ServiceSpec struct {
// ServiceType describes ingress method for the Service.
//
// +optional
// +kubebuilder:default:=LoadBalancer
ServiceType *ServiceType `json:"type,omitempty"`
// ExternalTrafficPolicy describes how nodes distribute service traffic they
// receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs,
// and LoadBalancer IPs.
//
// +optional
// +kubebuilder:default:=Local
ExternalTrafficPolicy *ExternalTrafficPolicy `json:"externalTrafficPolicy,omitempty"`
// LoadBalancerIP is a static IP address for the load balancer. Requires service type to be LoadBalancer.
//
// +optional
LoadBalancerIP *string `json:"loadBalancerIP,omitempty"`
// LoadBalancerClass is the class of the load balancer implementation this Service belongs to.
// Requires service type to be LoadBalancer.
//
// +optional
LoadBalancerClass *string `json:"loadBalancerClass,omitempty"`
// LoadBalancerSourceRanges are the IP ranges (CIDR) that are allowed to access the load balancer.
// Requires service type to be LoadBalancer.
//
// +optional
LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"`
// NodePorts are the list of NodePorts to expose on the NGINX data plane service.
// Each NodePort MUST map to a Gateway listener port, otherwise it will be ignored.
// The default NodePort range enforced by Kubernetes is 30000-32767.
//
// +optional
NodePorts []NodePort `json:"nodePorts,omitempty"`
// Patches are custom patches to apply to the NGINX Service.
//
// +optional
Patches []Patch `json:"patches,omitempty"`
}
ServiceSpec is the configuration for the NGINX Service.
func (*ServiceSpec) DeepCopy ¶
func (in *ServiceSpec) DeepCopy() *ServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.
func (*ServiceSpec) DeepCopyInto ¶
func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceType ¶
type ServiceType corev1.ServiceType
ServiceType describes ingress method for the Service. +kubebuilder:validation:Enum=ClusterIP;LoadBalancer;NodePort
const ( // ServiceTypeClusterIP means a Service will only be accessible inside the // cluster, via the cluster IP. ServiceTypeClusterIP ServiceType = ServiceType(corev1.ServiceTypeClusterIP) // ServiceTypeNodePort means a Service will be exposed on one port of // every node, in addition to 'ClusterIP' type. ServiceTypeNodePort ServiceType = ServiceType(corev1.ServiceTypeNodePort) // ServiceTypeLoadBalancer means a Service will be exposed via an // external load balancer (if the cloud provider supports it), in addition // to 'NodePort' type. ServiceTypeLoadBalancer ServiceType = ServiceType(corev1.ServiceTypeLoadBalancer) )
type Telemetry ¶
type Telemetry struct {
// DisabledFeatures specifies OpenTelemetry features to be disabled.
//
// +optional
DisabledFeatures []DisableTelemetryFeature `json:"disabledFeatures,omitempty"`
// Exporter specifies OpenTelemetry export parameters.
//
// +optional
Exporter *TelemetryExporter `json:"exporter,omitempty"`
// ServiceName is the "service.name" attribute of the OpenTelemetry resource.
// Default is 'ngf:<gateway-namespace>:<gateway-name>'. If a value is provided by the user,
// then the default becomes a prefix to that value.
//
// +optional
// +kubebuilder:validation:MaxLength=127
// +kubebuilder:validation:Pattern=`^[a-zA-Z0-9_-]+$`
ServiceName *string `json:"serviceName,omitempty"`
// SpanAttributes are custom key/value attributes that are added to each span.
//
// +optional
// +listType=map
// +listMapKey=key
// +kubebuilder:validation:MaxItems=64
SpanAttributes []v1alpha1.SpanAttribute `json:"spanAttributes,omitempty"`
}
Telemetry specifies the OpenTelemetry configuration.
func (*Telemetry) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Telemetry.
func (*Telemetry) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TelemetryExporter ¶
type TelemetryExporter struct {
// Interval is the maximum interval between two exports.
// Default: https://nginx.org/en/docs/ngx_otel_module.html#otel_exporter
//
// +optional
Interval *v1alpha1.Duration `json:"interval,omitempty"`
// BatchSize is the maximum number of spans to be sent in one batch per worker.
// Default: https://nginx.org/en/docs/ngx_otel_module.html#otel_exporter
//
// +optional
// +kubebuilder:validation:Minimum=0
BatchSize *int32 `json:"batchSize,omitempty"`
// BatchCount is the number of pending batches per worker, spans exceeding the limit are dropped.
// Default: https://nginx.org/en/docs/ngx_otel_module.html#otel_exporter
//
// +optional
// +kubebuilder:validation:Minimum=0
BatchCount *int32 `json:"batchCount,omitempty"`
// Endpoint is the address of OTLP/gRPC endpoint that will accept telemetry data.
// Format: alphanumeric hostname with optional http scheme and optional port.
//
//nolint:lll
// +optional
// +kubebuilder:validation:Pattern=`^(?:http?:\/\/)?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*(?::\d{1,5})?$`
Endpoint *string `json:"endpoint,omitempty"`
}
TelemetryExporter specifies OpenTelemetry export parameters.
func (*TelemetryExporter) DeepCopy ¶
func (in *TelemetryExporter) DeepCopy() *TelemetryExporter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TelemetryExporter.
func (*TelemetryExporter) DeepCopyInto ¶
func (in *TelemetryExporter) DeepCopyInto(out *TelemetryExporter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TraceContext ¶
type TraceContext string
TraceContext specifies how to propagate traceparent/tracestate headers.
+kubebuilder:validation:Enum=extract;inject;propagate;ignore
const ( // TraceContextExtract uses an existing trace context from the request, so that the identifiers // of a trace and the parent span are inherited from the incoming request. TraceContextExtract TraceContext = "extract" // TraceContextInject adds a new context to the request, overwriting existing headers, if any. TraceContextInject TraceContext = "inject" // TraceContextPropagate updates the existing context (combines extract and inject). TraceContextPropagate TraceContext = "propagate" // TraceContextIgnore skips context headers processing. TraceContextIgnore TraceContext = "ignore" )
type TraceStrategy ¶
type TraceStrategy string
TraceStrategy defines the tracing strategy.
+kubebuilder:validation:Enum=ratio;parent
const ( // TraceStrategyRatio enables ratio-based tracing, defaulting to 100% sampling rate. TraceStrategyRatio TraceStrategy = "ratio" // TraceStrategyParent enables tracing and only records spans if the parent span was sampled. TraceStrategyParent TraceStrategy = "parent" )
type Tracing ¶
type Tracing struct {
// Strategy defines if tracing is ratio-based or parent-based.
Strategy TraceStrategy `json:"strategy"`
// Ratio is the percentage of traffic that should be sampled. Integer from 0 to 100.
// By default, 100% of http requests are traced. Not applicable for parent-based tracing.
// If ratio is set to 0, tracing is disabled.
//
// +optional
// +kubebuilder:validation:Minimum=0
// +kubebuilder:validation:Maximum=100
Ratio *int32 `json:"ratio,omitempty"`
// Context specifies how to propagate traceparent/tracestate headers.
// Default: https://nginx.org/en/docs/ngx_otel_module.html#otel_trace_context
//
// +optional
Context *TraceContext `json:"context,omitempty"`
// SpanName defines the name of the Otel span. By default is the name of the location for a request.
// If specified, applies to all locations that are created for a route.
// Format: must have all '"' escaped and must not contain any '$' or end with an unescaped '\'
// Examples of invalid names: some-$value, quoted-"value"-name, unescaped\
//
// +optional
// +kubebuilder:validation:MinLength=1
// +kubebuilder:validation:MaxLength=255
// +kubebuilder:validation:Pattern=`^([^"$\\]|\\[^$])*$`
SpanName *string `json:"spanName,omitempty"`
// SpanAttributes are custom key/value attributes that are added to each span.
//
// +optional
// +listType=map
// +listMapKey=key
// +kubebuilder:validation:MaxItems=64
SpanAttributes []ngfAPIv1alpha1.SpanAttribute `json:"spanAttributes,omitempty"`
}
Tracing allows for enabling and configuring OpenTelemetry tracing.
+kubebuilder:validation:XValidation:message="ratio can only be specified if strategy is of type ratio",rule="!(has(self.ratio) && self.strategy != 'ratio')"
func (*Tracing) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing.
func (*Tracing) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.