You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by al...@apache.org on 2025/10/16 00:46:30 UTC
(apisix-helm-chart) 01/01: chore: update crd for ingress
This is an automated email from the ASF dual-hosted git repository.
alinsran pushed a commit to branch chore/ingress-crd-updated
in repository https://gitbox.apache.org/repos/asf/apisix-helm-chart.git
commit 84d51418571c4580b8bc5888236eada3eb026585
Author: rongxin <ro...@api7.ai>
AuthorDate: Thu Oct 16 08:46:13 2025 +0800
chore: update crd for ingress
---
.../crds/apisixic-crds.yaml | 909 ++++++++++++++-------
1 file changed, 602 insertions(+), 307 deletions(-)
diff --git a/charts/apisix-ingress-controller/crds/apisixic-crds.yaml b/charts/apisix-ingress-controller/crds/apisixic-crds.yaml
index 3ef155b..c58c05b 100644
--- a/charts/apisix-ingress-controller/crds/apisixic-crds.yaml
+++ b/charts/apisix-ingress-controller/crds/apisixic-crds.yaml
@@ -18,7 +18,8 @@ spec:
- name: v2
schema:
openAPIV3Schema:
- description: ApisixConsumer is the Schema for the apisixconsumers API.
+ description: ApisixConsumer defines configuration of a consumer and their
+ authentication details.
properties:
apiVersion:
description: |-
@@ -38,18 +39,18 @@ spec:
metadata:
type: object
spec:
- description: ApisixConsumerSpec defines the desired state of ApisixConsumer.
+ description: ApisixConsumerSpec defines the consumer authentication configuration.
properties:
authParameter:
+ description: AuthParameter defines the authentication credentials
+ and configuration for this consumer.
properties:
basicAuth:
- description: ApisixConsumerBasicAuth defines the configuration
- for basic auth.
+ description: BasicAuth configures the basic authentication details.
properties:
secretRef:
- description: |-
- LocalObjectReference contains enough information to let you locate the
- referenced object inside the same namespace.
+ description: SecretRef references a Kubernetes Secret containing
+ the basic authentication credentials.
properties:
name:
default: ""
@@ -63,12 +64,13 @@ spec:
type: object
x-kubernetes-map-type: atomic
value:
- description: ApisixConsumerBasicAuthValue defines the in-place
- username and password configuration for basic auth.
+ description: Value specifies the basic authentication credentials.
properties:
password:
+ description: Password is the basic authentication password.
type: string
username:
+ description: Username is the basic authentication username.
type: string
required:
- password
@@ -76,13 +78,11 @@ spec:
type: object
type: object
hmacAuth:
- description: ApisixConsumerHMACAuth defines the configuration
- for the hmac auth.
+ description: HMACAuth configures the HMAC authentication details.
properties:
secretRef:
- description: |-
- LocalObjectReference contains enough information to let you locate the
- referenced object inside the same namespace.
+ description: SecretRef references a Kubernetes Secret containing
+ the HMAC credentials.
properties:
name:
default: ""
@@ -96,44 +96,74 @@ spec:
type: object
x-kubernetes-map-type: atomic
value:
- description: ApisixConsumerHMACAuthValue defines the in-place
- configuration for hmac auth.
+ description: Value specifies HMAC authentication credentials.
+ oneOf:
+ - required:
+ - key_id
+ - secret_key
+ - required:
+ - access_key
+ - secret_key
properties:
access_key:
+ description: AccessKey is the identifier used to look
+ up the HMAC secret. Deprecated from consumer configuration
type: string
algorithm:
+ description: Algorithm specifies the hashing algorithm
+ (e.g., "hmac-sha256"). Deprecated from consumer configuration
type: string
clock_skew:
+ description: ClockSkew is the allowed time difference
+ (in seconds) between client and server clocks. Deprecated
+ from consumer configuration
format: int64
type: integer
encode_uri_params:
+ description: EncodeURIParams indicates whether URI parameters
+ are encoded when calculating the signature. Deprecated
+ from consumer configuration
type: boolean
keep_headers:
+ description: KeepHeaders determines whether the HMAC signature
+ headers are preserved after verification. Deprecated
+ from consumer configuration
type: boolean
+ key_id:
+ description: KeyID is the identifier used to look up the
+ HMAC secret.
+ type: string
max_req_body:
+ description: MaxReqBody sets the maximum size (in bytes)
+ of the request body that can be validated. Deprecated
+ from consumer configuration
format: int64
type: integer
secret_key:
+ description: SecretKey is the HMAC secret used to sign
+ the request.
type: string
signed_headers:
+ description: SignedHeaders lists the headers that must
+ be included in the signature. Deprecated from consumer
+ configuration
items:
type: string
type: array
validate_request_body:
+ description: ValidateRequestBody enables HMAC validation
+ of the request body. Deprecated from consumer configuration
type: boolean
required:
- - access_key
- secret_key
type: object
type: object
jwtAuth:
- description: ApisixConsumerJwtAuth defines the configuration for
- the jwt auth.
+ description: JwtAuth configures the JWT authentication details.
properties:
secretRef:
- description: |-
- LocalObjectReference contains enough information to let you locate the
- referenced object inside the same namespace.
+ description: SecretRef references a Kubernetes Secret containing
+ JWT authentication credentials.
properties:
name:
default: ""
@@ -147,26 +177,41 @@ spec:
type: object
x-kubernetes-map-type: atomic
value:
- description: ApisixConsumerJwtAuthValue defines the in-place
- configuration for jwt auth.
+ description: Value specifies JWT authentication credentials.
properties:
algorithm:
+ description: |-
+ Algorithm specifies the signing algorithm.
+ Can be `HS256`, `HS512`, `RS256`, or `ES256`.
type: string
base64_secret:
+ description: Base64Secret indicates whether the secret
+ is base64-encoded.
type: boolean
exp:
+ description: Exp is the token expiration period in seconds.
format: int64
type: integer
key:
+ description: Key is the unique identifier for the JWT
+ credential.
type: string
lifetime_grace_period:
+ description: LifetimeGracePeriod is the allowed clock
+ skew in seconds for token expiration.
format: int64
type: integer
private_key:
+ description: PrivateKey is the private key used to sign
+ the JWT (for asymmetric algorithms).
type: string
public_key:
+ description: PublicKey is the public key used to verify
+ JWT signatures (for asymmetric algorithms).
type: string
secret:
+ description: Secret is the shared secret used to sign
+ the JWT (for symmetric algorithms).
type: string
required:
- key
@@ -174,13 +219,11 @@ spec:
type: object
type: object
keyAuth:
- description: ApisixConsumerKeyAuth defines the configuration for
- the key auth.
+ description: KeyAuth configures the key authentication details.
properties:
secretRef:
- description: |-
- LocalObjectReference contains enough information to let you locate the
- referenced object inside the same namespace.
+ description: SecretRef references a Kubernetes Secret containing
+ the key authentication credentials.
properties:
name:
default: ""
@@ -194,23 +237,21 @@ spec:
type: object
x-kubernetes-map-type: atomic
value:
- description: ApisixConsumerKeyAuthValue defines the in-place
- configuration for basic auth.
+ description: Value specifies the key authentication credentials.
properties:
key:
+ description: Key is the credential used for key authentication.
type: string
required:
- key
type: object
type: object
ldapAuth:
- description: ApisixConsumerLDAPAuth defines the configuration
- for the ldap auth.
+ description: LDAPAuth configures the LDAP authentication details.
properties:
secretRef:
- description: |-
- LocalObjectReference contains enough information to let you locate the
- referenced object inside the same namespace.
+ description: SecretRef references a Kubernetes Secret containing
+ the LDAP credentials.
properties:
name:
default: ""
@@ -224,10 +265,11 @@ spec:
type: object
x-kubernetes-map-type: atomic
value:
- description: ApisixConsumerLDAPAuthValue defines the in-place
- configuration for ldap auth.
+ description: Value specifies LDAP authentication credentials.
properties:
user_dn:
+ description: UserDN is the distinguished name (DN) of
+ the LDAP user.
type: string
required:
- user_dn
@@ -236,13 +278,12 @@ spec:
- secretRef
type: object
wolfRBAC:
- description: ApisixConsumerWolfRBAC defines the configuration
- for the wolf-rbac auth.
+ description: WolfRBAC configures the Wolf RBAC authentication
+ details.
properties:
secretRef:
- description: |-
- LocalObjectReference contains enough information to let you locate the
- referenced object inside the same namespace.
+ description: SecretRef references a Kubernetes Secret containing
+ the Wolf RBAC token.
properties:
name:
default: ""
@@ -256,15 +297,18 @@ spec:
type: object
x-kubernetes-map-type: atomic
value:
- description: ApisixConsumerWolfRBAC defines the in-place server
- and appid and header_prefix configuration for wolf-rbac
- auth.
+ description: Value specifies the Wolf RBAC token.
properties:
appid:
+ description: Appid is the application identifier used
+ when communicating with the Wolf RBAC server.
type: string
header_prefix:
+ description: HeaderPrefix is the prefix added to request
+ headers for RBAC enforcement.
type: string
server:
+ description: Server is the URL of the Wolf RBAC server.
type: string
type: object
type: object
@@ -272,9 +316,7 @@ spec:
ingressClassName:
description: |-
IngressClassName is the name of an IngressClass cluster resource.
- controller implementations use this field to know whether they should be
- serving this ApisixConsumer resource, by a transitive connection
- (controller -> IngressClass -> ApisixConsumer resource).
+ The controller uses this field to decide whether the resource should be managed.
type: string
required:
- authParameter
@@ -365,7 +407,7 @@ spec:
- name: v2
schema:
openAPIV3Schema:
- description: ApisixGlobalRule is the Schema for the apisixglobalrules API.
+ description: ApisixGlobalRule defines configuration for global plugins.
properties:
apiVersion:
description: |-
@@ -385,15 +427,15 @@ spec:
metadata:
type: object
spec:
- description: ApisixGlobalRuleSpec defines the desired state of ApisixGlobalRule.
+ description: ApisixGlobalRuleSpec defines the global plugin configuration.
properties:
ingressClassName:
description: |-
IngressClassName is the name of an IngressClass cluster resource.
- The controller uses this field to decide whether the resource should be managed or not.
+ The controller uses this field to decide whether the resource should be managed.
type: string
plugins:
- description: Plugins contains a list of ApisixRoutePlugin
+ description: Plugins contain a list of global plugins.
items:
description: ApisixRoutePlugin represents an APISIX plugin.
properties:
@@ -504,8 +546,8 @@ spec:
- name: v2
schema:
openAPIV3Schema:
- description: ApisixPluginConfig is the Schema for the apisixpluginconfigs
- API.
+ description: ApisixPluginConfig defines a reusable set of plugin configuration
+ that can be referenced by routes.
properties:
apiVersion:
description: |-
@@ -525,15 +567,15 @@ spec:
metadata:
type: object
spec:
- description: ApisixPluginConfigSpec defines the desired state of ApisixPluginConfigSpec.
+ description: ApisixPluginConfigSpec defines the plugin config configuration.
properties:
ingressClassName:
description: |-
IngressClassName is the name of an IngressClass cluster resource.
- The controller uses this field to decide whether the resource should be managed or not.
+ The controller uses this field to decide whether the resource should be managed.
type: string
plugins:
- description: Plugins contain a list of ApisixRoutePlugin
+ description: Plugins contain a list of plugins.
items:
description: ApisixRoutePlugin represents an APISIX plugin.
properties:
@@ -672,7 +714,7 @@ spec:
name: v2
schema:
openAPIV3Schema:
- description: ApisixRoute is the Schema for the apisixroutes API.
+ description: ApisixRoute is defines configuration for HTTP and stream routes.
properties:
apiVersion:
description: |-
@@ -692,55 +734,67 @@ spec:
metadata:
type: object
spec:
- description: ApisixRouteSpec is the spec definition for ApisixRouteSpec.
+ description: ApisixRouteSpec defines HTTP and stream route configuration.
properties:
http:
+ description: |-
+ HTTP defines a list of HTTP route rules.
+ Each rule specifies conditions to match HTTP requests and how to forward them.
items:
- description: ApisixRouteHTTP represents a single route in for HTTP
- traffic.
+ description: ApisixRouteHTTP represents a single HTTP route configuration.
properties:
authentication:
- description: |-
- ApisixRouteAuthentication is the authentication-related
- configuration in ApisixRoute.
+ description: Authentication holds authentication-related configuration
+ for this route.
properties:
enable:
+ description: Enable toggles authentication on or off.
type: boolean
jwtAuth:
- description: |-
- ApisixRouteAuthenticationJwtAuth is the jwt auth related
- configuration in ApisixRouteAuthentication.
+ description: JwtAuth defines configuration for JWT authentication.
properties:
cookie:
+ description: Cookie specifies the cookie name to look
+ for the JWT token.
type: string
header:
+ description: Header specifies the HTTP header name to
+ look for the JWT token.
type: string
query:
+ description: Query specifies the URL query parameter
+ name to look for the JWT token.
type: string
type: object
keyAuth:
- description: |-
- ApisixRouteAuthenticationKeyAuth is the keyAuth-related
- configuration in ApisixRouteAuthentication.
+ description: KeyAuth defines configuration for key authentication.
properties:
header:
+ description: Header specifies the HTTP header name to
+ look for the key authentication token.
type: string
type: object
ldapAuth:
- description: |-
- ApisixRouteAuthenticationLDAPAuth is the LDAP auth related
- configuration in ApisixRouteAuthentication.
+ description: LDAPAuth defines configuration for LDAP authentication.
properties:
base_dn:
+ description: BaseDN is the base distinguished name (DN)
+ for LDAP searches.
type: string
ldap_uri:
+ description: LDAPURI is the URI of the LDAP server.
type: string
uid:
+ description: UID is the user identifier attribute in
+ LDAP.
type: string
use_tls:
+ description: UseTLS indicates whether to use TLS for
+ the LDAP connection.
type: boolean
type: object
type:
+ description: Type specifies the authentication type.
type: string
required:
- enable
@@ -748,39 +802,42 @@ spec:
type: object
backends:
description: |-
- Backends represents potential backends to proxy after the route
- rule matched. When number of backends are more than one, traffic-split
- plugin in APISIX will be used to split traffic based on the backend weight.
+ Backends lists potential backend services to proxy requests to.
+ If more than one backend is specified, the `traffic-split` plugin is used
+ to distribute traffic according to backend weights.
items:
description: ApisixRouteHTTPBackend represents an HTTP backend
- (a Kubernetes Service).
+ (Kubernetes Service).
properties:
resolveGranularity:
description: |-
- The resolve granularity, can be "endpoints" or "service",
- when set to "endpoints", the pod ips will be used; other
- wise, the service ClusterIP or ExternalIP will be used,
- default is endpoints.
+ ResolveGranularity determines how the backend service is resolved.
+ Valid values are `endpoints` and `service`. When set to `endpoints`,
+ individual pod IPs will be used; otherwise, the Service's ClusterIP or ExternalIP is used.
+ The default is `endpoints`.
type: string
serviceName:
description: |-
- The name (short) of the service, note cross namespace is forbidden,
- so be sure the ApisixRoute and Service are in the same namespace.
+ ServiceName is the name of the Kubernetes Service.
+ Cross-namespace references are not supported—ensure the ApisixRoute
+ and the Service are in the same namespace.
type: string
servicePort:
anyOf:
- type: integer
- type: string
- description: The service port, could be the name or the
- port number.
+ description: |-
+ ServicePort is the port of the Kubernetes Service.
+ This can be either the port name or port number.
x-kubernetes-int-or-string: true
subset:
description: |-
- Subset specifies a subset for the target Service. The subset should be pre-defined
- in ApisixUpstream about this service.
+ Subset specifies a named subset of the target Service.
+ The subset must be pre-defined in the corresponding ApisixUpstream resource.
type: string
weight:
- description: Weight of this backend.
+ description: Weight specifies the relative traffic weight
+ for this backend.
type: integer
required:
- serviceName
@@ -788,51 +845,41 @@ spec:
type: object
type: array
match:
- description: ApisixRouteHTTPMatch represents the match condition
- for hitting this route.
+ description: Match defines the HTTP request matching criteria.
properties:
exprs:
- description: |-
- NginxVars represents generic match predicates,
- it uses Nginx variable systems, so any predicate
- like headers, querystring and etc can be leveraged
- here to match the route.
- For instance, it can be:
- nginxVars:
- - subject: "$remote_addr"
- op: in
- value:
- - "127.0.0.1"
- - "10.0.5.11"
+ description: NginxVars defines match conditions based on
+ Nginx variables.
items:
description: ApisixRouteHTTPMatchExpr represents a binary
- route match expression .
+ expression used to match requests based on Nginx variables.
properties:
op:
- description: Op is the operator.
+ description: |-
+ Op specifies the operator used in the expression.
+ Can be `Equal`, `NotEqual`, `GreaterThan`, `GreaterThanEqual`, `LessThan`, `LessThanEqual`, `RegexMatch`,
+ `RegexNotMatch`, `RegexMatchCaseInsensitive`, `RegexNotMatchCaseInsensitive`, `In`, or `NotIn`.
type: string
set:
description: |-
- Set is an array type object of the expression.
- It should be used when the Op is "in" or "not_in";
+ Set provides a list of acceptable values for the expression.
+ This should be used when Op is `In` or `NotIn`.
items:
type: string
type: array
subject:
description: |-
- Subject is the expression subject, it can
- be any string composed by literals and nginx
- vars.
+ Subject defines the left-hand side of the expression.
+ It can be any [APISIX variable](https://apisix.apache.org/docs/apisix/apisix-variable) or string literal.
properties:
name:
- description: The name of subject.
+ description: Name is the name of the header or
+ query parameter.
type: string
scope:
description: |-
- The subject scope, can be:
- ScopeQuery, ScopeHeader, ScopePath
- when subject is ScopePath, Name field
- will be ignored.
+ Scope specifies the subject scope and can be `Header`, `Query`, or `Path`.
+ When Scope is `Path`, Name will be ignored.
type: string
required:
- name
@@ -840,10 +887,9 @@ spec:
type: object
value:
description: |-
- Value is the normal type object for the expression,
- it should be used when the Op is not "in" and "not_in".
- Set and Value are exclusive so only of them can be set
- in the same time.
+ Value defines a single value to compare against the subject.
+ This should be used when Op is not `In` or `NotIn`.
+ Set and Value are mutually exclusive—only one should be set at a time.
type: string
required:
- op
@@ -852,36 +898,36 @@ spec:
type: array
filter_func:
description: |-
- Matches based on a user-defined filtering function.
- These functions can accept an input parameter `vars`
- which can be used to access the Nginx variables.
+ FilterFunc is a user-defined function for advanced request filtering.
+ The function can use Nginx variables through the `vars` parameter.
type: string
hosts:
description: |-
- HTTP Host predicates, host can be a wildcard domain or
- an exact domain. For wildcard domain, only one generic
- level is allowed, for instance, "*.foo.com" is valid but
- "*.*.foo.com" is not.
+ Hosts specifies Host header values to match.
+ Supports exact and wildcard domains.
+ Only one level of wildcard is allowed (e.g., `*.example.com` is valid,
+ but `*.*.example.com` is not).
items:
type: string
type: array
methods:
- description: HTTP request method predicates.
+ description: Methods specifies the HTTP methods to match.
items:
type: string
type: array
paths:
description: |-
- URI path predicates, at least one path should be
- configured, path could be exact or prefix, for prefix path,
- append "*" after it, for instance, "/foo*".
+ Paths is a list of URI path patterns to match.
+ At least one path must be specified.
+ Supports exact matches and prefix matches.
+ For prefix matches, append `*` to the path, such as `/foo*`.
items:
type: string
type: array
remoteAddrs:
description: |-
- Remote address predicates, items can be valid IPv4 address
- or IPv6 address or CIDR.
+ RemoteAddrs is a list of source IP addresses or CIDR ranges to match.
+ Supports both IPv4 and IPv6 formats.
items:
type: string
type: array
@@ -889,15 +935,20 @@ spec:
- paths
type: object
name:
- description: The rule name, cannot be empty.
+ description: Name is the unique rule name and cannot be empty.
type: string
plugin_config_name:
+ description: PluginConfigName specifies the name of the plugin
+ config to apply.
type: string
plugin_config_namespace:
- description: By default, PluginConfigNamespace will be the same
- as the namespace of ApisixRoute
+ description: |-
+ PluginConfigNamespace specifies the namespace of the plugin config.
+ Defaults to the namespace of the ApisixRoute if not set.
type: string
plugins:
+ description: Plugins lists additional plugins applied to this
+ route.
items:
description: ApisixRoutePlugin represents an APISIX plugin.
properties:
@@ -922,97 +973,126 @@ spec:
type: array
priority:
description: |-
- Route priority, when multiple routes contains
- same URI path (for path matching), route with
- higher priority will take effect.
+ Priority defines the route priority when multiple routes share the same URI path.
+ Higher values mean higher priority in route matching.
type: integer
timeout:
- description: UpstreamTimeout is settings for the read, send
- and connect to the upstream.
+ description: Timeout specifies upstream timeout settings.
properties:
connect:
+ description: Connect timeout for establishing a connection
+ to the upstream.
type: string
read:
+ description: Read timeout for reading data from the upstream.
type: string
send:
+ description: Send timeout for sending data to the upstream.
type: string
type: object
upstreams:
- description: Upstreams refer to ApisixUpstream CRD
+ description: Upstreams references ApisixUpstream CRDs.
items:
- description: ApisixRouteUpstreamReference contains a ApisixUpstream
- CRD reference
+ description: |-
+ ApisixRouteUpstreamReference references an ApisixUpstream CRD to be used as a backend.
+ It can be used in traffic-splitting scenarios or to select a specific upstream configuration.
properties:
name:
+ description: Name is the name of the ApisixUpstream resource.
type: string
weight:
+ description: Weight is the weight assigned to this upstream.
type: integer
type: object
type: array
websocket:
+ description: Websocket enables or disables websocket support
+ for this route.
type: boolean
required:
- name
type: object
type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
ingressClassName:
+ description: |-
+ IngressClassName is the name of the IngressClass this route belongs to.
+ It allows multiple controllers to watch and reconcile different routes.
type: string
stream:
+ description: |-
+ Stream defines a list of stream route rules.
+ Each rule specifies conditions to match TCP/UDP traffic and how to forward them.
items:
- description: ApisixRouteStream is the configuration for level 4
- route
+ description: ApisixRouteStream defines the configuration for a Layer
+ 4 (TCP/UDP) route. Currently not supported.
properties:
backend:
- description: ApisixRouteStreamBackend represents a TCP backend
- (a Kubernetes Service).
+ description: Backend specifies the destination service to which
+ traffic should be forwarded.
properties:
resolveGranularity:
+ default: endpoint
description: |-
- The resolve granularity, can be "endpoints" or "service",
- when set to "endpoints", the pod ips will be used; other
- wise, the service ClusterIP or ExternalIP will be used,
- default is endpoints.
+ ResolveGranularity determines how the backend service is resolved.
+ Valid values are `endpoint` and `service`. When set to `endpoint`,
+ individual pod IPs will be used; otherwise, the Service's ClusterIP or ExternalIP is used.
+ The default is `endpoint`.
+ enum:
+ - endpoint
+ - service
type: string
serviceName:
description: |-
- The name (short) of the service, note cross namespace is forbidden,
- so be sure the ApisixRoute and Service are in the same namespace.
+ ServiceName is the name of the Kubernetes Service.
+ Cross-namespace references are not supported—ensure the ApisixRoute
+ and the Service are in the same namespace.
type: string
servicePort:
anyOf:
- type: integer
- type: string
- description: The service port, could be the name or the
- port number.
+ description: |-
+ ServicePort is the port of the Kubernetes Service.
+ This can be either the port name or port number.
x-kubernetes-int-or-string: true
subset:
description: |-
- Subset specifies a subset for the target Service. The subset should be pre-defined
- in ApisixUpstream about this service.
+ Subset specifies a named subset of the target Service.
+ The subset must be pre-defined in the corresponding ApisixUpstream resource.
type: string
required:
- serviceName
- servicePort
type: object
match:
- description: ApisixRouteStreamMatch represents the match conditions
- of stream route.
+ description: Match defines the criteria used to match incoming
+ TCP or UDP connections.
properties:
host:
+ description: Host is the destination host address used to
+ match the incoming TCP/UDP traffic.
type: string
ingressPort:
description: |-
- IngressPort represents the port listening on the Ingress proxy server.
- It should be pre-defined as APISIX doesn't support dynamic listening.
+ IngressPort is the port on which the APISIX Ingress proxy server listens.
+ This must be a statically configured port, as APISIX does not support dynamic port binding.
format: int32
+ maximum: 65535
+ minimum: 0
type: integer
required:
- ingressPort
type: object
name:
- description: The rule name cannot be empty.
+ description: Name is a unique identifier for the route. This
+ field must not be empty.
type: string
plugins:
+ description: Plugins defines a list of plugins to apply to this
+ route.
items:
description: ApisixRoutePlugin represents an APISIX plugin.
properties:
@@ -1036,6 +1116,11 @@ spec:
type: object
type: array
protocol:
+ description: Protocol specifies the L4 protocol to match. Can
+ be `TCP` or `UDP`.
+ enum:
+ - TCP
+ - UDP
type: string
required:
- backend
@@ -1044,6 +1129,9 @@ spec:
- protocol
type: object
type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
type: object
status:
description: ApisixStatus is the status report for Apisix ingress Resources
@@ -1150,7 +1238,7 @@ spec:
name: v2
schema:
openAPIV3Schema:
- description: ApisixTls is the Schema for the apisixtls API.
+ description: ApisixTls defines configuration for TLS and mutual TLS (mTLS).
properties:
apiVersion:
description: |-
@@ -1170,20 +1258,23 @@ spec:
metadata:
type: object
spec:
- description: ApisixTlsSpec defines the desired state of ApisixTls.
+ description: ApisixTlsSpec defines the TLS configuration.
properties:
client:
- description: ApisixMutualTlsClientConfig describes the mutual TLS
- CA and verify depth
+ description: Client defines mutual TLS (mTLS) settings, such as the
+ CA certificate and verification depth.
properties:
caSecret:
- description: ApisixSecret describes the Kubernetes Secret name
- and namespace.
+ description: CASecret references the secret containing the CA
+ certificate for client certificate validation.
properties:
name:
+ description: Name is the name of the Kubernetes Secret.
minLength: 1
type: string
namespace:
+ description: Namespace is the namespace where the Kubernetes
+ Secret is located.
minLength: 1
type: string
required:
@@ -1191,13 +1282,20 @@ spec:
- namespace
type: object
depth:
+ description: Depth specifies the maximum verification depth for
+ the client certificate chain.
type: integer
skip_mtls_uri_regex:
+ description: SkipMTLSUriRegex contains RegEx patterns for URIs
+ to skip mutual TLS verification.
items:
type: string
type: array
type: object
hosts:
+ description: |-
+ Hosts lists the SNI (Server Name Indication) hostnames that this TLS configuration applies to.
+ Must contain at least one host.
items:
pattern: ^\*?[0-9a-zA-Z-.]+$
type: string
@@ -1205,19 +1303,21 @@ spec:
type: array
ingressClassName:
description: |-
- IngressClassName is the name of an IngressClass cluster resource.
- controller implementations use this field to know whether they should be
- serving this ApisixTls resource, by a transitive connection
- (controller -> IngressClass -> ApisixTls resource).
+ IngressClassName specifies which IngressClass this resource is associated with.
+ The APISIX controller only processes this resource if the class matches its own.
type: string
secret:
- description: ApisixSecret describes the Kubernetes Secret name and
- namespace.
+ description: |-
+ Secret refers to the Kubernetes TLS secret containing the certificate and private key.
+ This secret must exist in the specified namespace and contain valid TLS data.
properties:
name:
+ description: Name is the name of the Kubernetes Secret.
minLength: 1
type: string
namespace:
+ description: Namespace is the namespace where the Kubernetes Secret
+ is located.
minLength: 1
type: string
required:
@@ -1314,7 +1414,7 @@ spec:
- name: v2
schema:
openAPIV3Schema:
- description: ApisixUpstream is the Schema for the apisixupstreams API.
+ description: ApisixUpstream defines configuration for upstream services.
properties:
apiVersion:
description: |-
@@ -1334,20 +1434,23 @@ spec:
metadata:
type: object
spec:
- description: ApisixUpstreamSpec describes the specification of ApisixUpstream.
+ description: ApisixUpstreamSpec defines the upstream configuration.
properties:
discovery:
- description: |-
- Deprecated: this is no longer support on standalone mode.
- Discovery is used to configure service discovery for upstream.
+ description: Discovery configures service discovery for the upstream.
properties:
args:
additionalProperties:
type: string
+ description: |-
+ Args contains additional configuration parameters required by the discovery provider.
+ These are passed as key-value pairs.
type: object
serviceName:
+ description: ServiceName is the name of the service to discover.
type: string
type:
+ description: Type is the name of the service discovery provider.
type: string
required:
- serviceName
@@ -1355,147 +1458,202 @@ spec:
type: object
externalNodes:
description: |-
- ExternalNodes contains external nodes the Upstream should use
- If this field is set, the upstream will use these nodes directly without any further resolves
+ ExternalNodes defines a static list of backend nodes. These can be external hosts
+ outside the cluster or cluster-internal Services specified by their DNS name.
+ When this field is set, the upstream will route traffic directly to these nodes
+ without DNS resolution or service discovery.
items:
- description: ApisixUpstreamExternalNode is the external node conf
+ description: |-
+ ApisixUpstreamExternalNode defines configuration for an external upstream node.
+ This allows referencing services outside the cluster.
properties:
name:
+ description: Name is the hostname or IP address of the external
+ node.
type: string
port:
- description: Port defines the port of the external node
+ description: Port specifies the port number on which the external
+ node is accepting traffic.
+ maximum: 65535
+ minimum: 1
type: integer
type:
- description: ApisixUpstreamExternalType is the external service
- type
+ description: Type indicates the kind of external node. Can be
+ `Domain`, or `Service`.
type: string
weight:
+ description: |-
+ Weight defines the load balancing weight of this node.
+ Higher values increase the share of traffic sent to this node.
type: integer
type: object
minItems: 1
type: array
healthCheck:
- description: |-
- Deprecated: this is no longer support on standalone mode.
- The health check configurations for the upstream.
+ description: HealthCheck defines the active and passive health check
+ configuration for the upstream.
properties:
active:
- description: ActiveHealthCheck defines the active kind of upstream
- health check.
+ description: Active health checks proactively send requests to
+ upstream nodes to determine their availability.
properties:
concurrency:
+ description: Concurrency sets the number of targets to be
+ checked at the same time.
minimum: 0
type: integer
healthy:
- description: |-
- ActiveHealthCheckHealthy defines the conditions to judge whether
- an upstream node is healthy with the active manner.
+ description: Healthy configures the rules that define an upstream
+ node as healthy.
properties:
httpCodes:
+ description: HTTPCodes define a list of HTTP status codes
+ that are considered healthy.
items:
type: integer
minItems: 1
type: array
interval:
+ description: Interval defines the time interval for checking
+ targets, in seconds.
type: string
successes:
+ description: Successes define the number of successful
+ probes to define a healthy target.
maximum: 254
minimum: 0
type: integer
type: object
host:
+ description: Host sets the upstream host.
type: string
httpPath:
+ description: HTTPPath sets the HTTP probe request path.
type: string
port:
+ description: Port sets the upstream port.
format: int32
maximum: 65535
- minimum: 0
+ minimum: 1
type: integer
requestHeaders:
+ description: RequestHeaders sets the request headers.
items:
type: string
type: array
strictTLS:
+ description: StrictTLS sets whether to enforce TLS.
type: boolean
timeout:
- description: |-
- A Duration represents the elapsed time between two instants
- as an int64 nanosecond count. The representation limits the
- largest representable duration to approximately 290 years.
+ description: Timeout sets health check timeout in seconds.
format: int64
type: integer
type:
+ default: http
+ description: Type is the health check type. Can be `http`,
+ `https`, or `tcp`.
enum:
- http
- https
- tcp
type: string
unhealthy:
- description: |-
- ActiveHealthCheckUnhealthy defines the conditions to judge whether
- an upstream node is unhealthy with the active manager.
+ description: Unhealthy configures the rules that define an
+ upstream node as unhealthy.
properties:
httpCodes:
+ description: HTTPCodes define a list of HTTP status codes
+ that are considered unhealthy.
items:
type: integer
minItems: 1
type: array
httpFailures:
+ description: HTTPFailures define the number of HTTP failures
+ to define an unhealthy target.
maximum: 254
minimum: 0
type: integer
interval:
+ description: Interval defines the time interval for checking
+ targets, in seconds.
type: string
tcpFailures:
+ description: TCPFailures define the number of TCP failures
+ to define an unhealthy target.
maximum: 254
minimum: 0
type: integer
timeout:
+ description: |-
+ Timeout sets health check timeout in seconds.
+ https://github.com/apache/apisix/blob/0151d9e35bba63d7c316187272d88e19db0be634/apisix/schema_def.lua#L196
+ maximum: 254
+ minimum: 1
type: integer
type: object
type: object
passive:
- description: |-
- PassiveHealthCheck defines the conditions to judge whether
- an upstream node is healthy with the passive manager.
+ description: Passive health checks evaluate upstream health based
+ on observed traffic, such as timeouts or errors.
properties:
healthy:
- description: |-
- PassiveHealthCheckHealthy defines the conditions to judge whether
- an upstream node is healthy with the passive manner.
+ description: Healthy defines the conditions under which an
+ upstream node is considered healthy.
properties:
httpCodes:
+ description: HTTPCodes define a list of HTTP status codes
+ that are considered healthy.
items:
type: integer
minItems: 1
type: array
successes:
+ description: Successes define the number of successful
+ probes to define a healthy target.
maximum: 254
minimum: 0
type: integer
type: object
type:
+ default: http
+ description: |-
+ Type specifies the type of passive health check.
+ Can be `http`, `https`, or `tcp`.
+ enum:
+ - http
+ - https
+ - tcp
type: string
unhealthy:
- description: |-
- PassiveHealthCheckUnhealthy defines the conditions to judge whether
- an upstream node is unhealthy with the passive manager.
+ description: Unhealthy defines the conditions under which
+ an upstream node is considered unhealthy.
properties:
httpCodes:
+ description: HTTPCodes define a list of HTTP status codes
+ that are considered unhealthy.
items:
type: integer
minItems: 1
type: array
httpFailures:
+ description: HTTPFailures define the number of HTTP failures
+ to define an unhealthy target.
maximum: 254
minimum: 0
type: integer
tcpFailures:
+ description: TCPFailures define the number of TCP failures
+ to define an unhealthy target.
maximum: 254
minimum: 0
type: integer
timeout:
+ description: |-
+ Timeout sets health check timeout in seconds.
+ https://github.com/apache/apisix/blob/0151d9e35bba63d7c316187272d88e19db0be634/apisix/schema_def.lua#L196
+ maximum: 254
+ minimum: 1
type: integer
type: object
type: object
@@ -1505,183 +1663,258 @@ spec:
ingressClassName:
description: |-
IngressClassName is the name of an IngressClass cluster resource.
- controller implementations use this field to know whether they should be
- serving this ApisixUpstream resource, by a transitive connection
- (controller -> IngressClass -> ApisixUpstream resource).
+ Controller implementations use this field to determine whether they
+ should process this ApisixUpstream resource.
type: string
loadbalancer:
- description: |-
- LoadBalancer represents the load balancer configuration for Kubernetes Service.
- The default strategy is round robin.
+ description: LoadBalancer specifies the load balancer configuration
+ for Kubernetes Service.
properties:
hashOn:
+ default: vars
description: |-
- The HashOn and Key fields are required when Type is "chash".
- HashOn represents the key fetching scope.
+ HashOn specified the type of field used for hashing, required when type is `chash`.
+ Default is `vars`. Can be `vars`, `header`, `cookie`, `consumer`, or `vars_combinations`.
+ enum:
+ - vars
+ - header
+ - cookie
+ - consumer
+ - vars_combinations
type: string
key:
- description: Key represents the hash key.
+ description: |-
+ Key is used with HashOn, generally required when type is `chash`.
+ When HashOn is `header` or `cookie`, specifies the name of the header or cookie.
+ When HashOn is `consumer`, key is not required, as the consumer name is used automatically.
+ When HashOn is `vars` or `vars_combinations`, key refers to one or a combination of
+ [APISIX variables](https://apisix.apache.org/docs/apisix/apisix-variable).
type: string
type:
+ default: roundrobin
+ description: |-
+ Type specifies the load balancing algorithms to route traffic to the backend.
+ Default is `roundrobin`.
+ Can be `roundrobin`, `chash`, `ewma`, or `least_conn`.
+ enum:
+ - roundrobin
+ - chash
+ - ewma
+ - least_conn
type: string
required:
- type
type: object
passHost:
description: |-
- Configures the host when the request is forwarded to the upstream.
- Can be one of pass, node or rewrite.
+ PassHost configures how the host header should be determined when a
+ request is forwarded to the upstream.
+ Default is `pass`.
+ Can be `pass`, `node` or `rewrite`:
+ * `pass`: preserve the original Host header
+ * `node`: use the upstream node’s host
+ * `rewrite`: set to a custom host via upstreamHost
enum:
- pass
- node
- rewrite
type: string
portLevelSettings:
+ description: |-
+ PortLevelSettings allows fine-grained upstream configuration for specific ports,
+ useful when a backend service exposes multiple ports with different behaviors or protocols.
items:
description: |-
PortLevelSettings configures the ApisixUpstreamConfig for each individual port. It inherits
- configurations from the outer level (the whole Kubernetes Service) and overrides some of
+ configuration from the outer level (the whole Kubernetes Service) and overrides some of
them if they are set on the port level.
properties:
discovery:
- description: |-
- Deprecated: this is no longer support on standalone mode.
- Discovery is used to configure service discovery for upstream.
+ description: Discovery configures service discovery for the
+ upstream.
properties:
args:
additionalProperties:
type: string
+ description: |-
+ Args contains additional configuration parameters required by the discovery provider.
+ These are passed as key-value pairs.
type: object
serviceName:
+ description: ServiceName is the name of the service to discover.
type: string
type:
+ description: Type is the name of the service discovery provider.
type: string
required:
- serviceName
- type
type: object
healthCheck:
- description: |-
- Deprecated: this is no longer support on standalone mode.
- The health check configurations for the upstream.
+ description: HealthCheck defines the active and passive health
+ check configuration for the upstream.
properties:
active:
- description: ActiveHealthCheck defines the active kind of
- upstream health check.
+ description: Active health checks proactively send requests
+ to upstream nodes to determine their availability.
properties:
concurrency:
+ description: Concurrency sets the number of targets
+ to be checked at the same time.
minimum: 0
type: integer
healthy:
- description: |-
- ActiveHealthCheckHealthy defines the conditions to judge whether
- an upstream node is healthy with the active manner.
+ description: Healthy configures the rules that define
+ an upstream node as healthy.
properties:
httpCodes:
+ description: HTTPCodes define a list of HTTP status
+ codes that are considered healthy.
items:
type: integer
minItems: 1
type: array
interval:
+ description: Interval defines the time interval
+ for checking targets, in seconds.
type: string
successes:
+ description: Successes define the number of successful
+ probes to define a healthy target.
maximum: 254
minimum: 0
type: integer
type: object
host:
+ description: Host sets the upstream host.
type: string
httpPath:
+ description: HTTPPath sets the HTTP probe request path.
type: string
port:
+ description: Port sets the upstream port.
format: int32
maximum: 65535
- minimum: 0
+ minimum: 1
type: integer
requestHeaders:
+ description: RequestHeaders sets the request headers.
items:
type: string
type: array
strictTLS:
+ description: StrictTLS sets whether to enforce TLS.
type: boolean
timeout:
- description: |-
- A Duration represents the elapsed time between two instants
- as an int64 nanosecond count. The representation limits the
- largest representable duration to approximately 290 years.
+ description: Timeout sets health check timeout in seconds.
format: int64
type: integer
type:
+ default: http
+ description: Type is the health check type. Can be `http`,
+ `https`, or `tcp`.
enum:
- http
- https
- tcp
type: string
unhealthy:
- description: |-
- ActiveHealthCheckUnhealthy defines the conditions to judge whether
- an upstream node is unhealthy with the active manager.
+ description: Unhealthy configures the rules that define
+ an upstream node as unhealthy.
properties:
httpCodes:
+ description: HTTPCodes define a list of HTTP status
+ codes that are considered unhealthy.
items:
type: integer
minItems: 1
type: array
httpFailures:
+ description: HTTPFailures define the number of HTTP
+ failures to define an unhealthy target.
maximum: 254
minimum: 0
type: integer
interval:
+ description: Interval defines the time interval
+ for checking targets, in seconds.
type: string
tcpFailures:
+ description: TCPFailures define the number of TCP
+ failures to define an unhealthy target.
maximum: 254
minimum: 0
type: integer
timeout:
+ description: |-
+ Timeout sets health check timeout in seconds.
+ https://github.com/apache/apisix/blob/0151d9e35bba63d7c316187272d88e19db0be634/apisix/schema_def.lua#L196
+ maximum: 254
+ minimum: 1
type: integer
type: object
type: object
passive:
- description: |-
- PassiveHealthCheck defines the conditions to judge whether
- an upstream node is healthy with the passive manager.
+ description: Passive health checks evaluate upstream health
+ based on observed traffic, such as timeouts or errors.
properties:
healthy:
- description: |-
- PassiveHealthCheckHealthy defines the conditions to judge whether
- an upstream node is healthy with the passive manner.
+ description: Healthy defines the conditions under which
+ an upstream node is considered healthy.
properties:
httpCodes:
+ description: HTTPCodes define a list of HTTP status
+ codes that are considered healthy.
items:
type: integer
minItems: 1
type: array
successes:
+ description: Successes define the number of successful
+ probes to define a healthy target.
maximum: 254
minimum: 0
type: integer
type: object
type:
+ default: http
+ description: |-
+ Type specifies the type of passive health check.
+ Can be `http`, `https`, or `tcp`.
+ enum:
+ - http
+ - https
+ - tcp
type: string
unhealthy:
- description: |-
- PassiveHealthCheckUnhealthy defines the conditions to judge whether
- an upstream node is unhealthy with the passive manager.
+ description: Unhealthy defines the conditions under
+ which an upstream node is considered unhealthy.
properties:
httpCodes:
+ description: HTTPCodes define a list of HTTP status
+ codes that are considered unhealthy.
items:
type: integer
minItems: 1
type: array
httpFailures:
+ description: HTTPFailures define the number of HTTP
+ failures to define an unhealthy target.
maximum: 254
minimum: 0
type: integer
tcpFailures:
+ description: TCPFailures define the number of TCP
+ failures to define an unhealthy target.
maximum: 254
minimum: 0
type: integer
timeout:
+ description: |-
+ Timeout sets health check timeout in seconds.
+ https://github.com/apache/apisix/blob/0151d9e35bba63d7c316187272d88e19db0be634/apisix/schema_def.lua#L196
+ maximum: 254
+ minimum: 1
type: integer
type: object
type: object
@@ -1689,47 +1922,75 @@ spec:
- active
type: object
loadbalancer:
- description: |-
- LoadBalancer represents the load balancer configuration for Kubernetes Service.
- The default strategy is round robin.
+ description: LoadBalancer specifies the load balancer configuration
+ for Kubernetes Service.
properties:
hashOn:
+ default: vars
description: |-
- The HashOn and Key fields are required when Type is "chash".
- HashOn represents the key fetching scope.
+ HashOn specified the type of field used for hashing, required when type is `chash`.
+ Default is `vars`. Can be `vars`, `header`, `cookie`, `consumer`, or `vars_combinations`.
+ enum:
+ - vars
+ - header
+ - cookie
+ - consumer
+ - vars_combinations
type: string
key:
- description: Key represents the hash key.
+ description: |-
+ Key is used with HashOn, generally required when type is `chash`.
+ When HashOn is `header` or `cookie`, specifies the name of the header or cookie.
+ When HashOn is `consumer`, key is not required, as the consumer name is used automatically.
+ When HashOn is `vars` or `vars_combinations`, key refers to one or a combination of
+ [APISIX variables](https://apisix.apache.org/docs/apisix/apisix-variable).
type: string
type:
+ default: roundrobin
+ description: |-
+ Type specifies the load balancing algorithms to route traffic to the backend.
+ Default is `roundrobin`.
+ Can be `roundrobin`, `chash`, `ewma`, or `least_conn`.
+ enum:
+ - roundrobin
+ - chash
+ - ewma
+ - least_conn
type: string
required:
- type
type: object
passHost:
description: |-
- Configures the host when the request is forwarded to the upstream.
- Can be one of pass, node or rewrite.
+ PassHost configures how the host header should be determined when a
+ request is forwarded to the upstream.
+ Default is `pass`.
+ Can be `pass`, `node` or `rewrite`:
+ * `pass`: preserve the original Host header
+ * `node`: use the upstream node’s host
+ * `rewrite`: set to a custom host via upstreamHost
enum:
- pass
- node
- rewrite
type: string
port:
- description: Port is a Kubernetes Service port, it should be
- already defined.
+ description: Port is a Kubernetes Service port.
format: int32
+ maximum: 65535
+ minimum: 1
type: integer
retries:
description: |-
- How many times that the proxy (Apache APISIX) should do when
- errors occur (error, timeout or bad http status codes like 500, 502).
+ Retries defines the number of retry attempts APISIX should make when a failure occurs.
+ Failures include timeouts, network errors, or 5xx status codes.
format: int64
type: integer
scheme:
description: |-
- The scheme used to talk with the upstream.
- Now value can be http, grpc.
+ Scheme is the protocol used to communicate with the upstream.
+ Default is `http`.
+ Can be `http`, `https`, `grpc`, or `grpcs`.
enum:
- http
- https
@@ -1738,8 +1999,8 @@ spec:
type: string
subsets:
description: |-
- Subsets groups the service endpoints by their labels. Usually used to differentiate
- service versions.
+ Subsets defines labeled subsets of service endpoints, typically used for
+ service versioning or canary deployments.
items:
description: ApisixUpstreamSubset defines a single endpoints
group of one Service.
@@ -1758,24 +2019,32 @@ spec:
type: object
type: array
timeout:
- description: Timeout settings for the read, send and connect
- to the upstream.
+ description: Timeout specifies the connection, send, and read
+ timeouts for upstream requests.
properties:
connect:
+ description: Connect timeout for establishing a connection
+ to the upstream.
type: string
read:
+ description: Read timeout for reading data from the upstream.
type: string
send:
+ description: Send timeout for sending data to the upstream.
type: string
type: object
tlsSecret:
- description: Set the client certificate when connecting to TLS
- upstream.
+ description: |-
+ TLSSecret references a Kubernetes Secret that contains the client certificate and key
+ for mutual TLS when connecting to the upstream.
properties:
name:
+ description: Name is the name of the Kubernetes Secret.
minLength: 1
type: string
namespace:
+ description: Namespace is the namespace where the Kubernetes
+ Secret is located.
minLength: 1
type: string
required:
@@ -1783,9 +2052,8 @@ spec:
- namespace
type: object
upstreamHost:
- description: |-
- Specifies the host of the Upstream request. This is only valid if
- the pass_host is set to rewrite
+ description: UpstreamHost sets a custom Host header when passHost
+ is set to `rewrite`.
type: string
required:
- port
@@ -1793,14 +2061,15 @@ spec:
type: array
retries:
description: |-
- How many times that the proxy (Apache APISIX) should do when
- errors occur (error, timeout or bad http status codes like 500, 502).
+ Retries defines the number of retry attempts APISIX should make when a failure occurs.
+ Failures include timeouts, network errors, or 5xx status codes.
format: int64
type: integer
scheme:
description: |-
- The scheme used to talk with the upstream.
- Now value can be http, grpc.
+ Scheme is the protocol used to communicate with the upstream.
+ Default is `http`.
+ Can be `http`, `https`, `grpc`, or `grpcs`.
enum:
- http
- https
@@ -1809,8 +2078,8 @@ spec:
type: string
subsets:
description: |-
- Subsets groups the service endpoints by their labels. Usually used to differentiate
- service versions.
+ Subsets defines labeled subsets of service endpoints, typically used for
+ service versioning or canary deployments.
items:
description: ApisixUpstreamSubset defines a single endpoints group
of one Service.
@@ -1829,23 +2098,32 @@ spec:
type: object
type: array
timeout:
- description: Timeout settings for the read, send and connect to the
- upstream.
+ description: Timeout specifies the connection, send, and read timeouts
+ for upstream requests.
properties:
connect:
+ description: Connect timeout for establishing a connection to
+ the upstream.
type: string
read:
+ description: Read timeout for reading data from the upstream.
type: string
send:
+ description: Send timeout for sending data to the upstream.
type: string
type: object
tlsSecret:
- description: Set the client certificate when connecting to TLS upstream.
+ description: |-
+ TLSSecret references a Kubernetes Secret that contains the client certificate and key
+ for mutual TLS when connecting to the upstream.
properties:
name:
+ description: Name is the name of the Kubernetes Secret.
minLength: 1
type: string
namespace:
+ description: Namespace is the namespace where the Kubernetes Secret
+ is located.
minLength: 1
type: string
required:
@@ -1853,9 +2131,8 @@ spec:
- namespace
type: object
upstreamHost:
- description: |-
- Specifies the host of the Upstream request. This is only valid if
- the pass_host is set to rewrite
+ description: UpstreamHost sets a custom Host header when passHost
+ is set to `rewrite`.
type: string
type: object
status:
@@ -1942,6 +2219,8 @@ spec:
- name: v1alpha1
schema:
openAPIV3Schema:
+ description: BackendTrafficPolicy defines configuration for traffic handling
+ policies applied to backend services.
properties:
apiVersion:
description: |-
@@ -1973,9 +2252,9 @@ spec:
hashOn:
default: vars
description: |-
- HashOn specified the type of field used for hashing, required when Type is `chash`.
+ HashOn specified the type of field used for hashing, required when type is `chash`.
Default is `vars`.
- Can be one of `vars`, `header`, `cookie`, `consumer`, or `vars_combinations`.
+ Can be `vars`, `header`, `cookie`, `consumer`, or `vars_combinations`.
enum:
- vars
- header
@@ -1985,7 +2264,7 @@ spec:
type: string
key:
description: |-
- Key is used with HashOn, generally required when Type is `chash`.
+ Key is used with HashOn, generally required when type is `chash`.
When HashOn is `header` or `cookie`, specifies the name of the header or cookie.
When HashOn is `consumer`, key is not required, as the consumer name is used automatically.
When HashOn is `vars` or `vars_combinations`, key refers to one or a combination of
@@ -1994,9 +2273,9 @@ spec:
type:
default: roundrobin
description: |-
- Type specifies the load balancing algorithms.
+ Type specifies the load balancing algorithms to route traffic to the backend.
Default is `roundrobin`.
- Can be one of `roundrobin`, `chash`, `ewma`, or `least_conn`.
+ Can be `roundrobin`, `chash`, `ewma`, or `least_conn`.
enum:
- roundrobin
- chash
@@ -2013,8 +2292,10 @@ spec:
description: |-
PassHost configures how the host header should be determined when a
request is forwarded to the upstream.
- Default is `pass`.
- Can be one of `pass`, `node` or `rewrite`.
+ Default is `pass`. Can be `pass`, `node` or `rewrite`:
+ * `pass`: preserve the original Host header
+ * `node`: use the upstream node’s host
+ * `rewrite`: set to a custom host via `upstreamHost`
enum:
- pass
- node
@@ -2030,7 +2311,7 @@ spec:
description: |-
Scheme is the protocol used to communicate with the upstream.
Default is `http`.
- Can be one of `http`, `https`, `grpc`, or `grpcs`.
+ Can be `http`, `https`, `grpc`, or `grpcs`.
enum:
- http
- https
@@ -2451,6 +2732,7 @@ spec:
- name: v1alpha1
schema:
openAPIV3Schema:
+ description: Consumer defines configuration for a consumer.
properties:
apiVersion:
description: |-
@@ -2471,7 +2753,7 @@ spec:
type: object
spec:
description: |-
- ConsumerSpec defines the configuration for a consumer, including consumer name,
+ ConsumerSpec defines configuration for a consumer, including consumer name,
authentication credentials, and plugin settings.
properties:
credentials:
@@ -2505,7 +2787,7 @@ spec:
type:
description: |-
Type specifies the type of authentication to configure credentials for.
- Can be one of `jwt-auth`, `basic-auth`, `key-auth`, or `hmac-auth`.
+ Can be `jwt-auth`, `basic-auth`, `key-auth`, or `hmac-auth`.
enum:
- jwt-auth
- basic-auth
@@ -2637,7 +2919,8 @@ spec:
- name: v1alpha1
schema:
openAPIV3Schema:
- description: GatewayProxy is the Schema for the gatewayproxies API.
+ description: GatewayProxy defines configuration for the gateway proxy instances
+ used to route traffic to services.
properties:
apiVersion:
description: |-
@@ -2658,19 +2941,19 @@ spec:
type: object
spec:
description: |-
- GatewayProxySpec defines the desired state and configuration of a GatewayProxy,
+ GatewayProxySpec defines configuration of gateway proxy instances,
including networking settings, global plugins, and plugin metadata.
properties:
pluginMetadata:
additionalProperties:
x-kubernetes-preserve-unknown-fields: true
- description: PluginMetadata configures common configurations shared
+ description: PluginMetadata configures common configuration shared
by all plugin instances of the same name.
type: object
plugins:
description: Plugins configure global plugins.
items:
- description: GatewayProxyPlugin contains plugin configurations.
+ description: GatewayProxyPlugin contains plugin configuration.
properties:
config:
description: Config defines the plugin's configuration details.
@@ -2691,7 +2974,7 @@ spec:
plane provider.
properties:
auth:
- description: Auth specifies the authentication configurations.
+ description: Auth specifies the authentication configuration.
properties:
adminKey:
description: AdminKey specifies the admin key authentication
@@ -2722,6 +3005,9 @@ spec:
type: object
type: object
type: object
+ x-kubernetes-validations:
+ - message: exactly one of value or valueFrom must be specified
+ rule: has(self.value) != has(self.valueFrom)
type:
description: |-
Type specifies the type of authentication.
@@ -2732,6 +3018,10 @@ spec:
required:
- type
type: object
+ x-kubernetes-validations:
+ - message: adminKey must be specified when type is AdminKey
+ rule: 'self.type == ''AdminKey'' ? has(self.adminKey) :
+ true'
endpoints:
description: Endpoints specifies the list of control plane
endpoints.
@@ -2742,8 +3032,10 @@ spec:
service:
properties:
name:
+ description: Name is the name of the provider.
type: string
port:
+ description: Port is the port of the provider.
format: int32
maximum: 65535
minimum: 1
@@ -2785,6 +3077,8 @@ spec:
items:
type: string
type: array
+ required:
+ - provider
type: object
type: object
served: true
@@ -2808,7 +3102,7 @@ spec:
- name: v1alpha1
schema:
openAPIV3Schema:
- description: HTTPRoutePolicy is the Schema for the httproutepolicies API.
+ description: HTTPRoutePolicy defines configuration of traffic policies.
properties:
apiVersion:
description: |-
@@ -2829,12 +3123,13 @@ spec:
type: object
spec:
description: |-
- HTTPRoutePolicySpec defines the desired state and configuration of a HTTPRoutePolicy,
+ HTTPRoutePolicySpec defines configuration of a HTTPRoutePolicy,
including route priority and request matching conditions.
properties:
priority:
- description: Priority sets the priority for route. A higher value
- sets a higher priority in route matching.
+ description: |-
+ Priority sets the priority for route. when multiple routes have the same URI path,
+ a higher value sets a higher priority in route matching.
format: int64
type: integer
targetRefs:
@@ -3223,7 +3518,7 @@ spec:
- name: v1alpha1
schema:
openAPIV3Schema:
- description: PluginConfig is the Schema for the PluginConfigs API.
+ description: PluginConfig defines plugin configuration.
properties:
apiVersion:
description: |-
@@ -3245,10 +3540,10 @@ spec:
spec:
description: |-
PluginConfigSpec defines the desired state of a PluginConfig,
- in which plugins and their configurations are specified.
+ in which plugins and their configuration are specified.
properties:
plugins:
- description: Plugins are an array of plugins and their configurations
+ description: Plugins are an array of plugins and their configuration
to be applied.
items:
properties: