API reference
Overview
NGINX Gateway API Reference
Packages:
gateway.nginx.org/v1alpha1
Package v1alpha1 contains API Schema definitions for the gateway.nginx.org API group.
Resource Types:ClientSettingsPolicy ¶
ClientSettingsPolicy is an Inherited Attached Policy. It provides a way to configure the behavior of the connection between the client and NGINX Gateway Fabric.
Field | Description | ||||||
---|---|---|---|---|---|---|---|
apiVersion string |
gateway.nginx.org/v1alpha1
|
||||||
kind string |
ClientSettingsPolicy |
||||||
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||
spec ClientSettingsPolicySpec |
Spec defines the desired state of the ClientSettingsPolicy.
|
||||||
status sigs.k8s.io/gateway-api/apis/v1alpha2.PolicyStatus |
Status defines the state of the ClientSettingsPolicy. |
NginxGateway ¶
NginxGateway represents the dynamic configuration for an NGINX Gateway Fabric control plane.
Field | Description | ||
---|---|---|---|
apiVersion string |
gateway.nginx.org/v1alpha1
|
||
kind string |
NginxGateway |
||
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||
spec NginxGatewaySpec |
NginxGatewaySpec defines the desired state of the NginxGateway.
|
||
status NginxGatewayStatus |
NginxGatewayStatus defines the state of the NginxGateway. |
NginxProxy ¶
NginxProxy is a configuration object that is attached to a GatewayClass parametersRef. It provides a way to configure global settings for all Gateways defined from the GatewayClass.
Field | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion string |
gateway.nginx.org/v1alpha1
|
||||||||||
kind string |
NginxProxy |
||||||||||
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||||||
spec NginxProxySpec |
Spec defines the desired state of the NginxProxy.
|
ObservabilityPolicy ¶
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.
Field | Description | ||||
---|---|---|---|---|---|
apiVersion string |
gateway.nginx.org/v1alpha1
|
||||
kind string |
ObservabilityPolicy |
||||
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||
spec ObservabilityPolicySpec |
Spec defines the desired state of the ObservabilityPolicy.
|
||||
status sigs.k8s.io/gateway-api/apis/v1alpha2.PolicyStatus |
Status defines the state of the ObservabilityPolicy. |
SnippetsFilter ¶
SnippetsFilter is a filter that allows inserting NGINX configuration into the generated NGINX config for HTTPRoute and GRPCRoute resources.
Field | Description | ||
---|---|---|---|
apiVersion string |
gateway.nginx.org/v1alpha1
|
||
kind string |
SnippetsFilter |
||
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||
spec SnippetsFilterSpec |
Spec defines the desired state of the SnippetsFilter.
|
||
status SnippetsFilterStatus |
Status defines the state of the SnippetsFilter. |
Address ¶
(Appears on: RewriteClientIP)
Address is a struct that specifies address type and value.
Field | Description |
---|---|
type AddressType |
Type specifies the type of address. |
value string |
Value specifies the address value. |
AddressType
(string
alias)¶
(Appears on: Address)
AddressType specifies the type of address.
Value | Description |
---|---|
"CIDR" |
CIDRAddressType specifies that the address is a CIDR block. |
"Hostname" |
HostnameAddressType specifies that the address is a Hostname. |
"IPAddress" |
IPAddressType specifies that the address is an IP address. |
ClientBody ¶
(Appears on: ClientSettingsPolicySpec)
ClientBody contains the settings for the client request body.
Field | Description |
---|---|
maxSize Size |
(Optional)
MaxSize sets the maximum allowed size of the client request body. If the size in a request exceeds the configured value, the 413 (Request Entity Too Large) error is returned to the client. Setting size to 0 disables checking of client request body size. Default: https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size. |
timeout Duration |
(Optional)
Timeout defines a timeout for reading client request body. The timeout is set only for a period between two successive read operations, not for the transmission of the whole request body. If a client does not transmit anything within this time, the request is terminated with the 408 (Request Time-out) error. Default: https://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_timeout. |
ClientKeepAlive ¶
(Appears on: ClientSettingsPolicySpec)
ClientKeepAlive defines the keep-alive settings for clients.
Field | Description |
---|---|
requests int32 |
(Optional)
Requests sets the maximum number of requests that can be served through one keep-alive connection. After the maximum number of requests are made, the connection is closed. Closing connections periodically is necessary to free per-connection memory allocations. Therefore, using too high maximum number of requests is not recommended as it can lead to excessive memory usage. Default: https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_requests. |
time Duration |
(Optional)
Time defines the maximum time during which requests can be processed through one keep-alive connection. After this time is reached, the connection is closed following the subsequent request processing. Default: https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_time. |
timeout ClientKeepAliveTimeout |
(Optional)
Timeout defines the keep-alive timeouts for clients. |
ClientKeepAliveTimeout ¶
(Appears on: ClientKeepAlive)
ClientKeepAliveTimeout defines the timeouts related to keep-alive client connections. Default: https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout.
Field | Description |
---|---|
server Duration |
(Optional)
Server sets the timeout during which a keep-alive client connection will stay open on the server side. Setting this value to 0 disables keep-alive client connections. |
header Duration |
(Optional)
Header sets the timeout in the “Keep-Alive: timeout=time” response header field. |
ClientSettingsPolicySpec ¶
(Appears on: ClientSettingsPolicy)
ClientSettingsPolicySpec defines the desired state of ClientSettingsPolicy.
Field | Description |
---|---|
body ClientBody |
(Optional)
Body defines the client request body settings. |
keepAlive ClientKeepAlive |
(Optional)
KeepAlive defines the keep-alive settings. |
targetRef sigs.k8s.io/gateway-api/apis/v1alpha2.LocalPolicyTargetReference |
TargetRef identifies an API object to apply the policy to. Object must be in the same namespace as the policy. Support: Gateway, HTTPRoute, GRPCRoute. |
ControllerLogLevel
(string
alias)¶
(Appears on: Logging)
ControllerLogLevel type defines the logging level for the control plane.
Value | Description |
---|---|
"debug" |
ControllerLogLevelDebug is the debug level for control plane logging. |
"error" |
ControllerLogLevelError is the error level for control plane logging. |
"info" |
ControllerLogLevelInfo is the info level for control plane logging. |
ControllerStatus ¶
(Appears on: SnippetsFilterStatus)
Field | Description |
---|---|
controllerName sigs.k8s.io/gateway-api/apis/v1.GatewayController |
ControllerName is a domain/path string that indicates the name of the controller that wrote this status. This corresponds with the controllerName field on GatewayClass. Example: “example.net/gateway-controller”. The format of this field is DOMAIN “/” PATH, where DOMAIN and PATH are valid Kubernetes names (https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names). Controllers MUST populate this field when writing status. Controllers should ensure that entries to status populated with their ControllerName are cleaned up when they are no longer necessary. |
conditions []Kubernetes meta/v1.Condition |
(Optional)
Conditions describe the status of the SnippetsFilter. |
Duration
(string
alias)¶
(Appears on: ClientBody, ClientKeepAlive, ClientKeepAliveTimeout, TelemetryExporter)
Duration is a string value representing a duration in time. Duration can be specified in milliseconds (ms), seconds (s), minutes (m), hours (h). A value without a suffix is seconds. Examples: 120s, 50ms, 5m, 1h.
IPFamilyType
(string
alias)¶
(Appears on: NginxProxySpec)
IPFamilyType specifies the IP family to be used by NGINX.
Value | Description |
---|---|
"dual" |
Dual specifies that NGINX will use both IPv4 and IPv6. |
"ipv4" |
IPv4 specifies that NGINX will use only IPv4. |
"ipv6" |
IPv6 specifies that NGINX will use only IPv6. |
Logging ¶
(Appears on: NginxGatewaySpec)
Logging defines logging related settings for the control plane.
Field | Description |
---|---|
level ControllerLogLevel |
(Optional)
Level defines the logging level. |
NginxContext
(string
alias)¶
(Appears on: Snippet)
NginxContext represents the NGINX configuration context.
Value | Description |
---|---|
"http" |
NginxContextHTTP is the http context of the NGINX configuration. https://nginx.org/en/docs/http/ngx_http_core_module.html#http |
"http.server" |
NginxContextHTTPServer is the server context of the NGINX configuration. https://nginx.org/en/docs/http/ngx_http_core_module.html#server |
"http.server.location" |
NginxContextHTTPServerLocation is the location context of the NGINX configuration. https://nginx.org/en/docs/http/ngx_http_core_module.html#location |
"main" |
NginxContextMain is the main context of the NGINX configuration. |
NginxErrorLogLevel
(string
alias)¶
(Appears on: NginxLogging)
NginxErrorLogLevel type defines the log level of error logs for NGINX.
Value | Description |
---|---|
"alert" |
NginxLogLevelAlert is the alert level for NGINX error logs. |
"crit" |
NginxLogLevelCrit is the crit level for NGINX error logs. |
"debug" |
NginxLogLevelDebug is the debug level for NGINX error logs. |
"emerg" |
NginxLogLevelEmerg is the emerg level for NGINX error logs. |
"error" |
NginxLogLevelError is the error level for NGINX error logs. |
"info" |
NginxLogLevelInfo is the info level for NGINX error logs. |
"notice" |
NginxLogLevelNotice is the notice level for NGINX error logs. |
"warn" |
NginxLogLevelWarn is the warn level for NGINX error logs. |
NginxGatewayConditionReason
(string
alias)¶
NginxGatewayConditionReason defines the set of reasons that explain why a particular NginxGateway condition type has been raised.
Value | Description |
---|---|
"Invalid" |
NginxGatewayReasonInvalid is a reason that is used with the “Valid” condition when the condition is False. |
"Valid" |
NginxGatewayReasonValid is a reason that is used with the “Valid” condition when the condition is True. |
NginxGatewayConditionType
(string
alias)¶
NginxGatewayConditionType is a type of condition associated with an NginxGateway. This type should be used with the NginxGatewayStatus.Conditions field.
Value | Description |
---|---|
"Valid" |
NginxGatewayConditionValid is a condition that is true when the NginxGateway configuration is syntactically and semantically valid. |
NginxGatewaySpec ¶
(Appears on: NginxGateway)
NginxGatewaySpec defines the desired state of the NginxGateway.
Field | Description |
---|---|
logging Logging |
(Optional)
Logging defines logging related settings for the control plane. |
NginxGatewayStatus ¶
(Appears on: NginxGateway)
NginxGatewayStatus defines the state of the NginxGateway.
Field | Description |
---|---|
conditions []Kubernetes meta/v1.Condition |
(Optional) |
NginxLogging ¶
(Appears on: NginxProxySpec)
NginxLogging defines logging related settings for NGINX.
Field | Description |
---|---|
errorLevel NginxErrorLogLevel |
(Optional)
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 |
NginxProxySpec ¶
(Appears on: NginxProxy)
NginxProxySpec defines the desired state of the NginxProxy.
Field | Description |
---|---|
ipFamily IPFamilyType |
(Optional)
IPFamily specifies the IP family to be used by the NGINX. Default is “dual”, meaning the server will use both IPv4 and IPv6. |
telemetry Telemetry |
(Optional)
Telemetry specifies the OpenTelemetry configuration. |
rewriteClientIP RewriteClientIP |
(Optional)
RewriteClientIP defines configuration for rewriting the client IP to the original client’s IP. |
logging NginxLogging |
(Optional)
Logging defines logging related settings for NGINX. |
disableHTTP2 bool |
(Optional)
DisableHTTP2 defines if http2 should be disabled for all servers. Default is false, meaning http2 will be enabled for all servers. |
ObservabilityPolicySpec ¶
(Appears on: ObservabilityPolicy)
ObservabilityPolicySpec defines the desired state of the ObservabilityPolicy.
Field | Description |
---|---|
tracing Tracing |
(Optional)
Tracing allows for enabling and configuring tracing. |
targetRefs []sigs.k8s.io/gateway-api/apis/v1alpha2.LocalPolicyTargetReference |
TargetRefs identifies the API object(s) to apply the policy to. Objects must be in the same namespace as the policy. Support: HTTPRoute, GRPCRoute. |
RewriteClientIP ¶
(Appears on: NginxProxySpec)
RewriteClientIP specifies the configuration for rewriting the client’s IP address.
Field | Description |
---|---|
mode RewriteClientIPModeType |
(Optional)
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 |
setIPRecursively bool |
(Optional)
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 |
trustedAddresses []Address |
(Optional)
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. TrustedAddresses only supports CIDR blocks: 192.33.21.1⁄24, fe80::1⁄64. 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. |
RewriteClientIPModeType
(string
alias)¶
(Appears on: RewriteClientIP)
RewriteClientIPModeType defines how NGINX Gateway Fabric will determine the client’s original IP address.
Value | Description |
---|---|
"ProxyProtocol" |
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. |
"XForwardedFor" |
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. |
Size
(string
alias)¶
(Appears on: ClientBody)
Size is a string value representing a size. Size can be specified in bytes, kilobytes (k), megabytes (m), or gigabytes (g). Examples: 1024, 8k, 1m.
Snippet ¶
(Appears on: SnippetsFilterSpec)
Snippet represents an NGINX configuration snippet.
Field | Description |
---|---|
context NginxContext |
Context is the NGINX context to insert the snippet into. |
value string |
Value is the NGINX configuration snippet. |
SnippetsFilterConditionReason
(string
alias)¶
SnippetsFilterConditionReason is a reason for a SnippetsFilter condition type.
Value | Description |
---|---|
"Accepted" |
SnippetsFilterConditionReasonAccepted is used with the Accepted condition type when the condition is true. |
"Invalid" |
SnippetsFilterConditionReasonInvalid is used with the Accepted condition type when SnippetsFilter is invalid. |
SnippetsFilterConditionType
(string
alias)¶
SnippetsFilterConditionType is a type of condition associated with SnippetsFilter.
Value | Description |
---|---|
"Accepted" |
SnippetsFilterConditionTypeAccepted indicates that the SnippetsFilter is accepted. Possible reasons for this condition to be True:
Possible reasons for this condition to be False:
|
SnippetsFilterSpec ¶
(Appears on: SnippetsFilter)
SnippetsFilterSpec defines the desired state of the SnippetsFilter.
Field | Description |
---|---|
snippets []Snippet |
Snippets is a list of NGINX configuration snippets. There can only be one snippet per context. Allowed contexts: main, http, http.server, http.server.location. |
SnippetsFilterStatus ¶
(Appears on: SnippetsFilter)
SnippetsFilterStatus defines the state of SnippetsFilter.
Field | Description |
---|---|
controllers []ControllerStatus |
Controllers is a list of Gateway API controllers that processed the SnippetsFilter and the status of the SnippetsFilter with respect to each controller. |
SpanAttribute ¶
(Appears on: Telemetry, Tracing)
SpanAttribute is a key value pair to be added to a tracing span.
Field | Description |
---|---|
key string |
Key is the key for a span attribute. Format: must have all ‘“’ escaped and must not contain any ‘$’ or end with an unescaped ‘\’ |
value string |
Value is the value for a span attribute. Format: must have all ‘“’ escaped and must not contain any ‘$’ or end with an unescaped ‘\’ |
Telemetry ¶
(Appears on: NginxProxySpec)
Telemetry specifies the OpenTelemetry configuration.
Field | Description |
---|---|
exporter TelemetryExporter |
(Optional)
Exporter specifies OpenTelemetry export parameters. |
serviceName string |
(Optional)
ServiceName is the “service.name” attribute of the OpenTelemetry resource.
Default is ‘ngf: |
spanAttributes []SpanAttribute |
(Optional)
SpanAttributes are custom key/value attributes that are added to each span. |
TelemetryExporter ¶
(Appears on: Telemetry)
TelemetryExporter specifies OpenTelemetry export parameters.
Field | Description |
---|---|
interval Duration |
(Optional)
Interval is the maximum interval between two exports. Default: https://nginx.org/en/docs/ngx_otel_module.html#otel_exporter |
batchSize int32 |
(Optional)
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 |
batchCount int32 |
(Optional)
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 |
endpoint string |
Endpoint is the address of OTLP/gRPC endpoint that will accept telemetry data. Format: alphanumeric hostname with optional http scheme and optional port. |
TraceContext
(string
alias)¶
(Appears on: Tracing)
TraceContext specifies how to propagate traceparent/tracestate headers.
Value | Description |
---|---|
"extract" |
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. |
"ignore" |
TraceContextIgnore skips context headers processing. |
"inject" |
TraceContextInject adds a new context to the request, overwriting existing headers, if any. |
"propagate" |
TraceContextPropagate updates the existing context (combines extract and inject). |
TraceStrategy
(string
alias)¶
(Appears on: Tracing)
TraceStrategy defines the tracing strategy.
Value | Description |
---|---|
"parent" |
TraceStrategyParent enables tracing and only records spans if the parent span was sampled. |
"ratio" |
TraceStrategyRatio enables ratio-based tracing, defaulting to 100% sampling rate. |
Tracing ¶
(Appears on: ObservabilityPolicySpec)
Tracing allows for enabling and configuring OpenTelemetry tracing.
Field | Description |
---|---|
strategy TraceStrategy |
Strategy defines if tracing is ratio-based or parent-based. |
ratio int32 |
(Optional)
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. |
context TraceContext |
(Optional)
Context specifies how to propagate traceparent/tracestate headers. Default: https://nginx.org/en/docs/ngx_otel_module.html#otel_trace_context |
spanName string |
(Optional)
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 |
spanAttributes []SpanAttribute |
(Optional)
SpanAttributes are custom key/value attributes that are added to each span. |
Generated with gen-crd-api-reference-docs