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: