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