Skip to content

update alb doc#148

Merged
woodgear merged 1 commit intoalauda:masterfrom
woodgear:feat/ACP-44097
Aug 27, 2025
Merged

update alb doc#148
woodgear merged 1 commit intoalauda:masterfrom
woodgear:feat/ACP-44097

Conversation

@woodgear
Copy link
Collaborator

@woodgear woodgear commented Aug 27, 2025

Summary by CodeRabbit

  • New Features

    • Added ALB how-to guides: CORS, Header Modification, URL Rewrite, Rule configuration, ALB deployment, and high-availability VIP guidance; GatewayAPI via ALB support.
  • Documentation

    • Large ALB docs restructure: new ALB index, deploy & rule guides, architecture/relationship revisions, many link/path updates, diagram updates, and updated Ingress‑NGINX install/tasks content.
  • Removed

    • Deprecated legacy load balancer and GatewayAPI creation guides replaced by ALB‑focused content.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 27, 2025

Warning

Rate limit exceeded

@woodgear has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 4 minutes and 36 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 0cf02a8 and b5f8565.

⛔ Files ignored due to path filters (4)
  • docs/en/configure/networking/assets/create_alb_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_ft_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_rule_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/gatewayapi-architecture.png is excluded by !**/*.png
📒 Files selected for processing (26)
  • docs/en/configure/networking/architecture/understanding_alb.mdx (3 hunks)
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx (7 hunks)
  • docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/concepts/gatewayapi.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_ingress.mdx (3 hunks)
  • docs/en/configure/networking/how_to/alb/auth.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/cors.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/decision_making_for_performance_selection_of_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/header_modification.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/index.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/otel.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1 hunks)
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx (0 hunks)
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx (0 hunks)
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx (0 hunks)
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (2 hunks)
  • docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1 hunks)

Walkthrough

Documentation reorganized to center on ALB: new ALB how‑to pages (deploy, rules, CORS, header modification, URL rewrite, VIP), architecture and GatewayAPI mappings updated, many links and asset paths retargeted to the new ALB docs, header/title tweaks and small cleanups, and several legacy load balancer/gateway how‑tos removed.

Changes

Cohort / File(s) Summary of Changes
ALB Architecture & Quick Start
docs/en/configure/networking/architecture/understanding_alb.mdx
Refined component descriptions (ALB Operator, ALB Instance/OpenResty + Go controller), expanded Quick Start with operator/instance deployment steps, condensed relationship text, updated Mermaid diagram and bottom nav link.
ALB How‑to: Deploy & VIP
docs/en/configure/networking/how_to/alb/deploy_alb.mdx, docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx
Added comprehensive Deploy ALB guide (CRD schema, frontends, ops, monitoring) and a VIP provisioning guide (MetalLB or external device, health checks).
ALB How‑to: Rules, CORS, Header Mod, URL Rewrite, Index
docs/en/configure/networking/functions/configure_alb_rule.mdx, docs/en/configure/networking/how_to/alb/cors.mdx, .../header_modification.mdx, .../url_rewrite.mdx, .../index.mdx
New Configure ALB Rule page (DSLX, priority, actions, TLS, serviceGroup, ingress integration); new CORS, Header Modification (RewriteRequestConfig/RewriteResponseConfig types), URL rewrite docs and ALB index.
ALB How‑to: Misc Edits & Asset Link Fixes
docs/en/configure/networking/how_to/alb/auth.mdx, .../http_redirect.mdx, .../l4_l7_timeout.mdx, .../tcp_http_keepalive.mdx, .../otel.mdx, .../bind_nic_in_alb.mdx, .../forwarding_ipv6_..._via_alb.mdx, .../load_balancing_session_affinity_policy_in_alb.mdx
Header/title wording changes, link target updates to new ALB paths, asset path corrections, minor formatting/cleanup (removed stray '-' line).
GatewayAPI & Gateway via ALB
docs/en/configure/networking/concepts/gatewayapi.mdx, docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx
Expanded GatewayAPI intro with persona/resource model and image; added “Via ALB” mapping; Configure Gateway doc retitled and simplified (kubectl patch removed metadata.annotations), label/spec callout edits and link updates.
Ingress & Ingress‑NGINX Tasks
docs/en/configure/networking/functions/configure_ingress.mdx, docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx, docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx
Reworded Ingress implementation wording, removed Quick Start, updated prerequisites and example; retitled ingress‑nginx install doc and added Related Resources; added tasks_for_ingress_nginx guide.
Annotation Compatibility & Comparisons
docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx, docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx
Retitled and repointed many annotation links to new ALB how‑to paths; updated ALB Rule cross‑reference to functions/configure_alb_rule.mdx.
Deletions — Legacy How‑tos Removed
docs/en/configure/networking/how_to/create_loadbalancer.mdx, docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx, docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx
Removed legacy create/loadbalancer and GatewayAPI creation how‑tos and an older VIP guide (content migrated or replaced by new ALB how‑tos).

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Admin
  participant K8s as Kubernetes API
  participant ALBOp as ALB Operator
  participant ALBctl as ALB Controller (Go)
  participant DP as OpenResty (Data Plane)
  participant Svc as Backend Services

  Admin->>K8s: Apply ALB / Frontend / Rule CR
  ALBOp->>K8s: Watch ALB CRs
  ALBOp->>ALBctl: Create/Update ALB Deployment & Service
  ALBctl->>K8s: Watch Ingress/Gateway/Rule CRs
  ALBctl->>DP: Push ALB DSL rules/config
  note over ALBctl,DP: Updated on CR changes
  DP->>Svc: Route requests per DSL rules
Loading
sequenceDiagram
  autonumber
  actor Admin
  participant K8s as Kubernetes API
  participant ALBctl as ALB Controller
  participant DP as OpenResty

  Admin->>K8s: Create Gateway (GatewayAPI)
  ALBctl->>K8s: Watch Gateway/Listeners/Routes
  ALBctl->>ALBctl: Map Gateway → ALB instance (listeners/routes handled directly)
  ALBctl->>DP: Configure listeners and routes
  DP->>DP: Match and forward per Gateway config
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

  • add doc about bindnic for alb #66 — Overlaps ALB bind NIC documentation changes; likely related to bind_nic content.
  • fix alb doc #67 — Edits the same bind_nic_in_alb doc to remove a stray character/line; small cleanup overlap.
  • Chore/cherrypick 4.0 #44 — Modifies ALB architecture and related docs; related to wording/structure edits in architecture and ingress docs.

Suggested reviewers

  • fanzy618

Poem

A rabbit types quick on a springy log,
ALB pages bloom like mushrooms in fog.
Rules, headers, CORS — carrots in a row,
VIPs and rewrites help the traffic go.
Hop in, read, and nibble — the docs will grow! 🥕

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
docs/en/configure/networking/how_to/alb/otel.mdx (3)

472-474: kubectl apply missing -f

The command won’t work without -f.

-kubectl apply ./all.yaml
+kubectl apply -f ./all.yaml

493-494: Angle‑bracket placeholder breaks the example

Use $ALB_IP directly; the current example includes literal < and > and a stray “nonse” param.

-curl -v "http://<$ALB_IP>:80/dispatch?customer=567&nonse=" # Replace <$ALB_IP> in the command with the access address of otel-alb obtained in the previous procedure
+curl -v "http://$ALB_IP:80/dispatch?customer=567&nonce=1" # Replace $ALB_IP with the otel-alb address obtained above if not set

186-197: Field name consistency: flags vs flag

Elsewhere you use flags.*. Keep it consistent and correct the typo.

-| **flag.notrust_incoming_span**        | Whether to trust and use the OTel Trace information (e.g., trace ID) from incoming requests.     |
+| **flags.notrust_incoming_span**       | Whether to trust and use the OTel Trace information (e.g., trace ID) from incoming requests.     |

And in surrounding prose where “flag.” appears, change to “flags.”.

🧹 Nitpick comments (71)
docs/en/configure/networking/how_to/alb/decision_makeing_for_performance_selection_of_alb.mdx (3)

6-6: Title casing/wording consistency

Consider “Decision‑Making for ALB Performance Selection” for consistency and clarity.

-# Decision Making for Performance Selection of ALB
+# Decision‑Making for ALB Performance Selection

42-56: Polish wording in the usage table

Small copyedits improve readability and avoid ambiguous phrasing like “mis-operations”.

- | **Function Testing**              | It is advisable to deploy a **single instance** of the load balancer. |
+ | **Functional Testing**            | It is advisable to deploy a **single instance** of the load balancer. |
- | **Testing Environment**           | ... using a **single point** load balancer is sufficient. ...
+ | **Testing Environment**           | ... using a **single‑instance** load balancer is sufficient. ...
- | **Allocate the load balancer as an instance resource to multiple projects** | Management is relatively straightforward. | Since all assigned projects hold full permissions ... **Mis-operations** during load balancer configuration ...
+ | **Allocate the load balancer as an instance resource to multiple projects** | Management is relatively straightforward. | Since all assigned projects hold full permissions ... **Misconfigurations** during load balancer configuration ...
- | **For larger business volumes...** it is recommended to use **multiple** load balancers, each in a **high availability** type ...
+ | **For larger business volumes...** it is recommended to use **multiple** load balancers, each in **high‑availability** mode ...

16-16: Benchmark claims need context

Add hardware, ALB version, and test methodology for the QPS figures. Otherwise they can mislead capacity planning.

-The peak QPS measured in a lab environment for this specification is approximately 300 requests per second.
+The peak QPS measured in our lab (~300 rps) was observed on ALB vX.Y with N×CPU, M GiB RAM, test tool Z, 1 kB payload, keep‑alive on. Your results may vary.

Also applies to: 26-26, 36-36

docs/en/configure/networking/how_to/alb/otel.mdx (6)

28-28: Link label and target

The link text says “Creating Load Balancer” but targets deploy_alb.mdx. Align wording with the target.

-For instructions on creating an ALB, refer to [Creating Load Balancer](./deploy_alb.mdx).
+For instructions on creating an ALB, refer to [Deploy ALB](./deploy_alb.mdx).

481-488: More robust IP discovery

Grepping all pods may return multiple lines and unexpected IPs. Narrow the selector and handle multiple pods deterministically.

-export JAEGER_IP=$(kubectl get po -A -o wide |grep jaeger | awk '{print $7}');echo "http://$JAEGER_IP:16686"
+export JAEGER_IP=$(kubectl get pod -A -l service_name=jaeger -o jsonpath='{.items[0].status.podIP}'); echo "http://$JAEGER_IP:16686"
-export ALB_IP=$(kubectl get po -A -o wide|grep otel-alb | awk '{print $7}');echo $ALB_IP
+export ALB_IP=$(kubectl get pod -A -l app.kubernetes.io/name=otel-alb -o jsonpath='{.items[0].status.podIP}'); echo "$ALB_IP"

If these labels aren’t present, please replace with the correct label selectors for your manifests.


153-154: Avoid hard‑coded CRD version index

.spec.versions[2] is brittle across releases. Query by version name.

-kubectl get crd alaudaloadbalancer2.crd.alauda.io -o json|jq ".spec.versions[2].schema.openAPIV3Schema.properties.spec.properties.config.properties.otel"
+kubectl get crd alaudaloadbalancer2.crd.alauda.io -o json \
+| jq '.spec.versions[] | select(.name=="v2" and .served==true) 
+  | .schema.openAPIV3Schema.properties.spec.properties.config.properties.otel'

214-221: Anchor typo and cross‑reference

Fix “sampoli” to “sampling-strategies” and update the reference.

-### Sampling Strategies \{#sampoli}
+### Sampling Strategies \{#sampling-strategies}
-| **sampler.name**                      | Sampling strategy name; see [Sampling Strategies](#sampoli) for details.                         |
+| **sampler.name**                      | Sampling strategy name; see [Sampling Strategies](#sampling-strategies) for details.             |

Also applies to: 195-195


498-501: Add alt text for accessibility

Provide brief alt text for images.

-![](../../assets/jaeger.png)
-![](../../assets/trace.png)
+![Jaeger UI](../../assets/jaeger.png)
+![Trace detail view](../../assets/trace.png)

409-417: Host networking callout

Running Jaeger with hostNetwork: true may be unacceptable in some clusters. Add a note about security and port conflicts.

         hostNetwork: true
+        # Note: hostNetwork exposes ports on the node network; ensure this aligns with your cluster security policy and port availability.
docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx (2)

1-1: Title case consistency

Prefer “in” lowercase unless your style guide enforces Title Case for all words.

-# Load Balancing Session Affinity Policy In ALB
+# Load Balancing Session Affinity Policy in ALB

56-62: Confirm CRD field names and location

Validate that session_affinity_policy and session_affinity_attribute live under spec.serviceGroup for both Frontend and Rule CRDs. If they differ by kind, add examples for each.

# If the CRDs differ, consider documenting both:
# Frontend
spec:
  serviceGroup:
    session_affinity_policy: "rr"
# Rule
spec:
  serviceGroup:
    session_affinity_policy: "rr"
docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx (1)

6-6: Title casing

Consider “via ALB” (lowercase via) for consistency with other pages.

-# Forwarding IPv6 Traffic to IPv4 Addresses within the Cluster Via ALB
+# Forwarding IPv6 Traffic to IPv4 Addresses within the Cluster via ALB
docs/en/configure/networking/how_to/alb/cors.mdx (3)

1-4: Section name plural

“Basic Concepts” reads more naturally.

-## Basic Concept
+## Basic Concepts

8-21: Clarify CRD field descriptions and grammar

Tighten language; keep behavior precise.

 enableCORS:
-  description: enableCORS is the switch whether enable cross domain,
-    when EnableCORS is false, alb2 transports information to backend
-    servers which determine whether allow cross-domain
+  description: Whether ALB enables CORS at this rule. When false, requests are passed to backends unchanged and CORS handling (if any) is left to the backend.
   type: boolean
 corsAllowHeaders:
-  description: corsAllowHeaders defines the headers allowed by cors
-    when enableCORS is true, multiple headers are separated by commas
+  description: Comma‑separated list of request headers allowed by CORS when enableCORS is true.
   type: string
 corsAllowOrigin:
-  description: corsAllowOrigin defines the origin allowed by cors when
-    enableCORS is true, multiple origins are separated by commas
+  description: Comma‑separated list of allowed origins when enableCORS is true. Supports "*" to allow any origin (use with care).
   type: string

23-23: Add a minimal usage example

A short Rule spec helps users translate fields into real YAML.

apiVersion: crd.alauda.io/v2
kind: Rule
metadata:
  name: example-cors
spec:
  serviceGroup:
    actions:
      - name: cors
        args:
          enableCORS: true
          corsAllowOrigin: "https://app.example.com"
          corsAllowHeaders: "Authorization,Content-Type"
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (2)

3-6: Tighten intro and fix capitalization.

Shorten, fix grammar, and capitalize sentences.

-## Basic Concept
-During the request processing flow, when ALB receives a request and forwards it to the backend server, ALB has the capability to rewrite the URL before sending the request to the backend server.
-
-you could use regex capture group to rewrite the URL.
+## Basic concept
+ALB can rewrite the request URL before forwarding it to the backend.
+
+You can use regex capture groups to rewrite the URL.

49-49: Polish the result sentence.

Clarify example and fix grammar.

-client send url /prefix-x/abc and backend server receive url /abc
+Example: client requests `/prefix-x/abc`; backend receives `/abc`.
docs/en/configure/networking/concepts/gatewayapi.mdx (2)

8-9: Add alt text for accessibility.

Provide descriptive alt text for the diagram.

-![](../assets/gatewayapi-architecture.png)
+![Gateway API personas and resource model](../assets/gatewayapi-architecture.png)

12-14: Tighten wording; pluralize and improve link text.

Minor grammar and clearer CTA.

-ALB supports GatewayAPI. Each Gateway resource will be translated into an ALB resource.
-Listener and Router will be handled in ALB directly. They will not be translated into `Frontend` and `Rule`.
-[create gatewayapi gateway](../how_to/alb/configure_gatewayapi_gateway_via_alb.mdx)
+ALB supports GatewayAPI. Each Gateway resource maps to an ALB resource.
+Listeners and routers are handled directly by ALB; they are not translated into `Frontend` or `Rule`.
+[Create a GatewayAPI Gateway via ALB](../how_to/alb/configure_gatewayapi_gateway_via_alb.mdx)
docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (4)

10-10: Fix typo.

“In ingress-nginx, you can …”

-in ingress-nginx, you could you
+In Ingress-NGINX, you can

13-16: Correct request/response header actions.

Use headers-more input directives for request header removal; fix article usage.

-|remove header in request| set a empty header in request |
-|set header in response|[configuration-snippets](https://kubernetes.github.io/ingress-nginx/examples/customization/configuration-snippets/) with [more-set-header](https://github.com/openresty/headers-more-nginx-module?tab=readme-ov-file#more_set_headers) directive |
+|remove header in request|[configuration-snippets](https://kubernetes.github.io/ingress-nginx/examples/customization/configuration-snippets/) with [more_clear_input_headers](https://github.com/openresty/headers-more-nginx-module?tab=readme-ov-file#more_clear_input_headers) |
+|set header in response|[configuration-snippets](https://kubernetes.github.io/ingress-nginx/examples/customization/configuration-snippets/) with [more_set_headers](https://github.com/openresty/headers-more-nginx-module?tab=readme-ov-file#more_set_headers) |

18-19: Use HSTS (not HTST) and adjust link text.

-## htst (HTTP Strict Transport Security)
-[config htst](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#hsts)
+## HSTS (HTTP Strict Transport Security)
+[configure HSTS](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#hsts)

21-21: Hyphenate “rate-limiting” (style).

-## rate limiting
+## rate-limiting
docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (3)

4-4: Title casing/style.

Optional: use “via” lowercase per style.

-# Install Ingress-Nginx Via Cluster Plugin 
+# Install Ingress-NGINX via Cluster Plugin

156-156: Clarify version mapping (chart vs controller).

Disambiguate to avoid confusion.

-Current version mapping:
-- ACP Ingress NGINX 4.1.x corresponds to official Ingress NGINX 4.12.2
+Current version mapping:
+- ACP Ingress-NGINX 4.1.x corresponds to the official chart 4.12.2 (controller v1.12.2)

158-161: Fix duplicate link; point “documentation” to docs site.

Second and third bullets currently point to the same chart URL.

 [tasks for ingress-nginx](./tasks_for_ingress_nginx.mdx)  
 [official Ingress NGINX chart](https://github.com/kubernetes/ingress-nginx/tree/controller-v1.12.2/charts/ingress-nginx)  
-[official Ingress NGINX documentation](https://github.com/kubernetes/ingress-nginx/tree/controller-v1.12.2/charts/ingress-nginx)  
+[official Ingress NGINX documentation](https://kubernetes.github.io/ingress-nginx/)  
docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (5)

6-6: Use “GatewayAPI” consistently.

-# Configure GatewayApi Gateway Via ALB
+# Configure GatewayAPI Gateway via ALB

36-37: Callout marker fine; consider clarifying label purpose.

If “alb-ref” is mandatory, say so in text near the YAML.


69-70: Callouts grammar and casing.

-1. which alb this gateway used. 
-2. See Gateway Class introduction below.
-3. `alb2` name is formatted as `{gatewayName}-{random}`.
-4. `gateway` name.
+1. Which ALB this gateway uses.
+2. See the Gateway Class introduction below.
+3. `ALB2` name format: `{gatewayName}-{random}`.
+4. Gateway name.

190-191: Listener notes look good; minor wording polish.

-| **Domain Name**                | Select an available domain name in the current namespace, used to monitor network traffic accessing this domain name. <br />**Hint**: TCP and UDP protocols do not support selecting domain names.                                                                                                                                                                                                                         |
+| **Domain name**                | Select an available domain name in the current namespace. <br />**Hint**: TCP and UDP do not support domain names.                                                                                                                                                                                                                         |

240-267: Update HTTPRoute sample to GA API v1

The current GA version of the Gateway API is gateway.networking.k8s.io/v1, and in that version:

Please update the snippet in
docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx
(lines 240–267) to:

-apiVersion: gateway.networking.k8s.io/v1beta1
+apiVersion: gateway.networking.k8s.io/v1
 kind: HTTPRoute
 metadata:
   namespace: k-1
   name: example-http-route
   annotations:
     cpaas.io/display-name: ""
 spec:
   hostnames:
     - developer.test.cn    # unchanged
   parentRefs:
     - kind: Gateway
       namespace: k-1
       name: test
       sectionName: demo-listener   # unchanged
   rules:
     – matches:
         – path:
             type: Exact
             value: "/demo"
       filters: []
       backendRefs:
         – kind: Service
           name: test-service
           namespace: k-1
           port: 80
           weight: 100
docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (4)

11-16: Grammar and clarity: fix articles, capitalization, and flow in Method 1 intro.

Suggestion tightens wording and uses “an ALB”, “LoadBalancer Service”, and “MetalLB” consistently.

-When creating a ALB, using `Container network` Mode, it will automatically creates a LoadBalancer type Service to provide a VIP for the ALB.
+When creating an ALB in `container` network mode, the system automatically creates a LoadBalancer Service to provide a VIP for that ALB.

-Before using it, ensure that the current cluster supports LoadBalancer type service. You can use the platform's built-in LoadBalancer service implementation, for specific configuration, please refer to [Configure MetalLB](../../functions/create_metallb.mdx)
+Before using this, ensure the cluster supports LoadBalancer Services. You can use the platform’s built‑in implementation. For setup, see [Configure MetalLB](../../functions/create_metallb.mdx).

-After Metallb Ready, follow annotation could be [add to alb lbSvcAnnotations](./deploy_alb.mdx#alb_networking_configuration) to tweak metallb behavior.
+After MetalLB is ready, you can add the following annotations to `alb.spec.config.vip.lbSvcAnnotations` to tweak MetalLB behavior. See [ALB networking configuration](./deploy_alb.mdx#alb_networking_configuration).

17-21: Table polish: capitalize headers; clarify multi‑VIP/dual‑stack; minor wording.

Also add example formatting for multiple IPs.

-|annotation|description|
+| Annotation | Description |
 |---|---|
-|metallb.universe.tf/loadBalancerIPs|Specify the VIP allocated to the service, value is comma-separated VIPs. If multiple VIPs or dual-stack VIPs are needed, concatenate them with commas|
+| `metallb.universe.tf/loadBalancerIPs` | Comma‑separated VIPs to allocate to the Service. Use multiple entries for multi‑VIP or dual‑stack, for example: `192.0.2.10,2001:db8::10`. |
-|metallb.universe.tf/address-pool|Specify the address pool allocated to the service|
+| `metallb.universe.tf/address-pool` | The MetalLB address pool to allocate from. |

22-25: External device method: tighten wording and split long sentence; add small safety note.

Breaks the long bullet for readability; avoids implying endorsement of Alpha solution without caveat.

-* Please confirm with the network engineer the IP address (public IP, private IP, VIP) or domain name of the ALB service before deployment. If you want to use a domain name as the address for external traffic to access the ALB, you need to apply for a domain name in advance and configure domain name resolution. It is recommended to use a commercial Load Balancer device to provide a VIP, if not, you can use the [Pure Software Data Center LB Solution (Alpha)](../soft_data_center_lb_solution.mdx)
+* Before deployment, confirm with the network engineer the address used by the ALB service: public IP, private IP/VIP, or a domain name.  
+* If using a domain name, apply for the domain and configure DNS resolution in advance.  
+* We recommend a commercial load balancer device to provide the VIP. If unavailable, you can evaluate the [Pure Software Data Center LB Solution (Alpha)](../soft_data_center_lb_solution.mdx) in non‑production environments.

26-34: Health check table: fix wording and punctuation; ensure consistent units.

Also clarify “ALB upgrade” phrasing.

-* According to the business scenario, the external ALB needs to configure health checks for all the ports in use to reduce the downtime of ALB upgrade. The health check configuration is as follows:
+* To minimize downtime during ALB upgrades, configure health checks on all in‑use ports. Recommended settings:

-    | **Protocol** | The protocol type of the health check, it is recommended to use TCP. |
-    | **Response Timeout** | The time required to receive the health check response, it is recommended to configure it to 2 seconds. |
-    | **Check Interval** | The time interval for the health check, it is recommended to configure it to 5 seconds. |
-    | **Unhealthy Threshold** | The number of consecutive failures after which the health check status of the backend server is determined to be failed, it is recommended to configure it to 3 times. |    
+    | **Protocol** | Health check protocol. TCP is recommended. |
+    | **Response Timeout** | Time to wait for a response. Recommended: 2s. |
+    | **Check Interval** | Interval between checks. Recommended: 5s. |
+    | **Unhealthy Threshold** | Consecutive failures to mark backend unhealthy. Recommended: 3. |
docs/en/configure/networking/how_to/alb/header_modification.mdx (5)

5-9: Intro wording: capitalize headings and improve tone.

Use sentence case and avoid run‑ons.

-## Basic Concept
-when a request is received, the header modification feature enables you to adjust the request header before it is forwarded to the backend server.
-Similarly, when a response is received, the header modification feature enables you to adjust the response header before it is delivered to the client.
+## Basic concepts
+When a request is received, header modification allows adjusting request headers before forwarding to the backend.
+Similarly, when a response is received, it allows adjusting response headers before they are returned to the client.

9-15: Annotations section: pluralize, clarify value format.

-### use annotation
+### Use annotations
 ...
-the values are the json string of the config
+Annotation values are JSON strings containing the config.

31-41: Variable explanation: fix grammar and add explicit example result.

-notice the `xx_var` is the key of the variable in the context of alb, the value is the name of the variable.
-for example, add follow annotation in ingress
+Note: in `*_var` maps the key is the header name and the value is the ALB context variable name.
+For example, add the following annotation to an Ingress:
 ...
-will add key `x-my-host` and value of request host header to request header
+This adds the `x-my-host` header with the value of the incoming request’s host (from `http_host`).
+You can refer to the [Nginx variables](http://nginx.org/en/docs/varindex.html) for variable names.

43-49: Table formatting and wording.

-ALB add some extra variables you can use
+ALB provides additional variables:

50-60: Examples: fix typos and add minor safety note for Authorization header.

-## examples
-for example to add auth heaer from cookie you could use follow annotation
+## Examples
+To add an Authorization header from a cookie, you can use:

Additionally, consider noting that sensitive headers like Authorization should be used over TLS only and scoped to trusted backends.

docs/en/configure/networking/how_to/alb/deploy_alb.mdx (9)

10-16: Wording: subject-verb agreement; merge sentences.

-A deployment corresponding to each ALB, watches all frontends and rules attached to that alb, and routing requests to backend services based on frontend and rule configurations.
+For each ALB, a corresponding Deployment watches all Frontends and Rules attached to that ALB and routes requests to backends based on those configurations.

14-16: VIP prerequisite link text: align with page title and fix article.

-The high availability of the **Load Balancer** requires a VIP. Please refer to [Configure VIP](./deploy_high_available_vip_for_alb.mdx).
+High availability for the load balancer requires a VIP. See [Deploy a Highly Available VIP for ALB](./deploy_high_available_vip_for_alb.mdx).

16-16: Grammar: “three parts of an ALB configuration”.

-there are three part of a ALB configuration.
+There are three parts to an ALB configuration.

74-81: Project configuration table: fill descriptions and fix heading.

-#### project configuration
-| Field | Type | 
-|-------|------|
-| `.spec.config.projects` | []string,required |
-| `.spec.config.portProjects` | string,optional |
-| `.spec.config.enablePortProject` | bool,optional |
+#### Project configuration
+| Field | Type | Description |
+|-------|------|-------------|
+| `.spec.config.projects` | []string, required | Project IDs this ALB serves (e.g., `ALL_ALL`). |
+| `.spec.config.portProjects` | string, optional | Project used for port‑range assignment (port project mode). |
+| `.spec.config.enablePortProject` | bool, optional | Enable port‑project mode. |

94-109: UI flow: spelling and capitalization; fix “blow”, “webui”.

-##### using the web console.
+##### Using the web console
 ...
-we expose some common configureation in web ui either, follow the steps blow to create a load balancer:
+Some common configuration is exposed in the web UI. Follow these steps to create a load balancer:
 ...
-Each input item on the webui corresponds to a field of the CR
+Each input item in the web UI corresponds to a field of the CR:

105-109: Parameters table: fix markdown separator row.

-|Parameter| Description|
---|--|
+| Parameter | Description |
+|---|---|

155-164: Frontend section: fix articles, spelling, and protocol list.

-Frontend is a custom resource that defines the listener port and protocol for a ALB.
-protocol including L7 protocol https|http|grpcs|grpc and L4 protocl tcp|udp
+Frontend is a custom resource that defines the listener port and protocol for an ALB.
+Supported protocols: L7 (http|https|grpc|grpcs) and L4 (tcp|udp).

192-209: Callouts: tighten bullets; fix run‑on sentence and missing space.

-3. port: which port which listen on.
+3. port: the port to listen on.
 ...
-7. default servicegroup, For L4 proxy, `serviceGroup` is required and alb forward traffic to default service group directly.
-   For L7 proxy, `serviceGroup` is. optional. When a request arrives, ALB will first try to match it against rules associated with this `Frontend`. Only if the request doesn't match any
-   rule, ALB will then forward it to the default `serviceGroup` specified in the `Frontend` configuration.
+7. Default `serviceGroup`: 
+   - L4 proxy: required. ALB forwards traffic to the default service group directly.  
+   - L7 proxy: optional. ALB first matches Rules on this Frontend; if none match, it falls back to the default `serviceGroup`.

239-281: Monitoring section: minor wording and punctuation.

-By combining visualized logs and monitoring data, issues or failures with the load balancer can be quickly identified and resolved.
+By combining logs and monitoring data, you can quickly identify and resolve load balancer issues.
docs/en/configure/networking/architecture/understanding_alb.mdx (4)

13-15: Terminology: “manages”, “data plane”, “control plane”.

-- **ALB Operator**: An operator that manage the lifecycle of ALB instances. It is responsible for watching ALB CRs and then creating and updating ALB instances for different tenants.
-- **ALB Instance**: The ALB instance includes an Openresty that act as the data plan and a Go controller as the controller plan.
+- **ALB Operator**: An operator that manages the lifecycle of ALB instances. It watches ALB CRs and creates/updates instances for different tenants.
+- **ALB Instance**: An ALB instance includes OpenResty acting as the data plane and a Go controller as the control plane.

108-109: Shell example: placeholder variable formatting.

-Now you can access the app via `curl http://${ip}`
+Now you can access the app via `curl "http://${IP}"`

122-126: Wording: improve flow.

-Next introduces how these concepts work together and what roles they play in the request-calling chain. Detailed introductions for each concept will be covered in other articles.
+The following explains how these concepts work together in the request path. Detailed introductions for each concept are covered in separate articles.

212-215: Link text: align with target page title.

-- [Configure a Load Balancer](../how_to/alb/deploy_alb.mdx)
+- [Deploy ALB](../how_to/alb/deploy_alb.mdx)
docs/en/configure/networking/how_to/alb/index.mdx (1)

1-7: Optional: add a short overview paragraph for SEO/context.

Consider a one‑sentence description under the title.

 # ALB
-
-<Overview />
+ALB (Application Load Balancer) provides L4/L7 traffic management for Kubernetes workloads with rule‑based routing, TLS, observability, and project isolation.
+
+<Overview />
docs/en/configure/networking/how_to/alb/auth.mdx (1)

134-134: Retarget link to annotations doc (and tighten wording).

The “Related Ingress Annotations” sentence should point to the Ingress-NGINX annotations page rather than the install guide, and “specific details” is redundant.

-[Ingress-nginx](../install_ingress_nginx_via_cluster_plugin.mdx) defines a series of annotations to configure the specific details of the authentication process. Below is a list of annotations that ALB supports, where "v" indicates support and "x" indicates no support.
+[Ingress-NGINX annotations](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/) define how to configure authentication. Below is a list of annotations that ALB supports, where "v" indicates support and "x" indicates no support.
docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (1)

8-10: Minor grammar and link context polish.

Improve readability and add “the” before “Kubernetes ecosystem.”

-The Alauda Container Platform supports multiple ingress traffic specifications in Kubernetes ecosystem.
-This document compares them ([Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx)) to help users make the right choice.
+The Alauda Container Platform supports multiple ingress traffic specifications in the Kubernetes ecosystem.
+This document compares [Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx) to help you choose.
docs/en/configure/networking/functions/configure_ingress.mdx (3)

18-18: Clarify controller behavior wording.

Small tweak to emphasize rules are derived from the Ingress.

-Ingress rules depend on the implementation of the Ingress Controller, which is responsible for listening to changes in Ingress and Service. After a new Ingress is created, when the Ingress Controller receives a request, it matches the forwarding rule from the Ingress and distributes the traffic to the specified internal routes, as shown in the diagram below.
+Ingress behavior depends on the Ingress Controller, which listens for Ingress/Service changes. After a new Ingress is created, the controller matches a forwarding rule derived from the Ingress and routes traffic to the specified internal Service, as shown below.

24-26: Add a “Prerequisites” section and fix list placement.

Add a heading and keep a blank line after the note block for proper rendering.

-:::
-- [install ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
-- [install alb as ingress-controller](../how_to/alb/deploy_alb.mdx)
+:::
+
+### Prerequisites
+- [Install ingress-nginx as the Ingress Controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
+- [Install ALB as the Ingress Controller](../how_to/alb/deploy_alb.mdx)

57-57: Tighten callout wording and define usage clearly.

Clarify ingressClassName for both controllers.

-2. `nginx` to using `ingress-nginx` controller, `$alb_name` to use alb as ingress controller.
+2. Set `ingressClassName: nginx` to use ingress-nginx. Set `ingressClassName: $alb_name` to use ALB.
docs/en/configure/networking/functions/configure_alb_rule.mdx (8)

5-5: Article usage and spacing.

“A Rule is …” and add a space before the parenthesis.

-Rule is a Custom Resource(CR) that defines how incoming requests are matched and processed by the ALB.
+A Rule is a Custom Resource (CR) that defines how incoming requests are matched and processed by the ALB.

7-7: Fix self-link to section anchor.

Use an in-page anchor rather than reloading the same file.

-Ingresses handled by ALB can be [auto translated to rules](./configure_alb_rule.mdx#alb_ingress).
+Ingresses handled by ALB can be [auto translated to rules](#alb_ingress).

10-10: Expand abbreviation and improve clarity.

Spell out Frontend (FT) on first mention.

-[install alb and ft](../how_to/alb/deploy_alb.mdx)
+[Install ALB and Frontend (FT)](../how_to/alb/deploy_alb.mdx)

61-68: Header key casing consistency.

Earlier text says “header’s location,” but the DSL uses LOCATION. Align to one form (prefer consistent uppercase keys).


119-129: Polish table headers and naming.

Capitalize “Link” and use consistent “Keepalive” casing.

-| Feature          | Description                                                               |link|
+| Feature          | Description                                                               | Link |
@@
-| KeepAlive         | Enables or disables the keepalive feature for the application.           |[keepalive](../how_to/alb/tcp_http_keepalive.mdx)|
+| Keepalive        | Enables or disables the keepalive feature for the application.            |[keepalive](../how_to/alb/tcp_http_keepalive.mdx)|

141-152: Web UI phrasing.

Use “Web UI” and vary repeated “Click …” phrasing.

-### using web console
+### Using the Web UI
@@
-Each input item on the webui corresponds to a field of the CR
+Each input item on the Web UI corresponds to a field of the CR.

160-166: Protocol naming and clarity.

Prefer “gRPC over TLS (gRPCS)” and tighten text.

-If the frontend protocol (ft) is HTTPS or GRPCS, the rule can also be configured to use HTTPS.
-You can specify the certificate either in the rule or in the ingress to match the certificate for that specific port.
+If the frontend protocol (FT) is HTTPS or gRPC over TLS (gRPCS), the rule can also use HTTPS.
+You can specify the certificate in the Rule or via Ingress to match a certificate for that port.

176-186: Convert inline steps to a proper list.

Improves readability and MDX rendering.

-#### Edge Mode
+#### Edge Mode
@@
-To achieve this, you need to
-1. create ft use https protocol
-2. create rule with backend protocol http, and specify cert via `.spec.certificate_name`
+To achieve this:
+1. Create an FT using the HTTPS protocol.
+2. Create a Rule with backend protocol HTTP, and specify the cert via `.spec.certificate_name`.
@@
-#### Re-encrypt Mode
+#### Re-encrypt Mode
@@
-To achieve this, you need to
-1. create ft use https protocol
-2. create rule with backend protocol https, and specify cert via `.spec.certificate_name`
+To achieve this:
+1. Create an FT using the HTTPS protocol.
+2. Create a Rule with backend protocol HTTPS, and specify the cert via `.spec.certificate_name`.
docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx (4)

5-5: Title casing/naming nit: prefer “Ingress-NGINX”.

Suggest polishing the H1 for brand/style consistency.

-# ALB with Ingress-nginx Annotation Compatibility
+# ALB with Ingress-NGINX Annotation Compatibility

11-12: Fix grammar and add a quick legend for symbols.

Shorten and clarify.

-ALB supports partial of those annotations.
+ALB supports a subset of those annotations.
+
+Legend: v = supported; x = not supported; o = partially supported or achievable via configuration.

117-118: Clarify semantics: ModSecurity vs CIDR allow/deny.

IP allow/deny via ModSecurity isn’t identical to nginx allow/deny (evaluation order, match behavior, CIDR nuances). Add a brief note to avoid user confusion.

-| nginx.ingress.kubernetes.io/denylist-source-range                    | CIDR                       | o can achieve similar effect through [modsecurity](../how_to/alb/modsecurity.mdx)                            |
-| nginx.ingress.kubernetes.io/whitelist-source-range                   | CIDR                       | o can achieve similar effect through [modsecurity](../how_to/alb/modsecurity.mdx)                            |
+| nginx.ingress.kubernetes.io/denylist-source-range                    | CIDR                       | o Similar effect via [ModSecurity](../how_to/alb/modsecurity.mdx); semantics differ from nginx allow/deny.   |
+| nginx.ingress.kubernetes.io/whitelist-source-range                   | CIDR                       | o Similar effect via [ModSecurity](../how_to/alb/modsecurity.mdx); semantics differ from nginx allow/deny.   |

127-128: Use readable link text: “OpenTelemetry”.

Minor polish to improve scannability.

-| nginx.ingress.kubernetes.io/enable-opentelemetry                     | "true" or "false"          | v [otel](../how_to/alb/otel.mdx)                                                                             |
-| nginx.ingress.kubernetes.io/opentelemetry-trust-incoming-span        | "true" or "false"          | v [otel](../how_to/alb/otel.mdx)                                                                             |
+| nginx.ingress.kubernetes.io/enable-opentelemetry                     | "true" or "false"          | v [OpenTelemetry](../how_to/alb/otel.mdx)                                                                     |
+| nginx.ingress.kubernetes.io/opentelemetry-trust-incoming-span        | "true" or "false"          | v [OpenTelemetry](../how_to/alb/otel.mdx)                                                                     |

Comment on lines +9 to +26
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
nginx.ingress.kubernetes.io/rewrite-target: /$2
name: demo
spec:
ingressClassName: alb
rules:
- http:
paths:
- backend:
service:
name: frontend
port:
number: 8080
path: /(prefix-x)(/|$)(.*)
pathType: ImplementationSpecific
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

❓ Verification inconclusive

Ingress example likely incorrect: NGINX annotations under alb class; missing use-regex; wrong capture group.

  • If this is Ingress-NGINX, set ingressClassName: ingress-nginx and add nginx.ingress.kubernetes.io/use-regex: "true".
  • If this is ALB, replace NGINX annotations with ALB-supported ones (or drop this section).
  • The rewrite should use $3 (not $2) for your regex.
 metadata:
-  nginx.ingress.kubernetes.io/rewrite-target: /$2
+  nginx.ingress.kubernetes.io/use-regex: "true"
+  nginx.ingress.kubernetes.io/rewrite-target: /$3
 spec:
-  ingressClassName: alb
+  ingressClassName: ingress-nginx
@@
-        path: /(prefix-x)(/|$)(.*)
+        path: /(prefix-x)(/|$)(.*)
         pathType: ImplementationSpecific

If ALB supports an equivalent annotation, please switch to the ALB key and keep /\$3. Do you want me to provide the ALB-specific example?


Rework URL rewrite example for ALB vs NGINX Ingress

  • Remove NGINX annotations when using ingressClassName: alb. The AWS ALB Controller does not support nginx.ingress.kubernetes.io/use-regex or nginx.ingress.kubernetes.io/rewrite-target (stackoverflow.com).
  • For ALB, define redirect/forward actions using ALB annotations (e.g. alb.ingress.kubernetes.io/actions.<name> and alb.ingress.kubernetes.io/conditions.<name>), or call out that regex-based path rewrites aren’t supported by ALB.
  • If you intend to use the NGINX Ingress Controller instead:
    • Change ingressClassName to ingress-nginx.
    • Add nginx.ingress.kubernetes.io/use-regex: "true" (kubernetes.github.io).
    • Update the rewrite to /\$3 for the pattern /(prefix-x)(/|$)(.*), since $3 captures the remaining path segment (using $2 would include only the slash or end‐of‐string marker) (kubernetes.github.io).
  • Example diff for NGINX usage:
 metadata:
-  nginx.ingress.kubernetes.io/rewrite-target: /$2
+  nginx.ingress.kubernetes.io/use-regex: "true"
+  nginx.ingress.kubernetes.io/rewrite-target: /$3
 spec:
-  ingressClassName: alb
+  ingressClassName: ingress-nginx
@@
-        path: /(prefix-x)(/|$)(.*)
+        path: /(prefix-x)(/|$)(.*)
         pathType: ImplementationSpecific

Let me know if you’d like an ALB-specific example using alb.ingress.kubernetes.io/actions.*.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
nginx.ingress.kubernetes.io/rewrite-target: /$2
name: demo
spec:
ingressClassName: alb
rules:
- http:
paths:
- backend:
service:
name: frontend
port:
number: 8080
path: /(prefix-x)(/|$)(.*)
pathType: ImplementationSpecific
```
🤖 Prompt for AI Agents
In docs/en/configure/networking/how_to/alb/url_rewrite.mdx around lines 9 to 27,
the example uses NGINX-specific annotations and rewrite syntax while specifying
ingressClassName: alb; update the doc to either (A) show an ALB-compatible
example that removes nginx.* annotations and instead uses
alb.ingress.kubernetes.io/actions.<name> and
alb.ingress.kubernetes.io/conditions.<name> (or explicitly call out that ALB
does not support regex-based rewrites), or (B) convert the snippet to a correct
NGINX example by changing ingressClassName to ingress-nginx, adding
nginx.ingress.kubernetes.io/use-regex: "true", and updating the rewrite target
to /\$3 for the pattern /(prefix-x)(/|$)(.*); pick one approach and make the
content consistent with the chosen controller.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/en/configure/networking/architecture/understanding_alb.mdx (1)

88-103: Demo Ingress should specify ingressClassName for ALB.

Without an ingressClassName, the Ingress may be picked up by the wrong controller or not at all in multi-controller setups.

Apply:

 kind: Ingress
 metadata:
   name: hello-world
 spec:
+  ingressClassName: $alb_name  # replace with your ALB's IngressClass
   rules:
♻️ Duplicate comments (2)
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

12-26: Ingress example inconsistent and wrong capture group; add use-regex and fix target.

  • You’re using NGINX annotations with ingressClassName: alb. If ALB supports these keys, keep them but make the regex usage correct.
  • For /(prefix-x)(/|$)(.*), the tail is $3, not $2.
  • NGINX Ingress typically requires nginx.ingress.kubernetes.io/use-regex: "true" with pathType: ImplementationSpecific.
 metadata:
-  nginx.ingress.kubernetes.io/rewrite-target: /$2
+  nginx.ingress.kubernetes.io/use-regex: "true"
+  nginx.ingress.kubernetes.io/rewrite-target: /$3
   name: demo
 spec:
-  ingressClassName: alb
+  ingressClassName: alb
@@
-        path: /(prefix-x)(/|$)(.*)
+        path: /(prefix-x)(/|$)(.*)
         pathType: ImplementationSpecific
docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1)

52-63: Critical: resource table keys don’t match example YAML or schema.

The table uses .spec.config.resource* (singular) but the example and typical schemas use .spec.config.resources* (plural), including nested alb limits/requests. This will mislead users.

Apply:

-#### Resource Configuration 
-resource related field describes the deployment configuration for the alb.
+#### Resource configuration
+Resource-related fields describe ALB pod resource settings.
@@
-| `.spec.config.nodeSelector` |map[string]string | the node selector for the alb |
-| `.spec.config.replicas` | int,optional default 3 | the number of replicas for the alb |
-| `.spec.config.resource.limit` | k8s container-resource,optional |  limit of nginx container of alb |
-| `.spec.config.resource.request` | k8s container-resource,optional |  request of nginx container of alb |
-| `.spec.config.resource.alb.limit` | k8s container-resource,optional |  limit of alb container of alb |
-| `.spec.config.resource.alb.request` | k8s container-resource,optional | request of alb container of alb |
-| `.spec.config.antiAffinityKey` | string,optional default local | k8s antiAffinityKey |
+| `.spec.config.nodeSelector` | map[string]string | Node selector for the ALB. |
+| `.spec.config.replicas` | int, optional, default 3 | Number of ALB replicas. |
+| `.spec.config.resources.limits` | k8s container resources, optional | Limits for the nginx/OpenResty container. |
+| `.spec.config.resources.requests` | k8s container resources, optional | Requests for the nginx/OpenResty container. |
+| `.spec.config.resources.alb.limits` | k8s container resources, optional | Limits for the ALB controller/sidecar. |
+| `.spec.config.resources.alb.requests` | k8s container resources, optional | Requests for the ALB controller/sidecar. |
+| `.spec.config.antiAffinityKey` | string, optional, default `local` | Pod anti-affinity topology key. |
🧹 Nitpick comments (41)
docs/en/configure/networking/how_to/alb/auth.mdx (2)

134-134: Link target change: verify path + tighten wording.

  • Please confirm the relative path resolves at build time.
  • Consider trimming “specific details” → “details”.
-[Ingress-nginx](../install_ingress_nginx_via_cluster_plugin.mdx) defines a series of annotations to configure the specific details of the authentication process.
+[Ingress-nginx](../install_ingress_nginx_via_cluster_plugin.mdx) defines a series of annotations to configure the details of the authentication process.

101-121: Ingress example: consider specifying ingressClass to target ALB.

Without ingressClassName: alb, selection depends on default controller behavior.

 metadata:
   name: auth-file
   annotations:
     "nginx.ingress.kubernetes.io/auth-type": "basic"
     "nginx.ingress.kubernetes.io/auth-secret": "default/auth-file"
     "nginx.ingress.kubernetes.io/auth-secret-type": "auth-file"
 spec:
+  ingressClassName: alb
   rules:
docs/en/configure/networking/how_to/alb/cors.mdx (2)

9-11: Improve CRD field description grammar for enableCORS.

Current phrasing is hard to parse.

-enableCORS:
-  description: enableCORS is the switch whether enable cross domain,
-    when EnableCORS is false, alb2 transports information to backend
-    servers which determine whether allow cross-domain
+enableCORS:
+  description: Enables CORS handling at ALB. When false, ALB forwards requests
+    unchanged and the backend decides whether to allow cross‑origin access.

8-20: CORS options likely incomplete: consider documenting methods/credentials/expose/max-age.

Most deployments need allowMethods, allowCredentials, exposeHeaders, and maxAge, plus how OPTIONS is handled (auto 204 vs upstream). If unsupported by ALB today, call that out explicitly.

docs/en/configure/networking/concepts/gatewayapi.mdx (2)

6-9: Nice context; consider naming the three personas explicitly.

E.g., “infrastructure provider, cluster operator, and application developer” improves scannability.


12-14: Clarify supported Gateway API/Kubernetes versions.

State the supported Gateway API version (v1 or v1beta1) and minimum Kubernetes version; helps users pick correct apiVersion.

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (2)

6-6: Unify capitalization: use “GatewayAPI”.

-# Configure GatewayApi Gateway via ALB
+# Configure GatewayAPI Gateway via ALB

36-36: Confirm label as the binding mechanism between Gateway and ALB.

Is alb.cpaas.io/alb-ref (label) the canonical way to bind a Gateway to an ALB2? If so, add a one‑line note stating the controller watches this label. If it should be an annotation instead, please switch.

Also applies to: 73-76

docs/en/configure/networking/how_to/alb/header_modification.mdx (4)

18-28: Tighten Go comment phrasing; use concise, capitalized style.

Improves readability and matches Go conventions.

 type RewriteRequestConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // set header, which values are variable name 
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
-	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // add header, which values could be multiple and which values are variable name
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // Set header; values are variable names
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header; multiple values allowed
+	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // Add header; multiple values allowed; values are variable names
 }
 type RewriteResponseConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header; multiple values allowed
 }

30-41: Polish wording and capitalization in notes and example outcome.

-Note: in `*_var` maps the key is the header name and the value is the ALB context variable name.
+Note: In `*_var` maps, the key is the header name and the value is the ALB context variable name.
@@
-will add key `x-my-host` and value of request host header to request header.
-you can refer to the [nginx variable](http://nginx.org/en/docs/varindex.html) for the variable names.
+This adds the `x-my-host` header with the value of the request Host header.
+You can refer to [NGINX variables](http://nginx.org/en/docs/varindex.html) for variable names.

44-47: Fix minor grammar in variable descriptions.

-| `first_forward_or_remote_addr` | the first forwarded address or the remote address, default is `remote_addr` |
-| `first_forward`                | the first forwarded address , default is empty string                       |
+| `first_forward_or_remote_addr` | The first forwarded address or the remote address; defaults to `remote_addr`. |
+| `first_forward`                | The first forwarded address; defaults to an empty string.                    |

49-59: Capitalize section and tighten example intros.

-## examples
-To add an Authorization header from a cookie, you can use:
+## Examples
+Add an Authorization header from a cookie:
@@
-To set HSTS, you can use:
+Set HSTS:
docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (3)

6-8: Capitalize heading; improve link label casing.

-## prerequisites
-[install ingress-nginx](./install_ingress_nginx_via_cluster_plugin.mdx)
+## Prerequisites
+[Install ingress-nginx](./install_ingress_nginx_via_cluster_plugin.mdx)

9-17: Use Title Case for section headings for consistency.

-## max connections
+## Max connections
@@
-## timeout
+## Timeout
@@
-## sticky session
+## Sticky sessions

18-25: Fix grammar in table entry.

-|remove header in request| set a empty header in request |
+|remove header in request| set an empty request header |
docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (3)

5-5: Title grammar: “Highly Available”.

-# Deploy High Available VIP for ALB
+# Deploy a Highly Available VIP for ALB

24-24: Punctuate the sentence and end link with a period.

-* Please confirm with the network engineer the IP address (public IP, private IP, VIP) or domain name of the ALB service before deployment. If you want to use a domain name as the address for external traffic to access the ALB, you need to apply for a domain name in advance and configure domain name resolution. It is recommended to use a commercial Load Balancer device to provide a VIP, if not, you can use the [Pure Software Data Center LB Solution (Alpha)](../soft_data_center_lb_solution.mdx)
+* Please confirm with the network engineer the IP address (public IP, private IP, VIP) or domain name of the ALB service before deployment. If you want to use a domain name as the address for external traffic to access the ALB, apply for the domain in advance and configure DNS. It is recommended to use a commercial Load Balancer device to provide a VIP; if not, you can use the [Pure Software Data Center LB Solution (Alpha)](../soft_data_center_lb_solution.mdx).

28-35: Clarify health check table text.

-    | **Protocol** | The protocol type of the health check, it is recommended to use TCP. |
-    | **Response Timeout** | The time required to receive the health check response, it is recommended to configure it to 2 seconds. |
-    | **Check Interval** | The time interval for the health check, it is recommended to configure it to 5 seconds. |
-    | **Unhealthy Threshold** | The number of consecutive failures after which the health check status of the backend server is determined to be failed, it is recommended to configure it to 3 times. |    
+    | **Protocol** | Protocol used for the health check; recommended: TCP. |
+    | **Response Timeout** | Time allowed to receive the health check response; recommended: 2 seconds. |
+    | **Check Interval** | Interval between health checks; recommended: 5 seconds. |
+    | **Unhealthy Threshold** | Consecutive failures before marking backend unhealthy; recommended: 3. |    
docs/en/configure/networking/functions/configure_alb_rule.mdx (5)

14-16: Clarify callout wording and capitalization.

-:::note
-rule must be attached to a frontend and alb via label.
+:::note
+A Rule must be attached to a Frontend and an ALB via labels.
 :::

152-152: “webui” → “Web UI”.

-Each input item on the webui corresponds to a field of the CR
+Each input item on the Web UI corresponds to a field of the CR

154-154: Capitalize subsection heading.

-### using the CLI
+### Using the CLI

160-186: HTTPS section casing and step grammar fixes.

-## Https
+## HTTPS
@@
-#### Edge Mode
+#### Edge mode
@@
-1. create ft use https protocol
-2. create rule with backend protocol http, and specify cert via `.spec.certificate_name`
+1. Create an ft using the HTTPS protocol.
+2. Create a rule with `backendProtocol: http`, and specify a certificate via `.spec.certificate_name`.
@@
-#### Re-encrypt Mode
+#### Re-encrypt mode
@@
-1. create ft use https protocol
-2. create rule with backend protocol https, and specify cert via `.spec.certificate_name`
+1. Create an ft using the HTTPS protocol.
+2. Create a rule with `backendProtocol: https`, and specify a certificate via `.spec.certificate_name`.

203-213: Capitalize “SSL strategy” heading and tighten bullets.

-#### ssl strategy \{#alb_ingress_ssl_strategy}
+#### SSL strategy \{#alb_ingress_ssl_strategy}
@@
-- `.spec.config.defaultSSLStrategy`: Defines the SSL strategy for ingresses without certificates
-- `.spec.config.defaultSSLCert`: Sets the default certificate in the format `$secret_ns/$secret_name`
+- `.spec.config.defaultSSLStrategy`: SSL strategy for ingresses without certificates.
+- `.spec.config.defaultSSLCert`: Default certificate in the format `$secret_ns/$secret_name`.
@@
-- **Never**: Do not create rules on HTTPS ports (default behavior)
-- **Always**: Create rules on HTTPS ports using the default certificate
+- **Never**: Do not create rules on HTTPS ports (default).
+- **Always**: Create rules on HTTPS ports using the default certificate.
docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (4)

8-10: Grammar: add article and refine sentence.

-The Alauda Container Platform supports multiple ingress traffic specifications in Kubernetes ecosystem.
-This document compares them ([Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx)) to help users make the right choice.
+The Alauda Container Platform supports multiple ingress traffic specifications in the Kubernetes ecosystem.
+This document compares them—[Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx)—to help users choose appropriately.

22-24: Subject–verb agreement.

-Ingress is the standard specification adopted by the Kubernetes community and are recommended for default use.
+Ingress is the standard specification adopted by the Kubernetes community and is recommended for default use.

27-30: Tighten Gateway API wording and fix pluralization.

-GatewayAPI provides more flexible isolation mode, however they are not as mature as Ingress.
-By using GatewayAPI developer can create their own isolated ALB instances to handle GatewayAPI rules.
-Therefore, if you need to delegate the creation and management of ALB instances to developers, you need to choose to use GatewayAPI.
+Gateway API provides a more flexible isolation model but is not as mature as Ingress.
+Using Gateway API, developers can create their own isolated ALB instances to handle Gateway API rules.
+If you need to delegate the creation and management of ALB instances to developers, choose Gateway API.

33-35: Spacing and naming consistency (Gateway API).

-ALB Rule(Load Balancer in the UI) provides the most flexible traffic match rules and the most capabilities. In fact, both Ingress and GatewayAPI are implemented by translating them to ALB Rules.
-However, the ALB Rule is more complex than Ingress and GatewayAPI and is not a community-standard API. Therefore, we recommend using it only when Ingress and GatewayAPI don't meet your needs.
+ALB Rule (Load Balancer in the UI) provides the most flexible traffic match rules and the most capabilities. In fact, both Ingress and Gateway API are implemented by translating them to ALB Rules.
+However, ALB Rule is more complex than Ingress and Gateway API and is not a community-standard API. Therefore, we recommend using it only when Ingress and Gateway API don't meet your needs.
docs/en/configure/networking/architecture/understanding_alb.mdx (3)

29-46: Nit: tighten YAML comments and keep namespace consistent with other pages.

  • “the ip address of node where alb been deployed” → improve grammar.
  • Other pages use the cpaas-system namespace; this example uses kube-system. Consider aligning or noting both are acceptable.

Apply:

 metadata:
-    name: alb-demo
-    namespace: kube-system
+    name: alb-demo
+    namespace: cpaas-system  # align with other ALB docs, or add a note if kube-system is intended
@@
-    address: "172.20.0.5"  # the ip address of node where alb been deployed
+    address: "172.20.0.5"  # Node IP where the ALB runs (hostNetwork)

106-106: Define the IP used in the curl example.

Make it explicit this is the ALB address (spec.address or the LB Service IP/FQDN when in container mode).

Apply:

-Now you can access the app via `curl http://${ip}`
+Now you can access the app via `curl http://<ALB_ADDRESS>` (use `.spec.address` in host mode or the LoadBalancer Service address in container mode).

166-169: Unify component naming: “ALB Operator” vs “ALB-Operator”.

Use one style across the docs; earlier sections use “ALB Operator”.

Apply:

-### ALB-Operator
+### ALB Operator
@@
-ALB-Operator, a default component deployed in the cluster, is an operator for ALB.
+ALB Operator, a default component deployed in the cluster, manages ALB resources.
docs/en/configure/networking/functions/configure_ingress.mdx (4)

18-24: Improve “Implementation Method” wording; add a prerequisites header before controller install links.

Minor clarity tweak and structure the controller install links as prerequisites.

Apply:

-Ingress rules depend on the implementation of the Ingress Controller, which is responsible for listening to changes in Ingress and Service. After a new Ingress is created, when the Ingress Controller receives a request, it matches the forwarding rule from the Ingress and distributes the traffic to the specified internal routes, as shown in the diagram below.
+Ingress behavior depends on the Ingress controller, which watches Ingress/Service changes. After an Ingress is created, the controller matches incoming requests against the Ingress rules and routes traffic to the configured Services, as shown below.
@@
-:::note
+:::note
@@
-:::
-- [install ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
-- [install alb as ingress-controller](../how_to/alb/deploy_alb.mdx)
+:::
+
+### Prerequisites
+- [Install ingress-nginx](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
+- [Deploy ALB](../how_to/alb/deploy_alb.mdx)

53-59: Clarify Callout 2 about ingressClassName and ALB.

Current phrasing is hard to parse and doesn’t show how to set the class for ALB.

Apply:

-2. `nginx` to using `ingress-nginx` controller, `$alb_name` to use alb as ingress controller.
+2. Set `spec.ingressClassName: nginx` to use the ingress-nginx controller, or set `spec.ingressClassName: $alb_name` to use ALB (replace `$alb_name` with your ALB’s IngressClass).

61-61: Grammar: “Creating an Ingress”.

Apply:

-## Creating a Ingress by using the web console
+## Creating an Ingress by using the web console

82-86: Grammar: “Creating an Ingress” + ensure code block ends cleanly.

Apply:

-## Creating a Ingress by using the CLI
+## Creating an Ingress by using the CLI
@@
-kubectl apply -f nginx-ingress.yaml
+kubectl apply -f nginx-ingress.yaml
docs/en/configure/networking/how_to/alb/deploy_alb.mdx (7)

65-73: Tighten networking description; minor grammar.

Improve clarity and casing; keep address responsibility explicit.

Apply:

-#### Networking Configuration \{#alb_networking_configuration\}
-Networking fields describe how to access the ALB. For example, in `host` mode, alb will use hostnetwork, and you can access the ALB via the node IP.
+#### Networking configuration {#alb_networking_configuration}
+Networking fields describe how to access the ALB. In `host` mode, the ALB uses hostNetwork and is reachable via the node IP; in `container` mode, it uses a LoadBalancer Service.
@@
-| `.spec.address` | string,required | you could manually specify the address of alb |
+| `.spec.address` | string, required | Manually specified ALB address (node IP for host mode, or leave empty in container mode to use the LB Service address). |

74-80: Capitalize section title; add descriptions for project fields.

Also ensure these keys match the CRD (projects vs project).

Apply:

-#### project configuration
-| Field | Type | 
-|-------|------|
-| `.spec.config.projects` | []string,required |
-| `.spec.config.portProjects` | string,optional |
-| `.spec.config.enablePortProject` | bool,optional |
+#### Project configuration
+| Field | Type | Description |
+|-------|------|-------------|
+| `.spec.config.projects` | []string, required | Projects (namespaces set) this ALB serves. Use `ALL_ALL` for cluster-wide. |
+| `.spec.config.portProjects` | string, optional | Project name for port-range binding (port-project mode). |
+| `.spec.config.enablePortProject` | bool, optional | Enable port-project mode for per-project port ranges. |

81-88: Clarify effects of project and port-project modes.

Make consequences explicit; current bullets are terse.

Apply:

-1. In the web UI, only users in the given project can find and configure this ALB.
-2. This ALB will handle ingress resources belonging to this project. Please refer to [ingress-sync](../../functions/configure_alb_rule.mdx#alb_ingress_sync).
+1. In the web UI, only users in the selected project(s) can view and configure this ALB.
+2. The ALB only translates/serves Ingresses in namespaces belonging to the configured project set. See [ingress-sync](../../functions/configure_alb_rule.mdx#alb_ingress_sync).
@@
-1. You cannot create ports that do not belong to the port range assigned to the project.
+1. Listener ports must fall within the assigned project port range.

89-93: Capitalize and rephrase “tweak configuration” section.

Also clarify that these are fields in the ALB CR.

Apply:

-#### tweak configuration
-there are some global config which can be tweaked in alb cr.
+#### Tweak configuration
+Some global behaviors can be tuned via fields on the ALB CR:

94-109: UI text polish and parameter descriptions.

Minor grammar; clarify “Allocated By”.

Apply:

-### Operation On ALB
+### Operations on ALB
@@
-##### Using the web console.
+##### Using the web console
@@
-Each input item in the web UI corresponds to a field of the CR:
+Each input item in the web UI corresponds to a CR field:
@@
-|Allocated By| `Instance` means project mode, and you could select project below, port means port-project mode, you could assign port-range after create alb |
+|Allocated By| `Instance` = project mode (select projects below). `Port` = port-project mode (assign a port range after creating the ALB). |

192-201: Frontend callouts: fix grammar and be explicit about protocol behavior.

Minor phrasing and punctuations.

Apply:

-1. alb label: Required, indicate the ALB instance to which this `Frontend` belongs to.
+1. ALB label: Required. Indicates which ALB this `Frontend` belongs to.
@@
-3. port: which port which listen on.
-4. protocol: what protocol this port uses.
+3. port: Listener port.
+4. protocol: Listener protocol.
@@
-   - When selecting the gRPC protocol, the backend protocol defaults to gRPC, which does not support session persistence.If a certificate is set for the gRPC protocol, the load balancer will unload the gRPC certificate and forward the unencrypted gRPC traffic to the backend service.
+   - For gRPC, the backend protocol defaults to gRPC and does not support session persistence. If a certificate is set for gRPC, the load balancer terminates TLS (gRPCS) and forwards plaintext gRPC to the backend.

213-235: UI/CLI headings + “webui” casing.

Minor style fixes for consistency.

Apply:

-### Operation On Frontend
+### Operations on Frontend
@@
-##### using the web console
+##### Using the web console
@@
-Each input item on the webui corresponds to a field of the CR
+Each input item in the web UI corresponds to a field of the CR:
@@
-##### using the CLI
+##### Using the CLI
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 60fb8e2 and 252fd07.

⛔ Files ignored due to path filters (4)
  • docs/en/configure/networking/assets/create_alb_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_ft_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_rule_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/gatewayapi-architecture.png is excluded by !**/*.png
📒 Files selected for processing (26)
  • docs/en/configure/networking/architecture/understanding_alb.mdx (3 hunks)
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx (7 hunks)
  • docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/concepts/gatewayapi.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_ingress.mdx (3 hunks)
  • docs/en/configure/networking/how_to/alb/auth.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/cors.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/decision_makeing_for_performance_selection_of_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/header_modification.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/index.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/otel.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1 hunks)
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx (0 hunks)
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx (0 hunks)
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx (0 hunks)
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (2 hunks)
  • docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1 hunks)
💤 Files with no reviewable changes (3)
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx
✅ Files skipped from review due to trivial changes (5)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx
  • docs/en/configure/networking/how_to/alb/decision_makeing_for_performance_selection_of_alb.mdx
🚧 Files skipped from review as they are similar to previous changes (5)
  • docs/en/configure/networking/how_to/alb/index.mdx
  • docs/en/configure/networking/how_to/alb/otel.mdx
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx
🧰 Additional context used
🪛 LanguageTool
docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx

[grammar] ~9-~9: There might be a mistake here.
Context: ..._cluster_plugin.mdx) ## max connections [max-worker-connections](https://kubernet...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...map/#max-worker-connections) ## timeout [config timeout](https://kubernetes.githu...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ...roxy-connect-timeout) ## sticky session [config sticky session](https://kubernete...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ...ity/cookie/#sticky-sessions) ## header modification |action|link| |--|--| |set header in request|[proxy-se...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...onfigmap/#hide-headers)| ## url rewrite [rewrite](https://kubernetes.github.io/in...

(QB_NEW_EN)


[grammar] ~29-~29: There might be a mistake here.
Context: ...## HSTS (HTTP Strict Transport Security) [configure HSTS](https://kubernetes.github.io/ingr...

(QB_NEW_EN)


[uncategorized] ~32-~32: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ginx-configuration/configmap/#hsts) ## rate limiting [config rate limiting](https://kubernet...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~32-~32: There might be a mistake here.
Context: ...ation/configmap/#hsts) ## rate limiting [config rate limiting](https://kubernetes...

(QB_NEW_EN)


[grammar] ~38-~38: There might be a mistake here.
Context: ...modsecurity/) ## forward-header control [x-forwarded-prefix-header](https://kuber...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...uthentication) ### tls edge termination [backend protocol](https://kubernetes.git...

(QB_NEW_EN)


[grammar] ~49-~49: There might be a mistake here.
Context: ...ions/#backend-protocol) ### passthrough [ssl-passthrough]https://kubernetes.gith...

(QB_NEW_EN)

docs/en/configure/networking/functions/configure_ingress.mdx

[grammar] ~24-~24: There might be a mistake here.
Context: ... add the 80 and 443 listening ports. ::: - [install ingress-nginx as ingress-control...

(QB_NEW_EN)


[grammar] ~25-~25: There might be a mistake here.
Context: ...tall ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx) - [install alb as ingress-controller](../ho...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...dx) - install alb as ingress-controller ## Example Ingress: ```yaml # nginx-ingres...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ...inxcontroller,$alb_name` to use alb as ingress controller. 3. If you only want...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ..._name` to use alb as ingress controller. 3. If you only want to run ingress locally,...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx

[grammar] ~6-~6: Ensure spelling is correct
Context: ...52c10984d03564c0cdec45 --- # Configure GatewayApi Gateway via ALB An inbound gateway (Ga...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/en/configure/networking/how_to/alb/url_rewrite.mdx

[grammar] ~6-~6: There might be a mistake here.
Context: ...ps to rewrite the URL. ## Configuration via ingress annotation ```yaml apiVersio...

(QB_NEW_EN)


[grammar] ~48-~48: There might be a mistake here.
Context: ...rget: /$3 ``` Example: client requests /prefix-x/abc; backend receives `/abc`.

(QB_NEW_EN)

docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx

[grammar] ~8-~8: There might be a mistake here.
Context: ...multiple ingress traffic specifications in Kubernetes ecosystem. This document com...

(QB_NEW_EN)


[grammar] ~8-~8: There might be a mistake here.
Context: ... specifications in Kubernetes ecosystem. This document compares them ([Service](....

(QB_NEW_EN)

docs/en/configure/networking/concepts/gatewayapi.mdx

[grammar] ~12-~12: There might be a mistake here.
Context: ...ateway resource maps to an ALB resource. Listeners and routers are handled direct...

(QB_NEW_EN)

docs/en/configure/networking/functions/configure_alb_rule.mdx

[grammar] ~1-~1: There might be a mistake here.
Context: # Configure ALB Rules ## Introduction ### What is a Rule? Rule i...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ... must be attached to a frontend and alb via label. ::: ```yaml apiVersion: crd.ala...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ...ttached to a frontend and alb via label. ::: ```yaml apiVersion: crd.alauda.io/v...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...e Frontend to which this rule belongs. 2. Required, indicate the ALB to which this...

(QB_NEW_EN)


[grammar] ~58-~58: There might be a mistake here.
Context: ... used to describe the matching criteria. For example, the rule below matches a re...

(QB_NEW_EN)


[grammar] ~116-~116: There might be a mistake here.
Context: ...rity` using an integer value. ## Action After a request matches a rule, you can ...

(QB_NEW_EN)


[grammar] ~121-~121: There might be a mistake here.
Context: ...meout](../how_to/alb/l4_l7_timeout.mdx)| | Redirect | Redirects incoming ...

(QB_NEW_EN)


[grammar] ~122-~122: There might be a mistake here.
Context: ...irect](../how_to/alb/http_redirect.mdx)| | CORS | Enables Cross-Origi...

(QB_NEW_EN)


[grammar] ~123-~123: There might be a mistake here.
Context: ... |cors| | Header Modification | Allows modifi...

(QB_NEW_EN)


[grammar] ~124-~124: There might be a mistake here.
Context: ...(../how_to/alb/header_modification.mdx)| | URL Rewrite | Rewrites the URL of...

(QB_NEW_EN)


[grammar] ~125-~125: There might be a mistake here.
Context: ...rewrite](../how_to/alb/url_rewrite.mdx)| | WAF | Integrates Web Appl...

(QB_NEW_EN)


[grammar] ~126-~126: There might be a mistake here.
Context: ... |waf| | OTEL | Enables OpenTelemet...

(QB_NEW_EN)


[grammar] ~127-~127: There might be a mistake here.
Context: ...g. |otel| | Keepalive | Enables or disable...

(QB_NEW_EN)


[grammar] ~131-~131: There might be a mistake here.
Context: ...## backend protocol {#backend_protocol} By default, the backend protocol is set ...

(QB_NEW_EN)


[grammar] ~134-~134: There might be a mistake here.
Context: ...ession Affinity Policy {#service_group} You can configure one or more services w...

(QB_NEW_EN)


[grammar] ~141-~141: There might be a mistake here.
Context: ...ty_policy_in_alb.mdx). ## Creating Rule ### Using web console ![](../assets/create_r...

(QB_NEW_EN)


[style] ~147-~147: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the load balancer. 4. Click on the name of the listener port. 5. Cl...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~148-~148: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the listener port. 5. Click Add Rule. 6. Refer to the following...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[grammar] ~152-~152: Ensure spelling is correct
Context: ... Click Add. Each input item on the webui corresponds to a field of the CR ### u...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: Ensure spelling is correct
Context: ... the frontend protocol (ft) is HTTPS or GRPCS, the rule can also be configured to use...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: There might be a mistake here.
Context: ...ule can also be configured to use HTTPS. You can specify the certificate either i...

(QB_NEW_EN)


[grammar] ~166-~166: There might be a mistake here.
Context: .... ### Certificate Annotation in Ingress Certificates can be referenced across na...

(QB_NEW_EN)


[grammar] ~172-~172: There might be a mistake here.
Context: ...Certificate in Rule {#certificate_name} In .spec.certificate_name, the format ...

(QB_NEW_EN)


[grammar] ~175-~175: There might be a mistake here.
Context: ...et_namespace/$secret_name` ### TLS Mode #### Edge Mode In edge mode, the client commu...

(QB_NEW_EN)


[grammar] ~176-~176: There might be a mistake here.
Context: ...ecret_name` ### TLS Mode #### Edge Mode In edge mode, the client communicates wi...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ...th backend services using HTTP protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~179-~179: There might be a mistake here.
Context: ...ve this: 1. create ft use https protocol 2. create rule with backend protocol http, ...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol http, and specify cert...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te rule with backend protocol http, and specify cert via .spec.certificate_name #### ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... ALB communicates with backend services using HTTPS protocol. To achieve this: 1. cre...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ...h backend services using HTTPS protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol https, and specify cer...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...e rule with backend protocol https, and specify cert via .spec.certificate_name ## I...

(QB_NEW_EN)


[grammar] ~188-~188: There might be a mistake here.
Context: ...s} ### ingress sync {#alb_ingress_sync} Each ALB creates an IngressClass with th...

(QB_NEW_EN)


[grammar] ~200-~200: There might be a mistake here.
Context: ....source.namespace` is ingress namespace. ::: #### ssl strategy {#alb_ingress_ss...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...sl strategy {#alb_ingress_ssl_strategy} For ingresses that do not have certifica...

(QB_NEW_EN)


[grammar] ~206-~206: There might be a mistake here.
Context: ...om resource with the following settings: - .spec.config.defaultSSLStrategy: Defines the SSL strategy for ingresses...

(QB_NEW_EN)


[grammar] ~210-~210: There might be a mistake here.
Context: ...$secret_name` Available SSL strategies: - Never: Do not create rules on HTTPS po...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/auth.mdx

[style] ~134-~134: This phrase is redundant. Consider writing “details”.
Context: ... series of annotations to configure the specific details of the authentication process. Below is...

(SPECIFIC_DETAILS)

docs/en/configure/networking/how_to/alb/cors.mdx

[grammar] ~3-~3: There might be a mistake here.
Context: # CORS ## Basic Concepts [CORS](https://developer.mozilla.org/en-U...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_alb.mdx

[grammar] ~7-~7: There might be a mistake here.
Context: ...70cb27c0597def5 --- # Deploy ALB ## ALB ALB is a custom resource that represents a ...

(QB_NEW_EN)


[grammar] ~52-~52: There might be a mistake here.
Context: ...e: nginx ``` #### Resource Configuration resource related field describes the deployment ...

(QB_NEW_EN)


[grammar] ~53-~53: There might be a mistake here.
Context: ...he deployment configuration for the alb. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~66-~66: There might be a mistake here.
Context: ... you can access the ALB via the node IP. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~69-~69: There might be a mistake here.
Context: ...d uses its address as the ALB address. | | .spec.address | string,required | yo...

(QB_NEW_EN)


[grammar] ~70-~70: There might be a mistake here.
Context: ...ld manually specify the address of alb | | .spec.config.vip.enableLbSvc | bool,...

(QB_NEW_EN)


[grammar] ~74-~74: There might be a mistake here.
Context: ...r Service. | #### project configuration | Field | Type | |-------|------| | `.s...

(QB_NEW_EN)


[grammar] ~75-~75: There might be a mistake here.
Context: ... project configuration | Field | Type | |-------|------| | `.spec.config.project...

(QB_NEW_EN)


[grammar] ~76-~76: There might be a mistake here.
Context: ...ation | Field | Type | |-------|------| | .spec.config.projects | []string,req...

(QB_NEW_EN)


[grammar] ~77-~77: There might be a mistake here.
Context: ...c.config.projects| []string,required | |.spec.config.portProjects` | string,o...

(QB_NEW_EN)


[grammar] ~78-~78: There might be a mistake here.
Context: ...config.portProjects| string,optional | |.spec.config.enablePortProject` | boo...

(QB_NEW_EN)


[grammar] ~82-~82: There might be a mistake here.
Context: ...project can find and configure this ALB. 2. This ALB will handle ingress resources b...

(QB_NEW_EN)


[grammar] ~90-~90: There might be a mistake here.
Context: ...obal config which can be tweaked in alb cr. - bind-nic - [ingr...

(QB_NEW_EN)


[grammar] ~91-~91: There might be a mistake here.
Context: ...ch can be tweaked in alb cr. - bind-nic - [ingress-sync](../../functions/configure_...

(QB_NEW_EN)


[grammar] ~105-~105: There might be a mistake here.
Context: ...eld of the CR: |Parameter| Description| |--|--| |Assigned Address| `.spec.addres...

(QB_NEW_EN)


[grammar] ~106-~106: There might be a mistake here.
Context: ...he CR: |Parameter| Description| |--|--| |Assigned Address| .spec.address| |All...

(QB_NEW_EN)


[grammar] ~107-~107: There might be a mistake here.
Context: ...|--| |Assigned Address| .spec.address| |Allocated By| Instance means project ...

(QB_NEW_EN)


[grammar] ~136-~136: There might be a mistake here.
Context: ...tate. 5. Click Update. #### Delete ##### Using the web console :::note After del...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ... (tcp|udp). In L4 Proxy use frontend to configure backend service directly. In L7 Proxy u...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ...d to configure backend service directly. In L7 Proxy use frontend to configure li...

(QB_NEW_EN)


[grammar] ~160-~160: There might be a mistake here.
Context: ..._rule.mdx) to configure backend service. If you need to add an HTTPS listener por...

(QB_NEW_EN)


[grammar] ~164-~164: There might be a mistake here.
Context: ...adings-in-section */} ### Prerequisites Create a ALB first. ### Configure Front...

(QB_NEW_EN)


[grammar] ~195-~195: There might be a mistake here.
Context: ...ntend name: Format as $alb_name-$port. 3. port: which port which listen on. 4. pro...

(QB_NEW_EN)


[grammar] ~196-~196: There might be a mistake here.
Context: ...t`. 3. port: which port which listen on. 4. protocol: what protocol this port uses. ...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...ed, Format as $secret_ns/$secret_name. 6. backendProtocol: what protocol the backe...

(QB_NEW_EN)


[grammar] ~207-~207: There might be a mistake here.
Context: ...alls back to the default serviceGroup. 8. [session_affinity_policy](./load_balancin...

(QB_NEW_EN)


[grammar] ~214-~214: There might be a mistake here.
Context: ... ### Operation On Frontend #### Creating ##### using the web console ![](../../assets/c...

(QB_NEW_EN)


[grammar] ~225-~225: Ensure spelling is correct
Context: ...k Add Port. Each input item on the webui corresponds to a field of the CR |Param...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~226-~226: There might be a mistake here.
Context: ... field of the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serv...

(QB_NEW_EN)


[grammar] ~227-~227: There might be a mistake here.
Context: ...the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serviceGroup.s...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx

[grammar] ~17-~17: There might be a mistake here.
Context: ...guration). | Annotation | Description | |---|---| | `metallb.universe.tf/loadBal...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ... | Annotation | Description | |---|---| | metallb.universe.tf/loadBalancerIPs ...

(QB_NEW_EN)


[grammar] ~22-~22: There might be a mistake here.
Context: ... pool to allocate from. | ## Method 2: Use external ALB device to provide VIP * P...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...the ports in use to reduce the downtime of ALB upgrade. The health check configura...

(QB_NEW_EN)


[grammar] ~31-~31: There might be a mistake here.
Context: ...h check, it is recommended to use TCP. | | Response Timeout | The time requir...

(QB_NEW_EN)


[grammar] ~32-~32: There might be a mistake here.
Context: ...ommended to configure it to 2 seconds. | | Check Interval | The time interval...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/header_modification.mdx

[grammar] ~10-~10: There might be a mistake here.
Context: ...annotation key | |---------|-----------------------------...

(QB_NEW_EN)


[grammar] ~11-~11: There might be a mistake here.
Context: ...---------------------------------------| | ingress | `alb.ingress.cpaas.io/rewrit...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...alb.ingress.cpaas.io/rewrite-response| | rule |alb.rule.cpaas.io/rewrite-r...

(QB_NEW_EN)


[grammar] ~30-~30: There might be a mistake here.
Context: ... value is the ALB context variable name. For example, add the following annotatio...

(QB_NEW_EN)


[grammar] ~44-~44: There might be a mistake here.
Context: ... | |--------------------------------|------...

(QB_NEW_EN)


[grammar] ~45-~45: There might be a mistake here.
Context: ...---------------------------------------| | first_forward_or_remote_addr | the f...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...mote address, default is remote_addr | | first_forward | the f...

(QB_NEW_EN)

🔇 Additional comments (10)
docs/en/configure/networking/how_to/alb/auth.mdx (1)

7-7: Title tweak LGTM.

Pluralizing to “Basic Concepts” reads better and matches section content.

docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

44-46: Rule CR example: capture group usage is correct.

rewrite_target: /$3 matches the regex and produces the intended /abc. Good.

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (2)

53-70: Verify enableAlb semantics in ALB2 spec.

config.enableAlb: false looks counterintuitive when creating an ALB for a Gateway. If this is required for “gateway mode,” add a short note explaining why; otherwise set it to true.


96-96: Link path update LGTM.

The new path to service annotations makes sense in the reorganized docs.

docs/en/configure/networking/how_to/alb/header_modification.mdx (1)

18-28: Resolved: Go block now uses // comments (previous bot comment addressed).

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1)

24-24: No action needed: referenced document exists and link is valid.

The file soft_data_center_lb_solution.mdx is present at docs/en/configure/networking/how_to/soft_data_center_lb_solution.mdx, which matches the relative link ../soft_data_center_lb_solution.mdx.

docs/en/configure/networking/functions/configure_alb_rule.mdx (1)

119-129: All cross-linked documentation files verified
All eight referenced MDX files under docs/en/configure/networking/how_to/alb/ were found, confirming that every link in the ALB rules feature table points to an existing document.

docs/en/configure/networking/architecture/understanding_alb.mdx (1)

12-13: Nice clarity on control/data plane roles.

The Operator/Instance split and CR-to-DSL flow are explained clearly and align with the rest of the docs.

docs/en/configure/networking/how_to/alb/deploy_alb.mdx (2)

164-171: Grammar: “an ALB”; verify CRD version for Frontend.

Small wording fix; also confirm apiVersion: crd.alauda.io/v1 is correct for Frontend while ALB uses v2beta1.

Apply:

-Create a ALB first.
+Create an ALB first.

251-281: Monitoring section reads well; LGTM.

The prerequisites and metric definitions are clear and actionable.

@woodgear woodgear force-pushed the feat/ACP-44097 branch 2 times, most recently from 5c5decf to 3ae0a2f Compare August 27, 2025 06:38
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

♻️ Duplicate comments (5)
docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1)

49-50: Fix malformed passthrough link

Proper markdown link formatting.

Apply:

-### Passthrough
-[ssl-passthrough]https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#ssl-passthrough)
+### Passthrough
+[ssl-passthrough](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#ssl-passthrough)
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

6-7: Controller/annotation mismatch: NGINX annotations with ingressClassName: alb.

This mixes NGINX-specific annotations with an ALB ingress class. Either convert this to a correct NGINX example or replace with ALB-supported configuration.

Option A — keep NGINX example (recommended for this snippet):

-## Configuration
-via ingress annotation
+## Configuration
+Via Ingress (NGINX) annotations
@@
 metadata:
-  nginx.ingress.kubernetes.io/rewrite-target: /$2
+  nginx.ingress.kubernetes.io/use-regex: "true"
+  nginx.ingress.kubernetes.io/rewrite-target: /$3
   name: demo
 spec:
-  ingressClassName: alb
+  ingressClassName: ingress-nginx
@@
-        path: /(prefix-x)(/|$)(.*)
+        path: /(prefix-x)(/|$)(.*)
         pathType: ImplementationSpecific

Option B — provide an ALB example: replace nginx.* keys with ALB’s rewrite mechanism (annotations or Rule CR), and keep ingressClassName: alb. I can draft the ALB-specific snippet if you share the exact keys supported.

Also applies to: 9-16, 24-26

docs/en/configure/networking/functions/configure_alb_rule.mdx (1)

111-113: Annotation domain fixed (cpas → cpaas). LGTM.

The ingress priority annotation now uses alb.cpaas.io. Good catch; examples won’t break configs.

docs/en/configure/networking/how_to/alb/deploy_alb.mdx (2)

65-66: Fix escaped anchor so other pages can link here.

Escaped braces prevent the #alb_networking_configuration anchor from being generated.

-#### Networking Configuration \{#alb_networking_configuration\}
+#### Networking Configuration {#alb_networking_configuration}

52-61: Resource config table keys are incorrect (resourceresources), risking user misconfig.

Field paths should match the sample YAML and CRD; current entries use singular resource and wrong subkeys.

-| `.spec.config.resource.limit` | k8s container-resource,optional |  limit of nginx container of alb |
-| `.spec.config.resource.request` | k8s container-resource,optional |  request of nginx container of alb |
-| `.spec.config.resource.alb.limit` | k8s container-resource,optional |  limit of alb container of alb |
-| `.spec.config.resource.alb.request` | k8s container-resource,optional | request of alb container of alb |
+| `.spec.config.resources.limits` | k8s container resources, optional | Limits for the nginx container. |
+| `.spec.config.resources.requests` | k8s container resources, optional | Requests for the nginx container. |
+| `.spec.config.resources.alb.limits` | k8s container resources, optional | Limits for the ALB container. |
+| `.spec.config.resources.alb.requests` | k8s container resources, optional | Requests for the ALB container. |
🧹 Nitpick comments (33)
docs/en/configure/networking/how_to/alb/auth.mdx (1)

134-134: Tighten wording and verify link target resolution

  • Drop “specific” (redundant).
  • Please confirm the relative path resolves from this file’s location.

Apply:

-[Ingress-nginx](../install_ingress_nginx_via_cluster_plugin.mdx) defines a series of annotations to configure the specific details of the authentication process. Below is a list of annotations that ALB supports, where "v" indicates support and "x" indicates no support.
+[Ingress-nginx](../install_ingress_nginx_via_cluster_plugin.mdx) defines a series of annotations to configure the details of the authentication process. Below is a list of annotations that ALB supports, where "v" indicates support and "x" indicates no support.
docs/en/configure/networking/how_to/alb/cors.mdx (4)

8-13: Fix grammar and clarity for enableCORS description

Streamline phrasing, fix capitalization, and clarify behavior when disabled.

Apply:

-enableCORS:
-  description: enableCORS is the switch whether enable cross domain,
-    when EnableCORS is false, alb2 transports information to backend
-    servers which determine whether allow cross-domain
-  type: boolean
+enableCORS:
+  description: Enables Cross-Origin Resource Sharing (CORS). When enableCORS is false, ALB forwards requests to backend services, which then decide whether to allow cross-origin access.
+  type: boolean

14-16: Capitalize CORS and tighten header description

Apply:

-corsAllowHeaders:
-  description: corsAllowHeaders defines the headers allowed by cors
-    when enableCORS is true, multiple headers are separated by commas
-  type: string
+corsAllowHeaders:
+  description: Defines the allowed headers. When enableCORS is true, specify multiple headers as a comma‑separated list.
+  type: string

18-20: Clarify origin description; consistent capitalization

Apply:

-corsAllowOrigin:
-  description: corsAllowOrigin defines the origin allowed by cors when
-    enableCORS is true, multiple origins are separated by commas
-  type: string
+corsAllowOrigin:
+  description: Defines the allowed origins. When enableCORS is true, specify multiple origins as a comma‑separated list.
+  type: string

23-23: Minor style: article and casing

Apply:

-It can be configured on the rule `.spec`.
+It can be configured on the Rule `.spec`.
docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (2)

21-23: Article fix: “an empty header”

Grammar nit.

Apply:

-|remove header in request| set a empty header in request |
+|remove header in request| set an empty header in request |

15-17: Improve link label wording

Use imperative and plural for consistency with other sections.

Apply:

-## Sticky Session
-[config sticky session](https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie/#sticky-sessions)
+## Sticky Sessions
+[Configure sticky sessions](https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie/#sticky-sessions)
docs/en/configure/networking/functions/configure_ingress.mdx (3)

18-18: Clarify controller behavior; simplify sentence

Apply:

-Ingress rules depend on the implementation of the Ingress Controller, which is responsible for listening to changes in Ingress and Service. After a new Ingress is created, when the Ingress Controller receives a request, it matches the forwarding rule from the Ingress and distributes the traffic to the specified internal routes, as shown in the diagram below.
+Ingress depends on an Ingress Controller, which watches Ingress and Service changes. After a new Ingress is created, the controller matches incoming requests against the Ingress rules and routes traffic to the referenced Services, as shown below.

25-26: Capitalize product names and align phrasing

Apply:

-- [install ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
-- [install alb as ingress-controller](../how_to/alb/deploy_alb.mdx)
+- [Install ingress-nginx as the Ingress controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
+- [Install ALB as the Ingress controller](../how_to/alb/deploy_alb.mdx)

57-57: Clarify callout about selecting the controller

Explicitly reference ingressClassName; fix grammar.

Apply:

-2. `nginx` to using `ingress-nginx` controller, `$alb_name` to use alb as ingress controller.
+2. Set `ingressClassName: nginx` to use the `ingress-nginx` controller, or set `ingressClassName: $alb_name` to use ALB as the Ingress controller.
docs/en/configure/networking/how_to/alb/header_modification.mdx (5)

9-14: Capitalize heading; add spacing after comma in inline code

Improves readability and consistency.

Apply:

-### use annotations
+### Use annotations
@@
-| ingress | `alb.ingress.cpaas.io/rewrite-request`,`alb.ingress.cpaas.io/rewrite-response` |
+| ingress | `alb.ingress.cpaas.io/rewrite-request`, `alb.ingress.cpaas.io/rewrite-response` |

18-23: Tighten Go comments for clarity and grammar

Use concise, idiomatic phrasing.

Apply:

 type RewriteRequestConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // set header, which values are variable name 
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
-	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // add header, which values could be multiple and which values are variable name
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // Set header; values are variable names
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header; values can be multiple
+	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // Add header; values can be multiple; values are variable names
 }
 type RewriteResponseConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header; values can be multiple
 }

Also applies to: 25-28


39-41: Clarify example result sentence; pluralize “variables”

Apply:

-will add key `x-my-host` and value of request host header to request header.
-you can refer to the [nginx variable](http://nginx.org/en/docs/varindex.html) for the variable names.
+Adds header `x-my-host` with the value of the request’s host header.
+You can refer to the [Nginx variables](http://nginx.org/en/docs/varindex.html) for the variable names.

44-48: Tighten variable descriptions; fix spacing and article

Apply:

-| `first_forward_or_remote_addr` | the first forwarded address or the remote address, default is `remote_addr` |
-| `first_forward`                | the first forwarded address , default is empty string                       |
+| `first_forward_or_remote_addr` | The first forwarded address or the remote address; default is `remote_addr`. |
+| `first_forward`                | The first forwarded address; default is an empty string.                      |

49-49: Capitalize section title

Apply:

-## examples
+## Examples
docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (4)

6-6: Unify terminology: “GatewayAPI”, hyphenation, and spacing.

  • Use “GatewayAPI” (no space) consistently.
  • Use “LoadBalancer-type Service(s)”.
  • Add a space before the parenthesis in “ALB Rule (Load Balancer in the UI)”.
-# Comparison Among Service, Ingress, Gateway API, and ALB Rule
+# Comparison Among Service, Ingress, GatewayAPI, and ALB Rule
@@
-This document compares them ([Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx)) to help users make the right choice.
+This document compares them ([Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [GatewayAPI](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx)) to help users make the right choice.
@@
-Services of type LoadBalancer, Gateway API, and ALB Rules can all expose L4 traffic externally. Here we recommend using the LoadBalancer type Service approach.
+Services of type LoadBalancer, GatewayAPI, and ALB Rules can all expose L4 traffic externally. We recommend using the LoadBalancer‑type Service approach.
@@
-ALB Rule(Load Balancer in the UI) provides the most flexible traffic match rules and the most capabilities. In fact, both Ingress and GatewayAPI are implemented by translating them to ALB Rules.
+ALB Rule (Load Balancer in the UI) provides the most flexible traffic match rules and the most capabilities. In fact, both Ingress and GatewayAPI are implemented by translating them to ALB Rules.

Also applies to: 9-9, 13-15, 31-35


8-10: Tighten grammar in the lead sentence.

Add “the” and simplify phrasing.

-The Alauda Container Platform supports multiple ingress traffic specifications in Kubernetes ecosystem.
-This document compares them (...omitted...) to help users make the right choice.
+The Alauda Container Platform supports multiple ingress traffic specifications in the Kubernetes ecosystem.
+This document compares them (...omitted...) to help you choose the right one.

22-24: Subject–verb agreement.

“Ingress … are recommended” → “Ingress … is recommended.”

-Ingress is the standard specification adopted by the Kubernetes community and are recommended for default use.
+Ingress is the standard specification adopted by the Kubernetes community and is recommended for general use.

27-30: Clarify isolation wording and articles.

“isolation mode” → “isolation model”; add articles; reduce repetition.

-GatewayAPI provides more flexible isolation mode, however they are not as mature as Ingress.
-By using GatewayAPI developer can create their own isolated ALB instances to handle GatewayAPI rules.
-Therefore, if you need to delegate the creation and management of ALB instances to developers, you need to choose to use GatewayAPI.
+GatewayAPI provides a more flexible isolation model; however, it is not as mature as Ingress.
+With GatewayAPI, a developer can create an isolated ALB instance to handle GatewayAPI rules.
+If you need to delegate creation and management of ALB instances to developers, choose GatewayAPI.
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (2)

6-7: Heading casing and clarity.

Use title case and plural “annotations”.

-via ingress annotation
+Via Ingress annotations

48-48: Polish the example sentence.

Minor grammar.

-Example: client requests `/prefix-x/abc`; backend receives `/abc`.
+Example: When the client requests `/prefix-x/abc`, the backend receives `/abc`.
docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (4)

6-6: Fix title capitalization.

Use “GatewayAPI”.

-# Configure GatewayApi Gateway via ALB
+# Configure GatewayAPI Gateway via ALB

90-97: Hyphenate “LoadBalancer‑type” and streamline phrasing.

Also prefer “using” over “by using”.

-| **Internal Routing Annotation** | Used to declare the configuration or capabilities for LoadBalancer type internal routing. For specific annotation information, please refer to [LoadBalancer type internal routing annotation instructions](../../functions/configure_service.mdx#loadbalancer_type_service_annotation).                                             |
+| **Internal Routing Annotation** | Declares configuration/capabilities for LoadBalancer‑type internal routing. See [LoadBalancer‑type internal routing annotations](../../functions/configure_service.mdx#loadbalancer_type_service_annotation). |

231-234: Consistent naming: “Inbound Gateway”.

Capitalize consistently; avoid switching to “ingress gateway”.

-Once the listening is set up in the ingress gateway, the gateway will monitor traffic from specified domains and ports in real-time. The route rules can forward the incoming traffic to backend instances as desired.
+Once listening is set up in the Inbound Gateway, it monitors traffic from specified domains and ports in real time. Route rules then forward the matching traffic to backend instances.

291-297: Clarify constraints and avoid duplicates in “Action” section.

Small grammar and readability tweaks.

-Within the same route rule, there cannot be multiple **Header** type actions with the same **value**.
-Within the same route rule, only one type of either **Redirect** or **Rewrite**, and only one mode of either **FullPath** or **PrefixPath** can exist.
+Within the same route rule, you cannot define multiple **Header** actions with the same **value**.
+Within the same route rule, define at most one of **Redirect** or **Rewrite**, and choose only one mode: **FullPath** or **PrefixPath**.
docs/en/configure/networking/concepts/gatewayapi.mdx (2)

8-10: Follow through on “3 personas” sentence.

Either list the personas or reference them in the diagram caption to avoid a dangling statement.

-The overall resource model focuses on 3 separate personas and corresponding resources that they are expected to manage:
-![](../assets/gatewayapi-architecture.png)
+The overall resource model focuses on three personas (infrastructure provider, platform operator, and application developer) and the resources they manage:
+![](../assets/gatewayapi-architecture.png)

12-14: Use correct term “routes”, not “routers”.

And add a trailing period to the link sentence.

-Listeners and routers are handled directly by ALB; they are not translated into `Frontend` or `Rule`.
-[Create a GatewayAPI Gateway via ALB](../how_to/alb/configure_gatewayapi_gateway_via_alb.mdx)
+Listeners and routes are handled directly by ALB; they are not translated into `Frontend` or `Rule`.
+[Create a GatewayAPI Gateway via ALB](../how_to/alb/configure_gatewayapi_gateway_via_alb.mdx).
docs/en/configure/networking/architecture/understanding_alb.mdx (4)

21-26: Helm commands: consider splitting for readability.

Non-blocking; current one-liner works.

-helm repo add alb https://alauda.github.io/alb/;helm repo update;helm search repo|grep alb
+helm repo add alb https://alauda.github.io/alb/
+helm repo update
+helm search repo | grep alb

37-41: Polish YAML comments and casing.

Minor grammar/style fixes.

-    address: "172.20.0.5"  # the ip address of node where alb been deployed
+    address: "172.20.0.5"  # The IP address of the node where ALB is deployed
@@
-        projects:
+        projects:

88-104: Ingress example: consider specifying the IngressClass.

To ensure this Ingress is handled by ALB, add .spec.ingressClassName (or the controller-specific class) to the example.

 spec:
+  ingressClassName: alb  # Replace with your ALB's IngressClass
   rules:

181-189: Consistency: “Rule” vs “RULE”, “ALB leader” vs “ALB-Leader”.

Unify casing across the section.

-### RULE
-...
-RULE is a resource defined by ALB itself.
+### Rule
+...
+Rule is a resource defined by ALB itself.
@@
-RULE could be created by ALB-Leader or user manually.
+Rule can be created by the ALB leader or by users manually.
@@
-## ALB Leader
+## ALB leader
@@
-1. Translating the Ingress into Rules.
+1. Translating the Ingress into Rules.

Also applies to: 193-202

docs/en/configure/networking/functions/configure_alb_rule.mdx (1)

160-166: Nit: capitalize HTTPS in heading.

Improves consistency with other protocol headings.

-## Https
+## HTTPS
docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1)

69-73: Minor clarity improvements (optional).

  • Clarify required/optional phrasing and capitalization.
-| `.spec.address` | string,required | you could manually specify the address of alb |
+| `.spec.address` | string, required | Manually specified ALB address. |
-| `.spec.config.vip.enableLbSvc` | bool, optional | Automatically true in `container` mode. |
+| `.spec.config.vip.enableLbSvc` | bool, optional | Becomes true automatically in `container` mode. |
-| `.spec.config.vip.lbSvcAnnotations` | map[string]string, optional | Extra annotations for the LoadBalancer Service. |
+| `.spec.config.vip.lbSvcAnnotations` | map[string]string, optional | Additional annotations for the LoadBalancer Service. |
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 252fd07 and 3ae0a2f.

⛔ Files ignored due to path filters (4)
  • docs/en/configure/networking/assets/create_alb_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_ft_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_rule_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/gatewayapi-architecture.png is excluded by !**/*.png
📒 Files selected for processing (26)
  • docs/en/configure/networking/architecture/understanding_alb.mdx (3 hunks)
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx (7 hunks)
  • docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/concepts/gatewayapi.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_ingress.mdx (3 hunks)
  • docs/en/configure/networking/how_to/alb/auth.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/cors.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/decision_makeing_for_performance_selection_of_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/header_modification.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/index.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/otel.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1 hunks)
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx (0 hunks)
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx (0 hunks)
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx (0 hunks)
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (2 hunks)
  • docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1 hunks)
💤 Files with no reviewable changes (3)
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx
✅ Files skipped from review due to trivial changes (3)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx
  • docs/en/configure/networking/how_to/alb/index.mdx
🚧 Files skipped from review as they are similar to previous changes (7)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx
  • docs/en/configure/networking/how_to/alb/otel.mdx
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx
  • docs/en/configure/networking/how_to/alb/decision_makeing_for_performance_selection_of_alb.mdx
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx
🧰 Additional context used
🪛 LanguageTool
docs/en/configure/networking/how_to/alb/auth.mdx

[style] ~134-~134: This phrase is redundant. Consider writing “details”.
Context: ... series of annotations to configure the specific details of the authentication process. Below is...

(SPECIFIC_DETAILS)

docs/en/configure/networking/functions/configure_ingress.mdx

[grammar] ~24-~24: There might be a mistake here.
Context: ... add the 80 and 443 listening ports. ::: - [install ingress-nginx as ingress-control...

(QB_NEW_EN)


[grammar] ~25-~25: There might be a mistake here.
Context: ...tall ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx) - [install alb as ingress-controller](../ho...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...dx) - install alb as ingress-controller ## Example Ingress: ```yaml # nginx-ingres...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ...inxcontroller,$alb_name` to use alb as ingress controller. 3. If you only want...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ..._name` to use alb as ingress controller. 3. If you only want to run ingress locally,...

(QB_NEW_EN)

docs/en/configure/networking/concepts/gatewayapi.mdx

[grammar] ~12-~12: There might be a mistake here.
Context: ...ateway resource maps to an ALB resource. Listeners and routers are handled direct...

(QB_NEW_EN)

docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx

[grammar] ~8-~8: There might be a mistake here.
Context: ...multiple ingress traffic specifications in Kubernetes ecosystem. This document com...

(QB_NEW_EN)


[grammar] ~8-~8: There might be a mistake here.
Context: ... specifications in Kubernetes ecosystem. This document compares them ([Service](....

(QB_NEW_EN)

docs/en/configure/networking/functions/configure_alb_rule.mdx

[grammar] ~1-~1: There might be a mistake here.
Context: # Configure ALB Rules ## Introduction ### What is a Rule? Rule i...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ... must be attached to a frontend and alb via label. ::: ```yaml apiVersion: crd.ala...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ...ttached to a frontend and alb via label. ::: ```yaml apiVersion: crd.alauda.io/v...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...e Frontend to which this rule belongs. 2. Required, indicate the ALB to which this...

(QB_NEW_EN)


[grammar] ~58-~58: There might be a mistake here.
Context: ... used to describe the matching criteria. For example, the rule below matches a re...

(QB_NEW_EN)


[grammar] ~116-~116: There might be a mistake here.
Context: ...rity` using an integer value. ## Action After a request matches a rule, you can ...

(QB_NEW_EN)


[grammar] ~121-~121: There might be a mistake here.
Context: ...meout](../how_to/alb/l4_l7_timeout.mdx)| | Redirect | Redirects incoming ...

(QB_NEW_EN)


[grammar] ~122-~122: There might be a mistake here.
Context: ...irect](../how_to/alb/http_redirect.mdx)| | CORS | Enables Cross-Origi...

(QB_NEW_EN)


[grammar] ~123-~123: There might be a mistake here.
Context: ... |cors| | Header Modification | Allows modifi...

(QB_NEW_EN)


[grammar] ~124-~124: There might be a mistake here.
Context: ...(../how_to/alb/header_modification.mdx)| | URL Rewrite | Rewrites the URL of...

(QB_NEW_EN)


[grammar] ~125-~125: There might be a mistake here.
Context: ...rewrite](../how_to/alb/url_rewrite.mdx)| | WAF | Integrates Web Appl...

(QB_NEW_EN)


[grammar] ~126-~126: There might be a mistake here.
Context: ... |waf| | OTEL | Enables OpenTelemet...

(QB_NEW_EN)


[grammar] ~127-~127: There might be a mistake here.
Context: ...g. |otel| | Keepalive | Enables or disable...

(QB_NEW_EN)


[grammar] ~131-~131: There might be a mistake here.
Context: ...## backend protocol {#backend_protocol} By default, the backend protocol is set ...

(QB_NEW_EN)


[grammar] ~134-~134: There might be a mistake here.
Context: ...ession Affinity Policy {#service_group} You can configure one or more services w...

(QB_NEW_EN)


[grammar] ~141-~141: There might be a mistake here.
Context: ...ty_policy_in_alb.mdx). ## Creating Rule ### Using web console ![](../assets/create_r...

(QB_NEW_EN)


[style] ~147-~147: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the load balancer. 4. Click on the name of the listener port. 5. Cl...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~148-~148: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the listener port. 5. Click Add Rule. 6. Refer to the following...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[grammar] ~152-~152: Ensure spelling is correct
Context: ... Click Add. Each input item on the webui corresponds to a field of the CR ### u...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: Ensure spelling is correct
Context: ... the frontend protocol (ft) is HTTPS or GRPCS, the rule can also be configured to use...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: There might be a mistake here.
Context: ...ule can also be configured to use HTTPS. You can specify the certificate either i...

(QB_NEW_EN)


[grammar] ~166-~166: There might be a mistake here.
Context: .... ### Certificate Annotation in Ingress Certificates can be referenced across na...

(QB_NEW_EN)


[grammar] ~172-~172: There might be a mistake here.
Context: ...Certificate in Rule {#certificate_name} In .spec.certificate_name, the format ...

(QB_NEW_EN)


[grammar] ~175-~175: There might be a mistake here.
Context: ...et_namespace/$secret_name` ### TLS Mode #### Edge Mode In edge mode, the client commu...

(QB_NEW_EN)


[grammar] ~176-~176: There might be a mistake here.
Context: ...ecret_name` ### TLS Mode #### Edge Mode In edge mode, the client communicates wi...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ...th backend services using HTTP protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~179-~179: There might be a mistake here.
Context: ...ve this: 1. create ft use https protocol 2. create rule with backend protocol http, ...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol http, and specify cert...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te rule with backend protocol http, and specify cert via .spec.certificate_name #### ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... ALB communicates with backend services using HTTPS protocol. To achieve this: 1. cre...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ...h backend services using HTTPS protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol https, and specify cer...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...e rule with backend protocol https, and specify cert via .spec.certificate_name ## I...

(QB_NEW_EN)


[grammar] ~188-~188: There might be a mistake here.
Context: ...s} ### ingress sync {#alb_ingress_sync} Each ALB creates an IngressClass with th...

(QB_NEW_EN)


[grammar] ~200-~200: There might be a mistake here.
Context: ....source.namespace` is ingress namespace. ::: #### ssl strategy {#alb_ingress_ss...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...sl strategy {#alb_ingress_ssl_strategy} For ingresses that do not have certifica...

(QB_NEW_EN)


[grammar] ~206-~206: There might be a mistake here.
Context: ...om resource with the following settings: - .spec.config.defaultSSLStrategy: Defines the SSL strategy for ingresses...

(QB_NEW_EN)


[grammar] ~210-~210: There might be a mistake here.
Context: ...$secret_name` Available SSL strategies: - Never: Do not create rules on HTTPS po...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx

[grammar] ~6-~6: Ensure spelling is correct
Context: ...52c10984d03564c0cdec45 --- # Configure GatewayApi Gateway via ALB An inbound gateway (Ga...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/en/configure/networking/how_to/alb/cors.mdx

[grammar] ~3-~3: There might be a mistake here.
Context: # CORS ## Basic Concepts [CORS](https://developer.mozilla.org/en-U...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_alb.mdx

[grammar] ~7-~7: There might be a mistake here.
Context: ...70cb27c0597def5 --- # Deploy ALB ## ALB ALB is a custom resource that represents a ...

(QB_NEW_EN)


[grammar] ~52-~52: There might be a mistake here.
Context: ...e: nginx ``` #### Resource Configuration resource related field describes the deployment ...

(QB_NEW_EN)


[grammar] ~53-~53: There might be a mistake here.
Context: ...he deployment configuration for the alb. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~66-~66: There might be a mistake here.
Context: ... you can access the ALB via the node IP. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~69-~69: There might be a mistake here.
Context: ...d uses its address as the ALB address. | | .spec.address | string,required | yo...

(QB_NEW_EN)


[grammar] ~70-~70: There might be a mistake here.
Context: ...ld manually specify the address of alb | | .spec.config.vip.enableLbSvc | bool,...

(QB_NEW_EN)


[grammar] ~74-~74: There might be a mistake here.
Context: ...r Service. | #### project configuration | Field | Type | |-------|------| | `.s...

(QB_NEW_EN)


[grammar] ~75-~75: There might be a mistake here.
Context: ... project configuration | Field | Type | |-------|------| | `.spec.config.project...

(QB_NEW_EN)


[grammar] ~76-~76: There might be a mistake here.
Context: ...ation | Field | Type | |-------|------| | .spec.config.projects | []string,req...

(QB_NEW_EN)


[grammar] ~77-~77: There might be a mistake here.
Context: ...c.config.projects| []string,required | |.spec.config.portProjects` | string,o...

(QB_NEW_EN)


[grammar] ~78-~78: There might be a mistake here.
Context: ...config.portProjects| string,optional | |.spec.config.enablePortProject` | boo...

(QB_NEW_EN)


[grammar] ~82-~82: There might be a mistake here.
Context: ...project can find and configure this ALB. 2. This ALB will handle ingress resources b...

(QB_NEW_EN)


[grammar] ~90-~90: There might be a mistake here.
Context: ...obal config which can be tweaked in alb cr. - bind-nic - [ingr...

(QB_NEW_EN)


[grammar] ~91-~91: There might be a mistake here.
Context: ...ch can be tweaked in alb cr. - bind-nic - [ingress-sync](../../functions/configure_...

(QB_NEW_EN)


[grammar] ~105-~105: There might be a mistake here.
Context: ...eld of the CR: |Parameter| Description| |--|--| |Assigned Address| `.spec.addres...

(QB_NEW_EN)


[grammar] ~106-~106: There might be a mistake here.
Context: ...he CR: |Parameter| Description| |--|--| |Assigned Address| .spec.address| |All...

(QB_NEW_EN)


[grammar] ~107-~107: There might be a mistake here.
Context: ...|--| |Assigned Address| .spec.address| |Allocated By| Instance means project ...

(QB_NEW_EN)


[grammar] ~136-~136: There might be a mistake here.
Context: ...tate. 5. Click Update. #### Delete ##### Using the web console :::note After del...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ... (tcp|udp). In L4 Proxy use frontend to configure backend service directly. In L7 Proxy u...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ...d to configure backend service directly. In L7 Proxy use frontend to configure li...

(QB_NEW_EN)


[grammar] ~160-~160: There might be a mistake here.
Context: ..._rule.mdx) to configure backend service. If you need to add an HTTPS listener por...

(QB_NEW_EN)


[grammar] ~164-~164: There might be a mistake here.
Context: ...adings-in-section */} ### Prerequisites Create a ALB first. ### Configure Front...

(QB_NEW_EN)


[grammar] ~195-~195: There might be a mistake here.
Context: ...ntend name: Format as $alb_name-$port. 3. port: which port which listen on. 4. pro...

(QB_NEW_EN)


[grammar] ~196-~196: There might be a mistake here.
Context: ...t`. 3. port: which port which listen on. 4. protocol: what protocol this port uses. ...

(QB_NEW_EN)


[grammar] ~197-~197: There might be a mistake here.
Context: ... protocol: what protocol this port uses. - L7 protocol https|http|grpcs|grpc and L4...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...ed, Format as $secret_ns/$secret_name. 6. backendProtocol: what protocol the backe...

(QB_NEW_EN)


[grammar] ~207-~207: There might be a mistake here.
Context: ...alls back to the default serviceGroup. 8. [session_affinity_policy](./load_balancin...

(QB_NEW_EN)


[grammar] ~214-~214: There might be a mistake here.
Context: ... ### Operation On Frontend #### Creating ##### using the web console ![](../../assets/c...

(QB_NEW_EN)


[grammar] ~225-~225: Ensure spelling is correct
Context: ...k Add Port. Each input item on the webui corresponds to a field of the CR |Param...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~226-~226: There might be a mistake here.
Context: ... field of the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serv...

(QB_NEW_EN)


[grammar] ~227-~227: There might be a mistake here.
Context: ...the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serviceGroup.s...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx

[grammar] ~17-~17: There might be a mistake here.
Context: ...guration). | Annotation | Description | |---|---| | `metallb.universe.tf/loadBal...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ... | Annotation | Description | |---|---| | metallb.universe.tf/loadBalancerIPs ...

(QB_NEW_EN)


[grammar] ~22-~22: There might be a mistake here.
Context: ... pool to allocate from. | ## Method 2: Use external ALB device to provide VIP * P...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...the ports in use to reduce the downtime of ALB upgrade. The health check configura...

(QB_NEW_EN)


[grammar] ~31-~31: There might be a mistake here.
Context: ...h check, it is recommended to use TCP. | | Response Timeout | The time requir...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/header_modification.mdx

[grammar] ~10-~10: There might be a mistake here.
Context: ...annotation key | |---------|-----------------------------...

(QB_NEW_EN)


[grammar] ~11-~11: There might be a mistake here.
Context: ...---------------------------------------| | ingress | `alb.ingress.cpaas.io/rewrit...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...alb.ingress.cpaas.io/rewrite-response| | rule |alb.rule.cpaas.io/rewrite-r...

(QB_NEW_EN)


[grammar] ~30-~30: There might be a mistake here.
Context: ... value is the ALB context variable name. For example, add the following annotatio...

(QB_NEW_EN)


[grammar] ~44-~44: There might be a mistake here.
Context: ... | |--------------------------------|------...

(QB_NEW_EN)


[grammar] ~45-~45: There might be a mistake here.
Context: ...---------------------------------------| | first_forward_or_remote_addr | the f...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...mote address, default is remote_addr | | first_forward | the f...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/url_rewrite.mdx

[grammar] ~6-~6: There might be a mistake here.
Context: ...ps to rewrite the URL. ## Configuration via ingress annotation ```yaml apiVersio...

(QB_NEW_EN)


[grammar] ~48-~48: There might be a mistake here.
Context: ...rget: /$3 ``` Example: client requests /prefix-x/abc; backend receives `/abc`.

(QB_NEW_EN)

docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx

[grammar] ~9-~9: There might be a mistake here.
Context: ..._cluster_plugin.mdx) ## Max Connections [max-worker-connections](https://kubernet...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...map/#max-worker-connections) ## Timeout [config timeout](https://kubernetes.githu...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ...sticky-sessions) ## Header Modification |action|link| |--|--| |set header in req...

(QB_NEW_EN)


[grammar] ~19-~19: There might be a mistake here.
Context: ...s) ## Header Modification |action|link| |--|--| |set header in request|[proxy-se...

(QB_NEW_EN)


[grammar] ~20-~20: There might be a mistake here.
Context: ...eader Modification |action|link| |--|--| |set header in request|[proxy-set-header...

(QB_NEW_EN)


[grammar] ~21-~21: There might be a mistake here.
Context: ...figuration/annotations/#custom-headers)| |remove header in request| set a empty h...

(QB_NEW_EN)


[grammar] ~29-~29: There might be a mistake here.
Context: ...## HSTS (HTTP Strict Transport Security) [configure HSTS](https://kubernetes.github.io/ingr...

(QB_NEW_EN)


[uncategorized] ~32-~32: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ginx-configuration/configmap/#hsts) ## Rate Limiting [config rate limiting](https://kubernet...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~32-~32: There might be a mistake here.
Context: ...ation/configmap/#hsts) ## Rate Limiting [config rate limiting](https://kubernetes...

(QB_NEW_EN)


[grammar] ~35-~35: There might be a mistake here.
Context: ...tion/annotations/#rate-limiting) ## WAF [modsecurity](https://kubernetes.github.i...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...uthentication) ### TLS edge termination [backend protocol](https://kubernetes.git...

(QB_NEW_EN)


[grammar] ~49-~49: There might be a mistake here.
Context: ...ions/#backend-protocol) ### Passthrough [ssl-passthrough]https://kubernetes.gith...

(QB_NEW_EN)

🔇 Additional comments (12)
docs/en/configure/networking/how_to/alb/auth.mdx (1)

7-7: Heading tweak looks good

Pluralizing to “Basic Concepts” reads better. No further changes needed.

docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (1)

33-35: Tone down absolute performance claim or add a reference.

“degrades significantly” is strong without data. Consider softening or linking to internal benchmarks.

-Both Gateway API and ALB Rules are implemented by ALB, which is a userspace proxy, and their performance degrades significantly when handling L4 traffic compared to LoadBalancer type Services.
+Both GatewayAPI and ALB Rules are implemented by ALB, which is a userspace proxy, and may have lower L4 performance than LoadBalancer‑type Services.
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (2)

28-46: API version check for Rule CR.

Confirm crd.alauda.io/v1 is the correct and current apiVersion for Rule in this release; other docs use crd.alauda.io/v2beta1 for ALB2.


43-46: Good fix: correct capture group.

rewrite_target: /$3 matches ^/(prefix-x)(/|$)(.*) as intended.

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (2)

28-39: Verify Gateway apiVersion.

You’re using gateway.networking.k8s.io/v1beta1. Many environments use v1 for Gateway/HTTPRoute now. Please confirm which version ACP supports and update consistently (this page and the HTTPRoute example below).


36-37: Callouts and labels read well; keep.

Label alb.cpaas.io/alb-ref and callouts 1–4 align and help users map resources.

Also applies to: 68-70, 72-78

docs/en/configure/networking/concepts/gatewayapi.mdx (1)

6-6: Intro reads well.

Good concise positioning of GatewayAPI.

docs/en/configure/networking/architecture/understanding_alb.mdx (2)

12-14: Core components section is clear and accurate.

Good control-plane/data-plane wording and lifecycle summary.


122-122: Nice navigation update.

Link now points to the new deploy page.

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1)

13-16: Next Steps for ALB Documentation Deletion

Please review and address the following:

• Update inbound link in docs/en/configure/networking/how_to/alb/deploy_alb.mdx (line 14)
– Change [Configure VIP](./deploy_high_available_vip_for_alb.mdx) to point at the new or consolidated VIP configuration doc.
• Confirm the alb_networking_configuration anchor in deploy_alb.mdx is defined (e.g., ## ALB networking configuration {#alb_networking_configuration}) so links resolve correctly.
• Search across docs/ for any remaining references to deploy_high_available_vip_for_alb.mdx and update or remove them to avoid 404s.

docs/en/configure/networking/how_to/alb/deploy_alb.mdx (2)

225-229: UI mapping now matches snake_case field.

Good alignment with the YAML example: session_affinity_policy.


14-14: No action needed: VIP doc exists and link is correct

The file deploy_high_available_vip_for_alb.mdx is present at docs/en/configure/networking/how_to/alb/, and the relative link in deploy_alb.mdx correctly points to it. You can safely ignore the suggestion to add a redirect or to confirm its removal.

Likely an incorrect or invalid review comment.

Comment on lines +11 to +12
### Quick demo of rule \{#alb_add_rule}
Here is a demo rule to give you a quick first impression of how to use rules.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Unescape heading IDs so internal links work.

Escaped braces prevent Docusaurus/MDX from generating the anchors referenced throughout this page.

Apply:

-### Quick demo of rule \{#alb_add_rule}
+### Quick demo of rule {#alb_add_rule}
-### backend protocol \{#backend_protocol}
+### backend protocol {#backend_protocol}
-### Service Group and Session Affinity Policy \{#service_group}
+### Service Group and Session Affinity Policy {#service_group}
-### Certificate in Rule \{#certificate_name}
+### Certificate in Rule {#certificate_name}
-## Ingress \{#alb_ingress}
+## Ingress {#alb_ingress}
-### ingress sync \{#alb_ingress_sync}
+### ingress sync {#alb_ingress_sync}
-#### ssl strategy \{#alb_ingress_ssl_strategy}
+#### ssl strategy {#alb_ingress_ssl_strategy}

Also applies to: 131-135, 172-174, 187-188, 203-213

🤖 Prompt for AI Agents
In docs/en/configure/networking/functions/configure_alb_rule.mdx around lines
11-12 (and also adjust lines 131-135, 172-174, 187-188, 203-213), unescape the
heading ID attributes by removing the backslashes before braces so
Docusaurus/MDX can generate anchors; e.g., change any occurrences of
"\{#some_id\}" to "{#some_id}" for each heading referenced and verify internal
links resolve.

Comment on lines +169 to +170
alb.networking.cpaas.io/tls: qq.com=cpaas-system/dex.tls,qq1.com=cpaas-system/dex1.tls
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Verify annotation domain consistency (alb.networking.cpaas.io vs alb.cpaas.io).

Two domains are used in examples. Confirm both are valid and intentional, or standardize.


🏁 Script executed:

#!/bin/bash
# Inspect annotation domains across docs
rg -nP '\balb(\.networking)?\.cpaas\.io/' docs | sort -u

Length of output: 588


Please standardize ALB annotation domains

We’ve identified two different annotation domains in the docs—alb.cpaas.io and alb.networking.cpaas.io—which can confuse readers. Choose one domain (we recommend using alb.cpaas.io for all ALB annotations) and update every occurrence accordingly:

• docs/en/configure/networking/functions/configure_alb_rule.mdx
– Lines 111–112:
yaml # alb.cpaas.io/ingress-rule-priority-$rule_index-$path_index alb.cpaas.io/ingress-rule-priority-0-0: "10"
– Line 169 (currently):
yaml alb.networking.cpaas.io/tls: qq.com=cpaas-system/dex.tls,qq1.com=cpaas-system/dex1.tls

• docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx
– Line 36:
yaml alb.cpaas.io/alb-ref: test-o93q7 # [!code callout]

Please replace alb.networking.cpaas.io/tls (and any other alb.networking.cpaas.io/*) with alb.cpaas.io/tls to ensure consistency.

🤖 Prompt for AI Agents
In docs/en/configure/networking/functions/configure_alb_rule.mdx around lines
169–170, the ALB annotation uses the inconsistent domain
"alb.networking.cpaas.io/tls"; replace it with the standardized domain
"alb.cpaas.io/tls" (and scan the file for any other occurrences of
"alb.networking.cpaas.io/*" to change them to "alb.cpaas.io/*") so all ALB
annotations use the single recommended domain.

Comment on lines +14 to +15
The high availability of the **Load Balancer** requires a VIP. Please refer to [Configure VIP](./deploy_high_available_vip_for_alb.mdx).
### Configure ALB
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Broken link risk: VIP page was removed; point to local section instead.

Replace link to the deleted VIP doc with the local networking section that covers VIP options.

-The high availability of the **Load Balancer** requires a VIP. Please refer to [Configure VIP](./deploy_high_available_vip_for_alb.mdx).
+The high availability of the **Load Balancer** requires a VIP. See [Networking Configuration](#alb_networking_configuration) for VIP options.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
The high availability of the **Load Balancer** requires a VIP. Please refer to [Configure VIP](./deploy_high_available_vip_for_alb.mdx).
### Configure ALB
The high availability of the **Load Balancer** requires a VIP. See [Networking Configuration](#alb_networking_configuration) for VIP options.
### Configure ALB
🤖 Prompt for AI Agents
In docs/en/configure/networking/how_to/alb/deploy_alb.mdx around lines 14-15,
the link points to the removed VIP doc
(./deploy_high_available_vip_for_alb.mdx); replace that href with a link to the
local networking section that documents VIP options (for example
docs/en/configure/networking/index.mdx#vip-options or the appropriate networking
VIP subsection path), keeping the surrounding text unchanged so it reads "Please
refer to [Configure VIP](<local-networking-vip-anchor>)".

Comment on lines +130 to +131
- Please set specifications reasonably according to business needs. You can also refer to the relevant [How to properly allocate CPU and memory resources](./decision_makeing_for_performance_selection_of_alb.mdx) for guidance.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Typo in linked filename (“decision_makeing”).

Likely intended “decision_making”. Fix to avoid 404.

-   - Please set specifications reasonably according to business needs. You can also refer to the relevant [How to properly allocate CPU and memory resources](./decision_makeing_for_performance_selection_of_alb.mdx) for guidance.
+   - Please set specifications reasonably according to business needs. You can also refer to the relevant [How to properly allocate CPU and memory resources](./decision_making_for_performance_selection_of_alb.mdx) for guidance.

🏁 Script executed:

#!/bin/bash
# Verify actual filename exists (one of the two)
fd -a 'decision_*for_performance_selection_of_alb.mdx' docs || echo "Missing target doc"

Length of output: 61


🏁 Script executed:

#!/bin/bash
# Locate deploy_alb.mdx
echo "Looking for deploy_alb.mdx:"
fd -t f deploy_alb.mdx || echo "deploy_alb.mdx not found"

# Search for decision_*.mdx files under docs
echo -e "\nLooking for decision_*.mdx under docs:"
fd -e mdx -t f decision_* docs || echo "No decision_*.mdx files found under docs"

Length of output: 366


Fix typo in ALB performance decision document filename

The link in docs/en/configure/networking/how_to/alb/deploy_alb.mdx (lines 130–131) points to
./decision_makeing_for_performance_selection_of_alb.mdx, but the correct spelling is “making,” not “makeing.” This will lead to a broken link (404) once the file is renamed.

Please:

  • Rename the file at
    docs/en/configure/networking/how_to/alb/decision_makeing_for_performance_selection_of_alb.mdx
    to
    docs/en/configure/networking/how_to/alb/decision_making_for_performance_selection_of_alb.mdx
  • Update the link in deploy_alb.mdx accordingly.

Proposed diff:

@@ docs/en/configure/networking/how_to/alb/deploy_alb.mdx
- You can also refer to the relevant [How to properly allocate CPU and memory resources](./decision_makeing_for_performance_selection_of_alb.mdx) for guidance.
+ You can also refer to the relevant [How to properly allocate CPU and memory resources](./decision_making_for_performance_selection_of_alb.mdx) for guidance.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- Please set specifications reasonably according to business needs. You can also refer to the relevant [How to properly allocate CPU and memory resources](./decision_makeing_for_performance_selection_of_alb.mdx) for guidance.
- Please set specifications reasonably according to business needs. You can also refer to the relevant [How to properly allocate CPU and memory resources](./decision_making_for_performance_selection_of_alb.mdx) for guidance.
🤖 Prompt for AI Agents
In docs/en/configure/networking/how_to/alb/deploy_alb.mdx around lines 130-131,
the link currently points to
./decision_makeing_for_performance_selection_of_alb.mdx (typo “makeing”); rename
the physical file at
docs/en/configure/networking/how_to/alb/decision_makeing_for_performance_selection_of_alb.mdx
to
docs/en/configure/networking/how_to/alb/decision_making_for_performance_selection_of_alb.mdx
and update the link in deploy_alb.mdx to
./decision_making_for_performance_selection_of_alb.mdx so the path matches the
corrected filename.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
docs/en/configure/networking/how_to/alb/auth.mdx (1)

152-152: Annotation table accuracy: mark auth-type supported and restrict values

The row shows “-” in support and “basic or digest”, yet digest isn’t supported. Set support to v and restrict type to basic to avoid ambiguity.

-| nginx.ingress.kubernetes.io/auth-type                                                                                                                  | -       | "basic" or "digest" | basic: supports apr1 **digest: not supported**                                             |
+| nginx.ingress.kubernetes.io/auth-type                                                                                                                  | v       | "basic"             | Supports Basic only (apr1). Digest is not supported.                                       |
docs/en/configure/networking/architecture/understanding_alb.mdx (1)

92-103: Bind the Ingress to this ALB via ingressClassName.

Without an explicit ingressClassName, clusters with multiple controllers may route to the wrong controller.

 spec:
+  ingressClassName: alb-demo  # set to this ALB's IngressClass
   rules:
♻️ Duplicate comments (8)
docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1)

49-50: Fix malformed markdown link for SSL passthrough

Missing opening parenthesis.

-[ssl-passthrough]https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#ssl-passthrough)
+[ssl-passthrough](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#ssl-passthrough)
docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1)

13-15: Hyphenation and previously fixed anchor

  • “built‑in” needs a hyphen.
  • The internal anchor to deploy_alb.mdx was previously flagged and addressed—looks good now.
-You can use the platform built‑in implementation. For setup, see [Configure MetalLB](../../functions/create_metallb.mdx).
+You can use the platform built-in implementation. For setup, see [Configure MetalLB](../../functions/create_metallb.mdx).
docs/en/configure/networking/functions/configure_alb_rule.mdx (2)

11-12: Unescape heading IDs so anchors work

Backslashes prevent anchor generation; internal links won’t resolve.

-### Quick demo of rule \{#alb_add_rule}
+### Quick demo of rule {#alb_add_rule}
@@
-### backend protocol \{#backend_protocol}
+### backend protocol {#backend_protocol}
@@
-### Service Group and Session Affinity Policy \{#service_group}
+### Service Group and Session Affinity Policy {#service_group}
@@
-### Certificate in Rule \{#certificate_name}
+### Certificate in Rule {#certificate_name}
@@
-## Ingress \{#alb_ingress}
+## Ingress {#alb_ingress}
@@
-#### ssl strategy \{#alb_ingress_ssl_strategy}
+#### ssl strategy {#alb_ingress_ssl_strategy}

Also applies to: 131-131, 134-134, 172-172, 187-187, 203-203


169-170: Standardize annotation domain: use alb.cpaas.io/tls

Current example uses alb.networking.cpaas.io/tls, which is inconsistent with other examples.

-alb.networking.cpaas.io/tls: qq.com=cpaas-system/dex.tls,qq1.com=cpaas-system/dex1.tls
+alb.cpaas.io/tls: qq.com=cpaas-system/dex.tls,qq1.com=cpaas-system/dex1.tls
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

9-16: Ingress example mixes NGINX annotations with ingressClassName: alb

This is misleading and likely nonfunctional. Choose one:

  • Convert to NGINX (update class and add use-regex), or
  • Replace with an ALB-specific example (or remove if not supported via Ingress annotations).

Below converts to NGINX for correctness.

 metadata:
-  nginx.ingress.kubernetes.io/rewrite-target: /$2
+  nginx.ingress.kubernetes.io/use-regex: "true"
+  nginx.ingress.kubernetes.io/rewrite-target: /$3
   name: demo
 spec:
-  ingressClassName: alb
+  ingressClassName: ingress-nginx

Alternatively, if ALB supports rewrite via annotations, replace nginx.* with the ALB keys and keep /$3. Happy to provide an ALB-specific snippet if you confirm the keys.

docs/en/configure/networking/how_to/alb/deploy_alb.mdx (3)

130-131: Fix typo in linked filename (“decision_makeing” → “decision_making”).

Same issue flagged earlier; please correct the link (and file) to avoid 404s.

-   - Please set specifications reasonably according to business needs. You can also refer to the relevant [How to properly allocate CPU and memory resources](./decision_makeing_for_performance_selection_of_alb.mdx) for guidance.
+   - Please set specifications reasonably according to business needs. You can also refer to the relevant [How to properly allocate CPU and memory resources](./decision_making_for_performance_selection_of_alb.mdx) for guidance.

Verify which file exists:

#!/bin/bash
fd -a 'decision_*for_performance_selection_of_alb.mdx' docs || echo "No decision_* doc found"

151-153: Example mismatch: deleting a different ALB than the one created.

Create example uses alb-demo; delete example uses test-alb.

-kubectl delete alb2 test-alb -n cpaas-system
+kubectl delete alb2 alb-demo -n cpaas-system

52-63: Critical: wrong key paths in the Resource Configuration table.

Table uses .spec.config.resource* but YAML and CRD use .spec.config.resources* (and nested resources.alb.*). This will mislead users.

-#### Resource Configuration 
-resource related field describes the deployment configuration for the alb.
+#### Resource Configuration 
+Resource-related fields describe the deployment configuration for the ALB.
 | Field | Type | Description |
 |-------|------|-------------|
 | `.spec.config.nodeSelector` |map[string]string | the node selector for the alb |
 | `.spec.config.replicas` | int,optional default 3 | the number of replicas for the alb |
-| `.spec.config.resource.limit` | k8s container-resource,optional |  limit of nginx container of alb |
-| `.spec.config.resource.request` | k8s container-resource,optional |  request of nginx container of alb |
-| `.spec.config.resource.alb.limit` | k8s container-resource,optional |  limit of alb container of alb |
-| `.spec.config.resource.alb.request` | k8s container-resource,optional | request of alb container of alb |
+| `.spec.config.resources.limits` | k8s container resources, optional | Limits for the nginx container. |
+| `.spec.config.resources.requests` | k8s container resources, optional | Requests for the nginx container. |
+| `.spec.config.resources.alb.limits` | k8s container resources, optional | Limits for the ALB sidecar/container. |
+| `.spec.config.resources.alb.requests` | k8s container resources, optional | Requests for the ALB sidecar/container. |
 | `.spec.config.antiAffinityKey` | string,optional default local | k8s antiAffinityKey |
🧹 Nitpick comments (38)
docs/en/configure/networking/how_to/alb/auth.mdx (4)

7-7: Section heading nit: keep style consistent across ALB docs

Consider “Basic Concepts” → “Basics” or keep as-is but ensure other ALB pages use the same section name.


220-224: Compound modifier hyphenation

Use “app-request-related” for readability.

-### Construct app-request related annotations
+### Construct app-request-related annotations

254-256: Heading wording

“Redirect sign related configuration” → “Redirect-related configuration”.

-### Redirect sign related configuration
+### Redirect-related configuration

134-134: Update link and trim redundancy in authentication description

  • Confirmed that docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx exists and the relative link renders correctly.
  • Replace “specific details” with “details” for conciseness.

Apply the following change:

-[Ingress-nginx](../install_ingress_nginx_via_cluster_plugin.mdx) defines a series of annotations to configure the specific details of the authentication process.
+[Ingress-nginx](../install_ingress_nginx_via_cluster_plugin.mdx) defines a series of annotations to configure the details of the authentication process.

(optional nit)

docs/en/configure/networking/how_to/alb/cors.mdx (3)

8-13: Grammar/casing fixes for enableCORS description

Align field casing and tighten phrasing.

-enableCORS:
-  description: enableCORS is the switch whether enable cross domain,
-    when EnableCORS is false, alb2 transports information to backend
-    servers which determine whether allow cross-domain
+enableCORS:
+  description: Controls whether cross-origin requests are handled at ALB.
+    When enableCORS is false, alb2 forwards requests to backend services,
+    which then decide whether to allow cross-origin access.

14-20: Clarify headers/origin descriptions; consider adding allowed methods

  • Improve grammar.
  • Optional: document allowed methods since CORS typically needs it.
-corsAllowHeaders:
-  description: corsAllowHeaders defines the headers allowed by cors
-    when enableCORS is true, multiple headers are separated by commas
+corsAllowHeaders:
+  description: Comma-separated list of request headers allowed by CORS
   type: string
-corsAllowOrigin:
-  description: corsAllowOrigin defines the origin allowed by cors when
-    enableCORS is true, multiple origins are separated by commas
+corsAllowOrigin:
+  description: Comma-separated list of allowed origins when enableCORS is true
   type: string
+corsAllowMethods:
+  description: Comma-separated list of allowed methods (e.g., GET,POST,OPTIONS)
+  type: string

If adding corsAllowMethods isn’t supported by the CRD, please omit the new field and keep only the grammar fixes.


23-23: Usage note: add a minimal Rule example

A tiny YAML example under this line would help users apply it correctly.

I can draft a 10–15 line example if you confirm the exact spec path (e.g., .spec.config.cors on Rule/Frontend).

docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (2)

21-23: Request header removal phrasing

“set a empty header” → “set an empty header” (that effectively clears it for upstream).

-|remove header in request| set a empty header in request |
+|remove header in request| set an empty header in request |

12-16: Consistency: use “Configure …” in link captions

Optional polish for uniform tone.

-## Timeout
-[config timeout](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#proxy-connect-timeout)
+## Timeout
+[Configure timeout](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#proxy-connect-timeout)

-## Sticky Session
-[config sticky session](https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie/#sticky-sessions)
+## Sticky Session
+[Configure sticky session](https://kubernetes.github.io/ingress-nginx/examples/affinity/cookie/#sticky-sessions)
docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (2)

6-6: Use the canonical term “Gateway API” in title

Aligns with upstream docs naming.

-# Configure GatewayApi Gateway via ALB
+# Configure Gateway API Gateway via ALB

118-144: Resource names consistency with earlier callout

Table shows “name-lb-random” pattern, while earlier you call out ALB2 name format {gatewayName}-{random}. Please align or add a note explaining the “-lb-” infix if intentional.

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (2)

5-5: Title grammar

Use “High-Availability”/“Highly Available”.

-# Deploy High Available VIP for ALB
+# Deploy a High-Availability VIP for ALB

24-24: Run-on sentence; add punctuation

Split into shorter sentences and end with a period.

-* Please confirm with the network engineer the IP address (public IP, private IP, VIP) or domain name of the ALB service before deployment. If you want to use a domain name as the address for external traffic to access the ALB, you need to apply for a domain name in advance and configure domain name resolution. It is recommended to use a commercial Load Balancer device to provide a VIP, if not, you can use the [Pure Software Data Center LB Solution (Alpha)](../soft_data_center_lb_solution.mdx)
+* Please confirm with the network engineer the IP address (public, private, VIP) or domain name of the ALB service before deployment. If you use a domain name for external access, apply and configure DNS in advance. Using a commercial Load Balancer device to provide the VIP is recommended. If unavailable, consider the [Pure Software Data Center LB Solution (Alpha)](../soft_data_center_lb_solution.mdx).
docs/en/configure/networking/how_to/alb/header_modification.mdx (5)

9-14: Capitalize headings and tidy table entries

  • Title-case “Use annotations” for consistency.
  • Add a space after the comma between inline-code keys to improve readability.
-### use annotations
+### Use annotations
@@
-| ingress | `alb.ingress.cpaas.io/rewrite-request`,`alb.ingress.cpaas.io/rewrite-response` |
+| ingress | `alb.ingress.cpaas.io/rewrite-request`, `alb.ingress.cpaas.io/rewrite-response` |

17-28: Polish Go comments for clarity and grammar

Tighten phrasing; use “values are variable names” and “can have multiple values.”

 type RewriteRequestConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // set header, which values are variable name 
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
-	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // add header, which values could be multiple and which values are variable name
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // Set header; values are variable names
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header; values can have multiple entries
+	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // Add header using variables; values can have multiple entries
 }
 type RewriteResponseConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header; values can have multiple entries
 }

30-41: Improve explanatory text and capitalization

Capitalize sentence starts; clarify the example outcome and NGINX reference.

-Note: in `*_var` maps the key is the header name and the value is the ALB context variable name.
-For example, add the following annotation to an Ingress:
+Note: In `*_var` maps, the key is the header name and the value is the ALB context variable name.
+For example, add the following annotation to an Ingress:
@@
-will add key `x-my-host` and value of request host header to request header.
-you can refer to the [nginx variable](http://nginx.org/en/docs/varindex.html) for the variable names.
+This adds header `x-my-host` with the value from the request host header.
+You can refer to [NGINX variables](http://nginx.org/en/docs/varindex.html) for variable names.

42-48: Tighten variable descriptions; fix spacing

Minor grammar fixes and spacing.

-| `first_forward_or_remote_addr` | the first forwarded address or the remote address, default is `remote_addr` |
-| `first_forward`                | the first forwarded address , default is empty string                       |
+| `first_forward_or_remote_addr` | The first forwarded address or the remote address; default: `remote_addr`.  |
+| `first_forward`                | The first forwarded address; default: empty string.                          |

49-53: Document cookie variable convention

Readers may not know how to reference cookies. Add a note that cookie variables follow the cookie_<name> convention (e.g., cookie_auth_token).

 To add an Authorization header from a cookie, you can use:
 ```yaml
 alb.ingress.cpaas.io/rewrite-request: '{"headers_var":{"Authorization":"cookie_auth_token"}}'

+> Note: Cookie variables use the cookie_<name> convention. For example, the cookie auth_token is exposed as cookie_auth_token.


</blockquote></details>
<details>
<summary>docs/en/configure/networking/functions/configure_alb_rule.mdx (2)</summary><blockquote>

`160-160`: **Use “HTTPS” in heading**

Acronym should be fully capitalized.


```diff
-## Https
+## HTTPS

10-16: Minor wording: capitalize and clarify prerequisites and note

Improve professionalism and consistency.

-### Prerequisites
-[install alb and ft](../how_to/alb/deploy_alb.mdx)
+### Prerequisites
+[Install ALB and Frontend (FT)](../how_to/alb/deploy_alb.mdx)
@@
-:::note
-rule must be attached to a frontend and alb via label.
+:::note
+A rule must be attached to a Frontend and ALB via labels.
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

6-8: Title-case section headings

Align with docs style.

-## Configuration
-via ingress annotation
+## Configuration
+Via Ingress annotation
@@
-via rule
+Via Rule

Also applies to: 28-28

docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (1)

6-10: Grammar and terminology consistency (“the Kubernetes ecosystem”, subject–verb, “Gateway API”)

Unify “Gateway API” and fix minor grammar.

-The Alauda Container Platform supports multiple ingress traffic specifications in Kubernetes ecosystem.
-This document compares them ([Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx)) to help users make the right choice.
+The Alauda Container Platform supports multiple ingress traffic specifications in the Kubernetes ecosystem.
+This document compares them ([Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx)) to help you choose the right option.
@@
-While Ingress, GatewayAPI, and ALB Rules can all expose L7 traffic externally, they differ in their capabilities and isolation models.
+While Ingress, Gateway API, and ALB Rules can all expose L7 traffic externally, they differ in capabilities and isolation models.
@@
-GatewayAPI provides more flexible isolation mode, however they are not as mature as Ingress.
-By using GatewayAPI developer can create their own isolated ALB instances to handle GatewayAPI rules.
-Therefore, if you need to delegate the creation and management of ALB instances to developers, you need to choose to use GatewayAPI.
+Gateway API provides a more flexible isolation model; however, it is not as mature as Ingress.
+With Gateway API, developers can create their own isolated ALB instances to handle Gateway API routes.
+Therefore, choose Gateway API when you need to delegate creation and management of ALB instances to developers.
@@
-ALB Rule(Load Balancer in the UI) provides the most flexible traffic match rules and the most capabilities. In fact, both Ingress and GatewayAPI are implemented by translating them to ALB Rules.
-However, the ALB Rule is more complex than Ingress and GatewayAPI and is not a community-standard API. Therefore, we recommend using it only when Ingress and GatewayAPI don't meet your needs.
+ALB Rule (Load Balancer in the UI) provides the most flexible matching rules and the broadest capabilities. In fact, both Ingress and Gateway API are implemented by translating them to ALB Rules.
+However, ALB Rule is more complex than Ingress and Gateway API and is not a community‑standard API. Use it only when Ingress or Gateway API don’t meet your needs.

Also applies to: 18-19, 27-30, 33-34

docs/en/configure/networking/architecture/understanding_alb.mdx (5)

24-25: Add namespace flags to Helm install for clarity and consistency.

Explicitly set a namespace (and create it) to avoid installing into default. Align with the namespace used in the examples across docs.

-helm install alb-operator alb/alauda-alb2
+helm install -n cpaas-system --create-namespace alb-operator alb/alauda-alb2

35-36: Unify namespace with other pages.

This page uses kube-system, while deploy_alb.mdx uses cpaas-system. Pick one and use it consistently.

-    namespace: kube-system
+    namespace: cpaas-system

106-106: Clarify the target address in the curl example.

${ip} is undefined. Point to the ALB address defined above.

-Now you can access the app via `curl http://${ip}`
+Now you can access the app via `curl http://172.20.0.5/` (replace with your ALB address).

150-169: Tighten wording; avoid colloquialisms.

Minor edits improve clarity.

-### ALB
-ALB is an Ingress controller.
-In Kubernetes cluster, we use the `alb2` resource to operate an ALB. You could use `kubectl get alb2 -A` to view all the ALBs in the cluster.
+### ALB
+ALB is an Ingress controller.
+In a Kubernetes cluster, use the `alb2` resource to manage an ALB. Run `kubectl get alb2 -A` to view all ALBs in the cluster.

-### ALB Instance
-ALB also is a Deployment (bunch of pods) running in the cluster. Each pod is called an ALB instance.
+### ALB Instance
+ALB runs as a Kubernetes Deployment (a set of pods). Each pod is an ALB instance.

-Each ALB instance handles requests independently, but all instances share Frontend (FT), Rule, and other configurations belonging to the same ALB.
+Each ALB instance handles requests independently, and they share the same Frontend (FT), Rule, and other ALB-scoped configurations.

170-191: Standardize FT/RULE sections and grammar.

Improve readability and consistency.

-### Frontend (abbreviation: FT)
-FT is a resource defined by ALB itself. It is used to represent the ALB instance listening ports.
-FT could be created by ALB-Leader or user manually.
+### Frontend (FT)
+FT is an ALB-defined resource representing the ALB’s listening ports.
+FTs can be created by the ALB leader or manually by a user.

-### RULE
-RULE is a resource defined by ALB itself.
-It takes the same role as the Ingress, but it is more specific.
-A RULE is uniquely associated with a FT.
+### Rule
+Rule is an ALB-defined resource.
+It plays a role similar to Ingress, but is more specific.
+Each Rule is uniquely associated with an FT.
docs/en/configure/networking/functions/configure_ingress.mdx (4)

25-26: Polish prerequisite links and capitalization.

Small grammar and casing fixes.

-- [install ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
-- [install alb as ingress-controller](../how_to/alb/deploy_alb.mdx)
+- [Install ingress-nginx as an Ingress controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
+- [Install ALB as an Ingress controller](../how_to/alb/deploy_alb.mdx)

57-59: Clarify controller selection wording.

Tighten phrasing and casing.

-2. `nginx` to using `ingress-nginx` controller, `$alb_name` to use alb as ingress controller.
+2. Use `nginx` to target the `ingress-nginx` controller; use `$alb_name` to target the ALB controller.

61-61: Grammar: “an Ingress.”

-## Creating a Ingress by using the web console
+## Creating an Ingress by using the web console

82-82: Grammar: “an Ingress.”

-## Creating a Ingress by using the CLI
+## Creating an Ingress by using the CLI
docs/en/configure/networking/how_to/alb/deploy_alb.mdx (7)

65-72: Networking section: minor grammar and clarity.

Capitalize and clarify .spec.address.

-#### Networking Configuration \{#alb_networking_configuration\}
-Networking fields describe how to access the ALB. For example, in `host` mode, alb will use hostnetwork, and you can access the ALB via the node IP.
+#### Networking Configuration {#alb_networking_configuration}
+Networking fields describe how to access the ALB. For example, in `host` mode the ALB uses host networking, and you can access it via the node IP.
 ...
-| `.spec.address` | string,required | you could manually specify the address of alb |
+| `.spec.address` | string, required | Manually specify the ALB address (node IP or LoadBalancer IP). |

74-80: Title case and consistency for “Project Configuration.”

-#### project configuration
+#### Project Configuration

89-93: Polish: tweak configuration paragraph.

-#### tweak configuration
-there are some global config which can be tweaked in alb cr.
+#### Tweak Configuration
+Some global settings can be tweaked in the ALB custom resource.

164-166: Grammar: “an ALB.”

-Create a ALB first.
+Create an ALB first.

194-205: Callouts: tighten grammar and explanations.

-1. alb label: Required, indicate the ALB instance to which this `Frontend` belongs to.
-2. frontend name: Format as `$alb_name-$port`.
-3. port: which port which listen on.
-4. protocol: what protocol this port uses.
+1. ALB label: required. Indicates which ALB this `Frontend` belongs to.
+2. Frontend name: format as `$alb_name-$port`.
+3. Port: the listener port.
+4. Protocol: the listener protocol.
 ...
-5. certificate_name: for grpcs and https protocol which the default cert used, Format as `$secret_ns/$secret_name`.
-6. backendProtocol: what protocol the backend service uses.
+5. certificate_name: default cert for `grpcs`/`https`. Format: `$secret_ns/$secret_name`.
+6. backendProtocol: protocol used by the backend service.

198-201: gRPC certificate note: split sentences for readability.

-   - When selecting the gRPC protocol, the backend protocol defaults to gRPC, which does not support session persistence.If a certificate is set for the gRPC protocol, the load balancer will unload the gRPC certificate and forward the unencrypted gRPC traffic to the backend service.
+   - For gRPC, the backend protocol defaults to gRPC and does not support session persistence.
+   - If a certificate is set for gRPC, the load balancer terminates TLS and forwards unencrypted gRPC traffic to the backend.

225-229: “web UI” and session affinity path confirmation.

  • Spelling/casing fix.
  • Good job aligning session_affinity_policy with the YAML above.
-Each input item on the webui corresponds to a field of the CR
+Each input item in the web UI corresponds to a field of the CR
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 3ae0a2f and c1fd6c9.

⛔ Files ignored due to path filters (4)
  • docs/en/configure/networking/assets/create_alb_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_ft_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_rule_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/gatewayapi-architecture.png is excluded by !**/*.png
📒 Files selected for processing (26)
  • docs/en/configure/networking/architecture/understanding_alb.mdx (3 hunks)
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx (7 hunks)
  • docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/concepts/gatewayapi.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_ingress.mdx (3 hunks)
  • docs/en/configure/networking/how_to/alb/auth.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/cors.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/decision_makeing_for_performance_selection_of_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/header_modification.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/index.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/otel.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1 hunks)
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx (0 hunks)
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx (0 hunks)
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx (0 hunks)
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (2 hunks)
  • docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1 hunks)
💤 Files with no reviewable changes (3)
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx
✅ Files skipped from review due to trivial changes (1)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx
🚧 Files skipped from review as they are similar to previous changes (9)
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx
  • docs/en/configure/networking/how_to/alb/otel.mdx
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx
  • docs/en/configure/networking/how_to/alb/index.mdx
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx
  • docs/en/configure/networking/how_to/alb/decision_makeing_for_performance_selection_of_alb.mdx
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx
🧰 Additional context used
🪛 LanguageTool
docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx

[grammar] ~8-~8: There might be a mistake here.
Context: ...multiple ingress traffic specifications in Kubernetes ecosystem. This document com...

(QB_NEW_EN)


[grammar] ~8-~8: There might be a mistake here.
Context: ... specifications in Kubernetes ecosystem. This document compares them ([Service](....

(QB_NEW_EN)

docs/en/configure/networking/functions/configure_ingress.mdx

[grammar] ~24-~24: There might be a mistake here.
Context: ... add the 80 and 443 listening ports. ::: - [install ingress-nginx as ingress-control...

(QB_NEW_EN)


[grammar] ~25-~25: There might be a mistake here.
Context: ...tall ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx) - [install alb as ingress-controller](../ho...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...dx) - install alb as ingress-controller ## Example Ingress: ```yaml # nginx-ingres...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ...inxcontroller,$alb_name` to use alb as ingress controller. 3. If you only want...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ..._name` to use alb as ingress controller. 3. If you only want to run ingress locally,...

(QB_NEW_EN)

docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx

[grammar] ~9-~9: There might be a mistake here.
Context: ..._cluster_plugin.mdx) ## Max Connections [max-worker-connections](https://kubernet...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...map/#max-worker-connections) ## Timeout [config timeout](https://kubernetes.githu...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ...sticky-sessions) ## Header Modification |action|link| |--|--| |set header in req...

(QB_NEW_EN)


[grammar] ~19-~19: There might be a mistake here.
Context: ...s) ## Header Modification |action|link| |--|--| |set header in request|[proxy-se...

(QB_NEW_EN)


[grammar] ~20-~20: There might be a mistake here.
Context: ...eader Modification |action|link| |--|--| |set header in request|[proxy-set-header...

(QB_NEW_EN)


[grammar] ~21-~21: There might be a mistake here.
Context: ...figuration/annotations/#custom-headers)| |remove header in request| set a empty h...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...onfigmap/#hide-headers)| ## URL Rewrite [rewrite](https://kubernetes.github.io/in...

(QB_NEW_EN)


[grammar] ~29-~29: There might be a mistake here.
Context: ...## HSTS (HTTP Strict Transport Security) [configure HSTS](https://kubernetes.github.io/ingr...

(QB_NEW_EN)


[uncategorized] ~32-~32: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ginx-configuration/configmap/#hsts) ## Rate Limiting [config rate limiting](https://kubernet...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~32-~32: There might be a mistake here.
Context: ...ation/configmap/#hsts) ## Rate Limiting [config rate limiting](https://kubernetes...

(QB_NEW_EN)


[grammar] ~35-~35: There might be a mistake here.
Context: ...tion/annotations/#rate-limiting) ## WAF [modsecurity](https://kubernetes.github.i...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...uthentication) ### TLS edge termination [backend protocol](https://kubernetes.git...

(QB_NEW_EN)


[grammar] ~49-~49: There might be a mistake here.
Context: ...ions/#backend-protocol) ### Passthrough [ssl-passthrough]https://kubernetes.gith...

(QB_NEW_EN)

docs/en/configure/networking/concepts/gatewayapi.mdx

[grammar] ~12-~12: There might be a mistake here.
Context: ...ateway resource maps to an ALB resource. Listeners and routers are handled direct...

(QB_NEW_EN)

docs/en/configure/networking/functions/configure_alb_rule.mdx

[grammar] ~1-~1: There might be a mistake here.
Context: # Configure ALB Rules ## Introduction ### What is a Rule? Rule i...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ... must be attached to a frontend and alb via label. ::: ```yaml apiVersion: crd.ala...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ...ttached to a frontend and alb via label. ::: ```yaml apiVersion: crd.alauda.io/v...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...e Frontend to which this rule belongs. 2. Required, indicate the ALB to which this...

(QB_NEW_EN)


[grammar] ~58-~58: There might be a mistake here.
Context: ... used to describe the matching criteria. For example, the rule below matches a re...

(QB_NEW_EN)


[grammar] ~116-~116: There might be a mistake here.
Context: ...rity` using an integer value. ## Action After a request matches a rule, you can ...

(QB_NEW_EN)


[grammar] ~121-~121: There might be a mistake here.
Context: ...meout](../how_to/alb/l4_l7_timeout.mdx)| | Redirect | Redirects incoming ...

(QB_NEW_EN)


[grammar] ~122-~122: There might be a mistake here.
Context: ...irect](../how_to/alb/http_redirect.mdx)| | CORS | Enables Cross-Origi...

(QB_NEW_EN)


[grammar] ~123-~123: There might be a mistake here.
Context: ... |cors| | Header Modification | Allows modifi...

(QB_NEW_EN)


[grammar] ~124-~124: There might be a mistake here.
Context: ...(../how_to/alb/header_modification.mdx)| | URL Rewrite | Rewrites the URL of...

(QB_NEW_EN)


[grammar] ~125-~125: There might be a mistake here.
Context: ...rewrite](../how_to/alb/url_rewrite.mdx)| | WAF | Integrates Web Appl...

(QB_NEW_EN)


[grammar] ~126-~126: There might be a mistake here.
Context: ... |waf| | OTEL | Enables OpenTelemet...

(QB_NEW_EN)


[grammar] ~127-~127: There might be a mistake here.
Context: ...g. |otel| | Keepalive | Enables or disable...

(QB_NEW_EN)


[grammar] ~131-~131: There might be a mistake here.
Context: ...## backend protocol {#backend_protocol} By default, the backend protocol is set ...

(QB_NEW_EN)


[grammar] ~134-~134: There might be a mistake here.
Context: ...ession Affinity Policy {#service_group} You can configure one or more services w...

(QB_NEW_EN)


[grammar] ~141-~141: There might be a mistake here.
Context: ...ty_policy_in_alb.mdx). ## Creating Rule ### Using web console ![](../assets/create_r...

(QB_NEW_EN)


[style] ~147-~147: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the load balancer. 4. Click on the name of the listener port. 5. Cl...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~148-~148: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the listener port. 5. Click Add Rule. 6. Refer to the following...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[grammar] ~152-~152: Ensure spelling is correct
Context: ... Click Add. Each input item on the webui corresponds to a field of the CR ### u...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: Ensure spelling is correct
Context: ... the frontend protocol (ft) is HTTPS or GRPCS, the rule can also be configured to use...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: There might be a mistake here.
Context: ...ule can also be configured to use HTTPS. You can specify the certificate either i...

(QB_NEW_EN)


[grammar] ~166-~166: There might be a mistake here.
Context: .... ### Certificate Annotation in Ingress Certificates can be referenced across na...

(QB_NEW_EN)


[grammar] ~172-~172: There might be a mistake here.
Context: ...Certificate in Rule {#certificate_name} In .spec.certificate_name, the format ...

(QB_NEW_EN)


[grammar] ~175-~175: There might be a mistake here.
Context: ...et_namespace/$secret_name` ### TLS Mode #### Edge Mode In edge mode, the client commu...

(QB_NEW_EN)


[grammar] ~176-~176: There might be a mistake here.
Context: ...ecret_name` ### TLS Mode #### Edge Mode In edge mode, the client communicates wi...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ...th backend services using HTTP protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...his: 1. create ft use https protocol 2. create rule with backend protocol http, and sp...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol http, and specify cert...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te rule with backend protocol http, and specify cert via .spec.certificate_name #### ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... ALB communicates with backend services using HTTPS protocol. To achieve this: 1. cre...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ...h backend services using HTTPS protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol https, and specify cer...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...e rule with backend protocol https, and specify cert via .spec.certificate_name ## I...

(QB_NEW_EN)


[grammar] ~188-~188: There might be a mistake here.
Context: ...s} ### ingress sync {#alb_ingress_sync} Each ALB creates an IngressClass with th...

(QB_NEW_EN)


[grammar] ~200-~200: There might be a mistake here.
Context: ....source.namespace` is ingress namespace. ::: #### ssl strategy {#alb_ingress_ss...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...sl strategy {#alb_ingress_ssl_strategy} For ingresses that do not have certifica...

(QB_NEW_EN)


[grammar] ~206-~206: There might be a mistake here.
Context: ...om resource with the following settings: - .spec.config.defaultSSLStrategy: Defines the SSL strategy for ingresses...

(QB_NEW_EN)


[grammar] ~207-~207: There might be a mistake here.
Context: ...ategy for ingresses without certificates - .spec.config.defaultSSLCert: Sets the default certificate in the fo...

(QB_NEW_EN)


[grammar] ~210-~210: There might be a mistake here.
Context: ...$secret_name` Available SSL strategies: - Never: Do not create rules on HTTPS po...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/auth.mdx

[style] ~134-~134: This phrase is redundant. Consider writing “details”.
Context: ... series of annotations to configure the specific details of the authentication process. Below is...

(SPECIFIC_DETAILS)

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx

[grammar] ~6-~6: Ensure spelling is correct
Context: ...52c10984d03564c0cdec45 --- # Configure GatewayApi Gateway via ALB An inbound gateway (Ga...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/en/configure/networking/how_to/alb/cors.mdx

[grammar] ~3-~3: There might be a mistake here.
Context: # CORS ## Basic Concepts [CORS](https://developer.mozilla.org/en-U...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_alb.mdx

[grammar] ~7-~7: There might be a mistake here.
Context: ...70cb27c0597def5 --- # Deploy ALB ## ALB ALB is a custom resource that represents a ...

(QB_NEW_EN)


[grammar] ~52-~52: There might be a mistake here.
Context: ...e: nginx ``` #### Resource Configuration resource related field describes the deployment ...

(QB_NEW_EN)


[grammar] ~53-~53: There might be a mistake here.
Context: ...he deployment configuration for the alb. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~66-~66: There might be a mistake here.
Context: ... you can access the ALB via the node IP. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~69-~69: There might be a mistake here.
Context: ...d uses its address as the ALB address. | | .spec.address | string,required | yo...

(QB_NEW_EN)


[grammar] ~70-~70: There might be a mistake here.
Context: ...ld manually specify the address of alb | | .spec.config.vip.enableLbSvc | bool,...

(QB_NEW_EN)


[grammar] ~74-~74: There might be a mistake here.
Context: ...r Service. | #### project configuration | Field | Type | |-------|------| | `.s...

(QB_NEW_EN)


[grammar] ~75-~75: There might be a mistake here.
Context: ... project configuration | Field | Type | |-------|------| | `.spec.config.project...

(QB_NEW_EN)


[grammar] ~76-~76: There might be a mistake here.
Context: ...ation | Field | Type | |-------|------| | .spec.config.projects | []string,req...

(QB_NEW_EN)


[grammar] ~77-~77: There might be a mistake here.
Context: ...c.config.projects| []string,required | |.spec.config.portProjects` | string,o...

(QB_NEW_EN)


[grammar] ~78-~78: There might be a mistake here.
Context: ...config.portProjects| string,optional | |.spec.config.enablePortProject` | boo...

(QB_NEW_EN)


[grammar] ~82-~82: There might be a mistake here.
Context: ...project can find and configure this ALB. 2. This ALB will handle ingress resources b...

(QB_NEW_EN)


[grammar] ~90-~90: There might be a mistake here.
Context: ...obal config which can be tweaked in alb cr. - bind-nic - [ingr...

(QB_NEW_EN)


[grammar] ~91-~91: There might be a mistake here.
Context: ...ch can be tweaked in alb cr. - bind-nic - [ingress-sync](../../functions/configure_...

(QB_NEW_EN)


[grammar] ~105-~105: There might be a mistake here.
Context: ...eld of the CR: |Parameter| Description| |--|--| |Assigned Address| `.spec.addres...

(QB_NEW_EN)


[grammar] ~106-~106: There might be a mistake here.
Context: ...he CR: |Parameter| Description| |--|--| |Assigned Address| .spec.address| |All...

(QB_NEW_EN)


[grammar] ~107-~107: There might be a mistake here.
Context: ...|--| |Assigned Address| .spec.address| |Allocated By| Instance means project ...

(QB_NEW_EN)


[grammar] ~136-~136: There might be a mistake here.
Context: ...tate. 5. Click Update. #### Delete ##### Using the web console :::note After del...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ... (tcp|udp). In L4 Proxy use frontend to configure backend service directly. In L7 Proxy u...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ...d to configure backend service directly. In L7 Proxy use frontend to configure li...

(QB_NEW_EN)


[grammar] ~160-~160: There might be a mistake here.
Context: ..._rule.mdx) to configure backend service. If you need to add an HTTPS listener por...

(QB_NEW_EN)


[grammar] ~164-~164: There might be a mistake here.
Context: ...adings-in-section */} ### Prerequisites Create a ALB first. ### Configure Front...

(QB_NEW_EN)


[grammar] ~195-~195: There might be a mistake here.
Context: ...ntend name: Format as $alb_name-$port. 3. port: which port which listen on. 4. pro...

(QB_NEW_EN)


[grammar] ~196-~196: There might be a mistake here.
Context: ...t`. 3. port: which port which listen on. 4. protocol: what protocol this port uses. ...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...ed, Format as $secret_ns/$secret_name. 6. backendProtocol: what protocol the backe...

(QB_NEW_EN)


[grammar] ~207-~207: There might be a mistake here.
Context: ...alls back to the default serviceGroup. 8. [session_affinity_policy](./load_balancin...

(QB_NEW_EN)


[grammar] ~214-~214: There might be a mistake here.
Context: ... ### Operation On Frontend #### Creating ##### using the web console ![](../../assets/c...

(QB_NEW_EN)


[grammar] ~225-~225: Ensure spelling is correct
Context: ...k Add Port. Each input item on the webui corresponds to a field of the CR |Param...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~226-~226: There might be a mistake here.
Context: ... field of the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serv...

(QB_NEW_EN)


[grammar] ~227-~227: There might be a mistake here.
Context: ...the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serviceGroup.s...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx

[grammar] ~17-~17: There might be a mistake here.
Context: ...guration). | Annotation | Description | |---|---| | `metallb.universe.tf/loadBal...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ... | Annotation | Description | |---|---| | metallb.universe.tf/loadBalancerIPs ...

(QB_NEW_EN)


[grammar] ~22-~22: There might be a mistake here.
Context: ... pool to allocate from. | ## Method 2: Use external ALB device to provide VIP * P...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...the ports in use to reduce the downtime of ALB upgrade. The health check configura...

(QB_NEW_EN)


[grammar] ~31-~31: There might be a mistake here.
Context: ...h check, it is recommended to use TCP. | | Response Timeout | The time requir...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/header_modification.mdx

[grammar] ~10-~10: There might be a mistake here.
Context: ...annotation key | |---------|-----------------------------...

(QB_NEW_EN)


[grammar] ~11-~11: There might be a mistake here.
Context: ...---------------------------------------| | ingress | `alb.ingress.cpaas.io/rewrit...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...alb.ingress.cpaas.io/rewrite-response| | rule |alb.rule.cpaas.io/rewrite-r...

(QB_NEW_EN)


[grammar] ~30-~30: There might be a mistake here.
Context: ... value is the ALB context variable name. For example, add the following annotatio...

(QB_NEW_EN)


[grammar] ~44-~44: There might be a mistake here.
Context: ... | |--------------------------------|------...

(QB_NEW_EN)


[grammar] ~45-~45: There might be a mistake here.
Context: ...---------------------------------------| | first_forward_or_remote_addr | the f...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...mote address, default is remote_addr | | first_forward | the f...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/url_rewrite.mdx

[grammar] ~6-~6: There might be a mistake here.
Context: ...ps to rewrite the URL. ## Configuration via ingress annotation ```yaml apiVersio...

(QB_NEW_EN)


[grammar] ~48-~48: There might be a mistake here.
Context: ...rget: /$3 ``` Example: client requests /prefix-x/abc; backend receives `/abc`.

(QB_NEW_EN)

🔇 Additional comments (8)
docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (2)

90-97: Anchor Verified – No Further Changes Required

The anchor loadbalancer_type_service_annotation is present at line 319 in docs/en/configure/networking/functions/configure_service.mdx, so the internal link in configure_gatewayapi_gateway_via_alb.mdx will resolve correctly.


24-70: Consider switching to gateway.networking.k8s.io/v1 for the Gateway resource

This document currently specifies the Gateway API at v1beta1, while other guides (e.g. the Canary Deployment walkthrough) are already using the stable v1 version. If your cluster’s Gateway CRDs support v1, please align this example for consistency; otherwise you can safely retain v1beta1.

Locations to update:

  • docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx: line 28 (Gateway apiVersion)
  • docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx: line 239 (Gateway apiVersion)

Suggested diff:

--- a/docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx
+++ b/docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx
@@ -25,7 +25,7 @@
 apiVersion: gateway.networking.k8s.io/v1beta1
 kind: Gateway
 metadata:
@@
- apiVersion: gateway.networking.k8s.io/v1beta1
+ apiVersion: gateway.networking.k8s.io/v1
 kind: Gateway
docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1)

30-34: Confirm port values (11782/1936) match product defaults

• Port 11782 is referenced in:
– docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (line 30)
– docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (lines 45, 211, 294)

• Port 1936 is referenced in:
– docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (line 30)
– docs/en/configure/networking/how_to/soft_data_center_lb_solution.mdx (lines 102, 126)

All occurrences consistently document “11782 for global clusters” and “1936 for business clusters.” Please verify these values against your actual product defaults (e.g., in the service configuration or codebase) to ensure accuracy.

docs/en/configure/networking/how_to/alb/header_modification.mdx (1)

10-13: Verify and standardize ALB annotation domains

Our documentation currently mixes multiple annotation domain prefixes:

  • alb.ingress.cpaas.io (used in auth, header modification, session‐affinity, OpenTelemetry and tracing examples)
  • alb.rule.cpaas.io (used in header_modification.mdx)
  • alb.networking.cpaas.io (used for TLS in configure_alb_rule.mdx)
  • alb.cpaas.io (used for ingress‐rule‐priority and alb-ref)

Please confirm which domain is the canonical, supported prefix (for example, alb.cpaas.io/*) and update all affected docs to use it consistently.

Key files/locations to update:

  • docs/en/configure/networking/functions/configure_alb_rule.mdx (lines around 111–112, 169)
  • docs/en/configure/networking/how_to/alb/auth.mdx
  • docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx
  • docs/en/configure/networking/how_to/alb/header_modification.mdx
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx
  • docs/en/configure/networking/how_to/alb/otel.mdx
  • docs/en/observability/tracing/installation.mdx
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

1-5: Good: Rule CR example and capture group usage are correct

rewrite_target: /$3 matches the provided regex and the example explanation is consistent.

Also applies to: 44-46, 48-48

docs/en/configure/networking/concepts/gatewayapi.mdx (1)

6-9: LGTM: Clear intro and diagram context

Good high‑level framing and helpful visual reference.

docs/en/configure/networking/architecture/understanding_alb.mdx (1)

212-212: Link target looks correct.

The new destination aligns with the restructured docs.

docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1)

14-15: ALB VIP documentation link is valid

The file deploy_high_available_vip_for_alb.mdx exists in docs/en/configure/networking/how_to/alb/, so the link [Configure VIP](./deploy_high_available_vip_for_alb.mdx) resolves correctly. No update is needed.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (9)
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

6-26: Ingress example mixes NGINX annotations with ingressClassName: alb — remove or clearly label.

ALB does not honor nginx.ingress.kubernetes.io/rewrite-target. Keep this ALB page consistent by removing the NGINX snippet or explicitly labeling it as NGINX and fixing it there.

-## Configuration
-via ingress annotation
-```yaml
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
-  nginx.ingress.kubernetes.io/rewrite-target: /$2
-  name: demo
-spec:
-  ingressClassName: alb
-  rules:
-  - http:
-      paths:
-      - backend:
-          service:
-            name: frontend
-            port:
-              number: 8080
-        path: /(prefix-x)(/|$)(.*)
-        pathType: ImplementationSpecific
-```
+## Configuration
+> Note: The ALB controller does not support URL rewrite via ingress annotations. Use the Rule CRD approach below.
docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1)

41-50: Fix malformed passthrough link.

 ### Passthrough
-[ssl-passthrough]https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#ssl-passthrough)
+[ssl-passthrough](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#ssl-passthrough)
docs/en/configure/networking/concepts/gatewayapi.mdx (1)

11-14: Good fix: “routes” (Gateway API term) used consistently.

Thanks for aligning with upstream terminology.

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1)

15-15: Broken anchor reference in ALB documentation

The link in docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx:

[ALB networking configuration](./deploy_alb.mdx#alb_networking_configuration)

points to an anchor that doesn’t exist in docs/en/configure/networking/how_to/alb/deploy_alb.mdx. To resolve this:

  • In docs/en/configure/networking/how_to/alb/deploy_alb.mdx, locate the “#### Networking Configuration” header and add the missing anchor identifier. For example:

    #### Networking Configuration {#alb_networking_configuration}
  • Alternatively, if the intended target is a different header, update the link in deploy_high_available_vip_for_alb.mdx to match the actual {#…} ID defined in deploy_alb.mdx.

Please ensure the anchor ID is consistent between the link and the header.

docs/en/configure/networking/functions/configure_alb_rule.mdx (2)

11-12: Unescape heading IDs so anchors work.

Same issue noted previously; anchors won’t generate with escaped braces.

-### Quick demo of rule \{#alb_add_rule}
+### Quick demo of rule {#alb_add_rule}
@@
-### backend protocol \{#backend_protocol}
+### backend protocol {#backend_protocol}
@@
-### Service Group and Session Affinity Policy \{#service_group}
+### Service Group and Session Affinity Policy {#service_group}
@@
-### Certificate in Rule \{#certificate_name}
+### Certificate in Rule {#certificate_name}
@@
-## Ingress \{#alb_ingress}
-### ingress sync \{#alb_ingress_sync}
+## Ingress {#alb_ingress}
+### ingress sync {#alb_ingress_sync}
@@
-#### ssl strategy \{#alb_ingress_ssl_strategy}
+#### ssl strategy {#alb_ingress_ssl_strategy}

Also applies to: 131-131, 134-134, 172-172, 187-188, 203-203


169-170: Standardize annotation domain to alb.cpaas.io.

Previously flagged; keep a single domain to avoid confusion.

-alb.networking.cpaas.io/tls: qq.com=cpaas-system/dex.tls,qq1.com=cpaas-system/dex1.tls
+alb.cpaas.io/tls: qq.com=cpaas-system/dex.tls,qq1.com=cpaas-system/dex1.tls
docs/en/configure/networking/how_to/alb/header_modification.mdx (1)

17-28: Tighten Go comments (phrasing); prior issue partially fixed.

Replace awkward “which values …” with concise wording.

 type RewriteRequestConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // set header, which values are variable name 
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
-	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // add header, which values could be multiple and which values are variable name
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // Set header; values are variable names
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header; values can contain multiple entries
+	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // Add header; values can contain multiple entries; values are variable names
 }
 type RewriteResponseConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header; values can contain multiple entries
 }
docs/en/configure/networking/how_to/alb/deploy_alb.mdx (2)

14-15: Fix broken VIP link to local section.

This page removes the standalone VIP doc; link to the Networking section here.

-The high availability of the **Load Balancer** requires a VIP. Please refer to [Configure VIP](./deploy_high_available_vip_for_alb.mdx).
+The high availability of the **Load Balancer** requires a VIP. See [Networking Configuration](#alb_networking_configuration) for VIP options.

58-61: Resource table paths are incorrect (resourceresources); align with example YAML.

These typos will mislead users.

-| `.spec.config.resource.limit` | k8s container-resource,optional |  limit of nginx container of alb |
-| `.spec.config.resource.request` | k8s container-resource,optional |  request of nginx container of alb |
-| `.spec.config.resource.alb.limit` | k8s container-resource,optional |  limit of alb container of alb |
-| `.spec.config.resource.alb.request` | k8s container-resource,optional | request of alb container of alb |
+| `.spec.config.resources.limits` | k8s container resources, optional | Limits for the nginx container. |
+| `.spec.config.resources.requests` | k8s container resources, optional | Requests for the nginx container. |
+| `.spec.config.resources.alb.limits` | k8s container resources, optional | Limits for the ALB container. |
+| `.spec.config.resources.alb.requests` | k8s container resources, optional | Requests for the ALB container. |
🧹 Nitpick comments (38)
docs/en/configure/networking/how_to/alb/cors.mdx (1)

3-5: Tighten wording in Basic Concepts.

Minor grammar polish for clarity.

-## Basic Concepts
-[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS) (Cross-Origin Resource Sharing) is a mechanism that allows resources (e.g., fonts, JavaScript, etc.) on a web page to be requested from another domain outside the domain from which the resource originated.
+## Basic Concepts
+[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS) (Cross‑Origin Resource Sharing) allows a web page to request resources (for example, fonts or JavaScript) from a different origin.
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

48-48: Minor wording tweak.

-Example: client requests `/prefix-x/abc`; backend receives `/abc`.
+Example: client requests `/prefix-x/abc`; the backend receives `/abc`.
docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (2)

21-24: Grammar and directive name in table.

  • “a empty” → “an empty”.
  • The directive is more_set_headers (plural, underscores).
-|remove header in request| set a empty header in request |
-|set header in response|[configuration-snippets](https://kubernetes.github.io/ingress-nginx/examples/customization/configuration-snippets/) with [more-set-header](https://github.com/openresty/headers-more-nginx-module?tab=readme-ov-file#more_set_headers) directive |
+|remove header in request| set an empty header in request |
+|set header in response|[configuration-snippets](https://kubernetes.github.io/ingress-nginx/examples/customization/configuration-snippets/) with [more_set_headers](https://github.com/openresty/headers-more-nginx-module?tab=readme-ov-file#more_set_headers) directive |

38-40: Heading consistency.

Consider “Forwarded headers” to match common terminology; optional.

-## Forward-header control
+## Forwarded headers
docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (5)

6-6: Use canonical “GatewayAPI” casing in the title.

Keeps terminology consistent across the docs and avoids broken anchors.

Apply:

-# Configure GatewayApi Gateway via ALB
+# Configure GatewayAPI Gateway via ALB

36-36: Example names/labels are consistent; add a brief note to replace placeholders.

Readers may copy-paste values like test-o93q7. Add a line reminding them to substitute real names.

   labels:
-    alb.cpaas.io/alb-ref: test-o93q7 # [!code callout]
+    alb.cpaas.io/alb-ref: test-o93q7 # [!code callout] replace with your ALB2 name
...
   name: test-o93q7 # [!code callout]

Also consider appending after the Callouts block: “Replace test/test-o93q7 with your Gateway/ALB2 names.”

Also applies to: 51-51, 73-76


39-39: Link “Gateway Class” to the concept page for quick reference.

Improves discoverability of available classes like exclusive-gateway.

-  gatewayClassName: exclusive-gateway # [!code callout]
+  gatewayClassName: exclusive-gateway # [!code callout] (see concepts: GatewayAPI)

And in Callouts item 2, link directly:

-2. See the Gateway Class introduction below.
+2. See the Gateway Class introduction below and the [GatewayAPI concepts](../../concepts/gatewayapi.mdx).

Also applies to: 72-76


28-30: Consider updating Gateway API versions to v1 where supported.

If your clusters ship GA CRDs, prefer gateway.networking.k8s.io/v1 for Gateway and HTTPRoute.

-apiVersion: gateway.networking.k8s.io/v1beta1
+apiVersion: gateway.networking.k8s.io/v1
...
-# example-httproute.yaml
-apiVersion: gateway.networking.k8s.io/v1beta1
+# example-httproute.yaml
+apiVersion: gateway.networking.k8s.io/v1

If some environments still require v1beta1, add a note listing the minimum Kubernetes/Gateway API versions.

Also applies to: 239-241


118-137: Naming consistency: “ALB2 name format” vs resources table uses “name-lb-random”.

Callouts state {gatewayName}-{random}, while the table shows name-lb-random. Align to a single convention to avoid confusion.

docs/en/configure/networking/concepts/gatewayapi.mdx (1)

8-9: Add one‑line bullets for the three personas.

The image is great; a short list improves skimmability and accessibility.

 The overall resource model focuses on 3 separate personas and corresponding resources that they are expected to manage:
 ![](../assets/gatewayapi-architecture.png)
+• Infrastructure provider: defines GatewayClasses
+• Platform operator: manages Gateways
+• Application developer: owns Route resources
docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (2)

4-4: Unify project naming: prefer “Ingress NGINX”.

The header uses “Ingress‑Nginx” while body uses “Ingress NGINX”. Standardize for consistency.

-# Install Ingress-Nginx via Cluster Plugin 
+# Install Ingress NGINX via Cluster Plugin

158-161: Capitalize link text and clarify targets.

Minor polish and consistency with section titles.

-[tasks for ingress-nginx](./tasks_for_ingress_nginx.mdx)  
+[Tasks for Ingress NGINX](./tasks_for_ingress_nginx.mdx)  
docs/en/configure/networking/how_to/alb/auth.mdx (1)

136-152: Table: clarify support for auth-type.

Support column shows “-” while notes say basic is supported. Mark as supported and note digest unsupported.

-| nginx.ingress.kubernetes.io/auth-type                                                                                                                  | -       | "basic" or "digest" | basic: supports apr1 **digest: not supported**                                             |
+| nginx.ingress.kubernetes.io/auth-type                                                                                                                  | v       | "basic"             | basic supported (apr1). digest not supported.                                              |
docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (2)

5-5: Title: use “High‑Availability” phrasing.

More idiomatic English and better SEO.

-# Deploy High Available VIP for ALB
+# Deploy a High‑Availability VIP for ALB

28-35: Health check table: minor copy edits for clarity.

Tighten phrasing; keep parameters intact.

-    | **Protocol** | The protocol type of the health check, it is recommended to use TCP. |
-    | **Response Timeout** | The time required to receive the health check response, it is recommended to configure it to 2 seconds. |
-    | **Check Interval** | The time interval for the health check, it is recommended to configure it to 5 seconds. |
-    | **Unhealthy Threshold** | The number of consecutive failures after which the health check status of the backend server is determined to be failed, it is recommended to configure it to 3 times. |    
+    | **Protocol** | Health check protocol. Recommended: TCP. |
+    | **Response Timeout** | Time to wait for a health check response. Recommended: 2s. |
+    | **Check Interval** | Interval between health checks. Recommended: 5s. |
+    | **Unhealthy Threshold** | Consecutive failures to mark backend unhealthy. Recommended: 3. |    
docs/en/configure/networking/functions/configure_ingress.mdx (4)

18-24: Tighten “Implementation Method” wording; fix port phrasing.

Clearer, idiomatic phrasing and correct “port 80/443” usage.

-Ingress rules depend on the implementation of the Ingress Controller, which is responsible for listening to changes in Ingress and Service. After a new Ingress is created, when the Ingress Controller receives a request, it matches the forwarding rule from the Ingress and distributes the traffic to the specified internal routes, as shown in the diagram below.
+Ingress behavior depends on the Ingress controller implementation. After an Ingress is created, the controller watches Ingress/Service changes and, on each request, matches rules from the Ingress to route traffic to the specified backends, as shown below.
@@
-For the HTTP protocol, Ingress only supports the 80 port as the external port. For the HTTPS protocol, Ingress only supports the 443 port as the external port. The platform's load balancer will automatically add the 80 and 443 listening ports.
+For HTTP, Ingress exposes port 80; for HTTPS, it exposes port 443. The platform load balancer automatically listens on ports 80 and 443.

25-26: Capitalize product names; improve link copy.

-- [install ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
-- [install alb as ingress-controller](../how_to/alb/deploy_alb.mdx)
+- [Install Ingress-NGINX as an Ingress controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
+- [Install ALB as an Ingress controller](../how_to/alb/deploy_alb.mdx)

53-60: Clarify Callouts item 2.

Make controller selection explicit and grammatical.

-2. `nginx` to using `ingress-nginx` controller, `$alb_name` to use alb as ingress controller.
+2. Set `ingressClassName: nginx` to use the Ingress-NGINX controller, or set `ingressClassName: $alb_name` to use the ALB controller.

61-61: Use “an Ingress.”

-## Creating a Ingress by using the web console
+## Creating an Ingress by using the web console
@@
-## Creating a Ingress by using the CLI
+## Creating an Ingress by using the CLI

Also applies to: 82-82

docs/en/configure/networking/functions/configure_alb_rule.mdx (5)

10-10: Clarify prerequisite wording and link to Frontend section.

-[install alb and ft](../how_to/alb/deploy_alb.mdx)
+[Install ALB and create a Frontend](../how_to/alb/deploy_alb.mdx#configure-frontend)

56-58: Title case section headings; be consistent with “DSLX.”

-### match request with dslx and priority
-#### dslx
+### Match requests with DSLX and priority
+#### DSLX

66-67: Grammar: cookie bullet.

-- has a cookie name is uid
+- has a cookie named `uid`

152-152: “webui” → “web UI.”

-Each input item on the webui corresponds to a field of the CR
+Each input item on the web UI corresponds to a field of the CR

160-160: Capitalize HTTPS.

-## Https
+## HTTPS
docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (3)

8-10: Tighten intro; add article before “Kubernetes ecosystem.”

-The Alauda Container Platform supports multiple ingress traffic specifications in Kubernetes ecosystem.
-This document compares them ([Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx)) to help users make the right choice.
+The Alauda Container Platform supports multiple ingress traffic specifications in the Kubernetes ecosystem.
+This document compares [Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx) to help you choose the right one.

22-24: Subject–verb agreement; minor polish.

-Ingress is the standard specification adopted by the Kubernetes community and are recommended for default use.
-The Ingress is handled by ALB instances that are managed by the platform administrator.
+Ingress is the standard specification adopted by the Kubernetes community and is recommended for default use.
+Ingress resources are handled by ALB instances managed by the platform administrator.

18-18: Use “Gateway API” consistently and improve phrasing.

-While Ingress, GatewayAPI, and ALB Rules can all expose L7 traffic externally, they differ in their capabilities and isolation models.
+While Ingress, Gateway API, and ALB Rules can all expose L7 traffic externally, they differ in capabilities and isolation models.
@@
-### GatewayAPI
+### Gateway API
@@
-GatewayAPI provides more flexible isolation mode, however they are not as mature as Ingress.
-By using GatewayAPI developer can create their own isolated ALB instances to handle GatewayAPI rules.
-Therefore, if you need to delegate the creation and management of ALB instances to developers, you need to choose to use GatewayAPI.
+Gateway API provides a more flexible isolation model, but it is not as mature as Ingress.
+With Gateway API, developers can create isolated ALB instances to handle Gateway API rules.
+Choose Gateway API if you need to delegate ALB instance creation and management to developers.

Also applies to: 25-30

docs/en/configure/networking/how_to/alb/header_modification.mdx (3)

9-13: Title case heading.

-### use annotations
+### Use annotations

39-41: Clarify explanatory sentence.

-will add key `x-my-host` and value of request host header to request header.
-you can refer to the [nginx variable](http://nginx.org/en/docs/varindex.html) for the variable names.
+This adds header `x-my-host` with the request Host value.
+See [NGINX variables](http://nginx.org/en/docs/varindex.html) for available variable names.

49-49: Title case section heading.

-## examples
+## Examples
docs/en/configure/networking/how_to/alb/deploy_alb.mdx (8)

65-66: Unescape anchor ID; refine sentence.

-#### Networking Configuration \{#alb_networking_configuration\}
-Networking fields describe how to access the ALB. For example, in `host` mode, alb will use hostnetwork, and you can access the ALB via the node IP.
+#### Networking Configuration {#alb_networking_configuration}
+Networking fields describe how to access the ALB. For example, in `host` mode the ALB uses host networking, and you can access it via the node IP.

70-72: Minor grammar/casing nits.

-| `.spec.address` | string,required | you could manually specify the address of alb |
+| `.spec.address` | string, required | Manually specify the ALB address. |
@@
-| `.spec.config.vip.enableLbSvc` | bool, optional | Automatically true in `container` mode. |
+| `.spec.config.vip.enableLbSvc` | bool, optional | Automatically set to true in `container` mode. |

74-74: Normalize heading capitalization; tighten wording.

-#### project configuration
+#### Project configuration
@@
-#### tweak configuration
-there are some global config which can be tweaked in alb cr.
+#### Tweak configuration
+Some global configuration can be tweaked in the ALB CR:

Also applies to: 89-90


165-165: Article usage.

-Create a ALB first.
+Create an ALB first.

159-161: Clarify L4/L7 sentences.

-In L4 Proxy use frontend to configure backend service directly.
-In L7 Proxy use frontend to configure listener ports, and use [rule](../../functions/configure_alb_rule.mdx) to configure backend service.
+For L4 proxying, configure the backend service directly on the Frontend.
+For L7 proxying, configure listener ports on the Frontend and backend routing via [Rules](../../functions/configure_alb_rule.mdx).

195-201: Polish Callouts: grammar and clarity.

-1. alb label: Required, indicate the ALB instance to which this `Frontend` belongs to.
-2. frontend name: Format as `$alb_name-$port`.
-3. port: which port which listen on.
-4. protocol: what protocol this port uses.
+1. ALB label: required; indicates the ALB instance this `Frontend` belongs to.
+2. Frontend name: format as `$alb_name-$port`.
+3. Port: the port to listen on.
+4. Protocol: the listener protocol.
@@
-5. certificate_name: for grpcs and https protocol which the default cert used, Format as `$secret_ns/$secret_name`.
-6. backendProtocol: what protocol the backend service uses.
+5. certificate_name: default certificate for GRPCS/HTTPS; format `$secret_ns/$secret_name`.
+6. backendProtocol: the protocol used to connect to the backend service.

Also applies to: 203-206


200-201: Fix punctuation and readability.

-   - When selecting the gRPC protocol, the backend protocol defaults to gRPC, which does not support session persistence.If a certificate is set for the gRPC protocol, the load balancer will unload the gRPC certificate and forward the unencrypted gRPC traffic to the backend service.
+   - When selecting the gRPC protocol, the backend protocol defaults to gRPC (no session persistence). If a certificate is set for gRPC, the load balancer terminates TLS and forwards unencrypted gRPC traffic to the backend service.

225-225: “webui” → “web UI.”

-Each input item on the webui corresponds to a field of the CR
+Each input item on the web UI corresponds to a field of the CR
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between c1fd6c9 and 01bf95f.

⛔ Files ignored due to path filters (4)
  • docs/en/configure/networking/assets/create_alb_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_ft_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_rule_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/gatewayapi-architecture.png is excluded by !**/*.png
📒 Files selected for processing (26)
  • docs/en/configure/networking/architecture/understanding_alb.mdx (3 hunks)
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx (7 hunks)
  • docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/concepts/gatewayapi.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_ingress.mdx (3 hunks)
  • docs/en/configure/networking/how_to/alb/auth.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/cors.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/decision_making_for_performance_selection_of_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/header_modification.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/index.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/otel.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1 hunks)
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx (0 hunks)
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx (0 hunks)
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx (0 hunks)
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (2 hunks)
  • docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1 hunks)
💤 Files with no reviewable changes (3)
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx
✅ Files skipped from review due to trivial changes (2)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx
🚧 Files skipped from review as they are similar to previous changes (6)
  • docs/en/configure/networking/how_to/alb/index.mdx
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx
  • docs/en/configure/networking/how_to/alb/otel.mdx
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx
  • docs/en/configure/networking/architecture/understanding_alb.mdx
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx
🧰 Additional context used
🪛 LanguageTool
docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx

[grammar] ~9-~9: There might be a mistake here.
Context: ..._cluster_plugin.mdx) ## Max Connections [max-worker-connections](https://kubernet...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...map/#max-worker-connections) ## Timeout [config timeout](https://kubernetes.githu...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ...sticky-sessions) ## Header Modification |action|link| |--|--| |set header in req...

(QB_NEW_EN)


[grammar] ~19-~19: There might be a mistake here.
Context: ...s) ## Header Modification |action|link| |--|--| |set header in request|[proxy-se...

(QB_NEW_EN)


[grammar] ~20-~20: There might be a mistake here.
Context: ...eader Modification |action|link| |--|--| |set header in request|[proxy-set-header...

(QB_NEW_EN)


[grammar] ~21-~21: There might be a mistake here.
Context: ...figuration/annotations/#custom-headers)| |remove header in request| set a empty h...

(QB_NEW_EN)


[grammar] ~29-~29: There might be a mistake here.
Context: ...## HSTS (HTTP Strict Transport Security) [configure HSTS](https://kubernetes.github.io/ingr...

(QB_NEW_EN)


[uncategorized] ~32-~32: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ginx-configuration/configmap/#hsts) ## Rate Limiting [config rate limiting](https://kubernet...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~32-~32: There might be a mistake here.
Context: ...ation/configmap/#hsts) ## Rate Limiting [config rate limiting](https://kubernetes...

(QB_NEW_EN)


[grammar] ~35-~35: There might be a mistake here.
Context: ...tion/annotations/#rate-limiting) ## WAF [modsecurity](https://kubernetes.github.i...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...uthentication) ### TLS edge termination [backend protocol](https://kubernetes.git...

(QB_NEW_EN)


[grammar] ~49-~49: There might be a mistake here.
Context: ...ions/#backend-protocol) ### Passthrough [ssl-passthrough]https://kubernetes.gith...

(QB_NEW_EN)

docs/en/configure/networking/functions/configure_alb_rule.mdx

[grammar] ~1-~1: There might be a mistake here.
Context: # Configure ALB Rules ## Introduction ### What is a Rule? Rule i...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ... must be attached to a frontend and alb via label. ::: ```yaml apiVersion: crd.ala...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ...ttached to a frontend and alb via label. ::: ```yaml apiVersion: crd.alauda.io/v...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...e Frontend to which this rule belongs. 2. Required, indicate the ALB to which this...

(QB_NEW_EN)


[grammar] ~58-~58: There might be a mistake here.
Context: ... used to describe the matching criteria. For example, the rule below matches a re...

(QB_NEW_EN)


[grammar] ~116-~116: There might be a mistake here.
Context: ...rity` using an integer value. ## Action After a request matches a rule, you can ...

(QB_NEW_EN)


[grammar] ~121-~121: There might be a mistake here.
Context: ...meout](../how_to/alb/l4_l7_timeout.mdx)| | Redirect | Redirects incoming ...

(QB_NEW_EN)


[grammar] ~122-~122: There might be a mistake here.
Context: ...irect](../how_to/alb/http_redirect.mdx)| | CORS | Enables Cross-Origi...

(QB_NEW_EN)


[grammar] ~123-~123: There might be a mistake here.
Context: ... |cors| | Header Modification | Allows modifi...

(QB_NEW_EN)


[grammar] ~124-~124: There might be a mistake here.
Context: ...(../how_to/alb/header_modification.mdx)| | URL Rewrite | Rewrites the URL of...

(QB_NEW_EN)


[grammar] ~125-~125: There might be a mistake here.
Context: ...rewrite](../how_to/alb/url_rewrite.mdx)| | WAF | Integrates Web Appl...

(QB_NEW_EN)


[grammar] ~126-~126: There might be a mistake here.
Context: ... |waf| | OTEL | Enables OpenTelemet...

(QB_NEW_EN)


[grammar] ~127-~127: There might be a mistake here.
Context: ...g. |otel| | Keepalive | Enables or disable...

(QB_NEW_EN)


[grammar] ~131-~131: There might be a mistake here.
Context: ...## backend protocol {#backend_protocol} By default, the backend protocol is set ...

(QB_NEW_EN)


[grammar] ~134-~134: There might be a mistake here.
Context: ...ession Affinity Policy {#service_group} You can configure one or more services w...

(QB_NEW_EN)


[grammar] ~141-~141: There might be a mistake here.
Context: ...ty_policy_in_alb.mdx). ## Creating Rule ### Using web console ![](../assets/create_r...

(QB_NEW_EN)


[style] ~147-~147: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the load balancer. 4. Click on the name of the listener port. 5. Cl...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~148-~148: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the listener port. 5. Click Add Rule. 6. Refer to the following...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[grammar] ~152-~152: Ensure spelling is correct
Context: ... Click Add. Each input item on the webui corresponds to a field of the CR ### u...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: Ensure spelling is correct
Context: ... the frontend protocol (ft) is HTTPS or GRPCS, the rule can also be configured to use...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: There might be a mistake here.
Context: ...ule can also be configured to use HTTPS. You can specify the certificate either i...

(QB_NEW_EN)


[grammar] ~166-~166: There might be a mistake here.
Context: .... ### Certificate Annotation in Ingress Certificates can be referenced across na...

(QB_NEW_EN)


[grammar] ~172-~172: There might be a mistake here.
Context: ...Certificate in Rule {#certificate_name} In .spec.certificate_name, the format ...

(QB_NEW_EN)


[grammar] ~175-~175: There might be a mistake here.
Context: ...et_namespace/$secret_name` ### TLS Mode #### Edge Mode In edge mode, the client commu...

(QB_NEW_EN)


[grammar] ~176-~176: There might be a mistake here.
Context: ...ecret_name` ### TLS Mode #### Edge Mode In edge mode, the client communicates wi...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ...th backend services using HTTP protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...his: 1. create ft use https protocol 2. create rule with backend protocol http, and sp...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol http, and specify cert...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te rule with backend protocol http, and specify cert via .spec.certificate_name #### ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... ALB communicates with backend services using HTTPS protocol. To achieve this: 1. cre...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ...h backend services using HTTPS protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol https, and specify cer...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...e rule with backend protocol https, and specify cert via .spec.certificate_name ## I...

(QB_NEW_EN)


[grammar] ~188-~188: There might be a mistake here.
Context: ...s} ### ingress sync {#alb_ingress_sync} Each ALB creates an IngressClass with th...

(QB_NEW_EN)


[grammar] ~200-~200: There might be a mistake here.
Context: ....source.namespace` is ingress namespace. ::: #### ssl strategy {#alb_ingress_ss...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...sl strategy {#alb_ingress_ssl_strategy} For ingresses that do not have certifica...

(QB_NEW_EN)


[grammar] ~206-~206: There might be a mistake here.
Context: ...om resource with the following settings: - .spec.config.defaultSSLStrategy: Defines the SSL strategy for ingresses...

(QB_NEW_EN)


[grammar] ~210-~210: There might be a mistake here.
Context: ...$secret_name` Available SSL strategies: - Never: Do not create rules on HTTPS po...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_alb.mdx

[grammar] ~7-~7: There might be a mistake here.
Context: ...70cb27c0597def5 --- # Deploy ALB ## ALB ALB is a custom resource that represents a ...

(QB_NEW_EN)


[grammar] ~52-~52: There might be a mistake here.
Context: ...e: nginx ``` #### Resource Configuration resource related field describes the deployment ...

(QB_NEW_EN)


[grammar] ~53-~53: There might be a mistake here.
Context: ...he deployment configuration for the alb. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~66-~66: There might be a mistake here.
Context: ... you can access the ALB via the node IP. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~69-~69: There might be a mistake here.
Context: ...d uses its address as the ALB address. | | .spec.address | string,required | yo...

(QB_NEW_EN)


[grammar] ~70-~70: There might be a mistake here.
Context: ...ld manually specify the address of alb | | .spec.config.vip.enableLbSvc | bool,...

(QB_NEW_EN)


[grammar] ~74-~74: There might be a mistake here.
Context: ...r Service. | #### project configuration | Field | Type | |-------|------| | `.s...

(QB_NEW_EN)


[grammar] ~75-~75: There might be a mistake here.
Context: ... project configuration | Field | Type | |-------|------| | `.spec.config.project...

(QB_NEW_EN)


[grammar] ~76-~76: There might be a mistake here.
Context: ...ation | Field | Type | |-------|------| | .spec.config.projects | []string,req...

(QB_NEW_EN)


[grammar] ~77-~77: There might be a mistake here.
Context: ...c.config.projects| []string,required | |.spec.config.portProjects` | string,o...

(QB_NEW_EN)


[grammar] ~78-~78: There might be a mistake here.
Context: ...config.portProjects| string,optional | |.spec.config.enablePortProject` | boo...

(QB_NEW_EN)


[grammar] ~82-~82: There might be a mistake here.
Context: ...project can find and configure this ALB. 2. This ALB will handle ingress resources b...

(QB_NEW_EN)


[grammar] ~90-~90: There might be a mistake here.
Context: ...obal config which can be tweaked in alb cr. - bind-nic - [ingr...

(QB_NEW_EN)


[grammar] ~91-~91: There might be a mistake here.
Context: ...ch can be tweaked in alb cr. - bind-nic - [ingress-sync](../../functions/configure_...

(QB_NEW_EN)


[grammar] ~105-~105: There might be a mistake here.
Context: ...eld of the CR: |Parameter| Description| |--|--| |Assigned Address| `.spec.addres...

(QB_NEW_EN)


[grammar] ~106-~106: There might be a mistake here.
Context: ...he CR: |Parameter| Description| |--|--| |Assigned Address| .spec.address| |All...

(QB_NEW_EN)


[grammar] ~107-~107: There might be a mistake here.
Context: ...|--| |Assigned Address| .spec.address| |Allocated By| Instance means project ...

(QB_NEW_EN)


[grammar] ~136-~136: There might be a mistake here.
Context: ...tate. 5. Click Update. #### Delete ##### Using the web console :::note After del...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ... (tcp|udp). In L4 Proxy use frontend to configure backend service directly. In L7 Proxy u...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ...d to configure backend service directly. In L7 Proxy use frontend to configure li...

(QB_NEW_EN)


[grammar] ~160-~160: There might be a mistake here.
Context: ..._rule.mdx) to configure backend service. If you need to add an HTTPS listener por...

(QB_NEW_EN)


[grammar] ~164-~164: There might be a mistake here.
Context: ...adings-in-section */} ### Prerequisites Create a ALB first. ### Configure Front...

(QB_NEW_EN)


[grammar] ~195-~195: There might be a mistake here.
Context: ...ntend name: Format as $alb_name-$port. 3. port: which port which listen on. 4. pro...

(QB_NEW_EN)


[grammar] ~196-~196: There might be a mistake here.
Context: ...t`. 3. port: which port which listen on. 4. protocol: what protocol this port uses. ...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...ed, Format as $secret_ns/$secret_name. 6. backendProtocol: what protocol the backe...

(QB_NEW_EN)


[grammar] ~207-~207: There might be a mistake here.
Context: ...alls back to the default serviceGroup. 8. [session_affinity_policy](./load_balancin...

(QB_NEW_EN)


[grammar] ~214-~214: There might be a mistake here.
Context: ... ### Operation On Frontend #### Creating ##### using the web console ![](../../assets/c...

(QB_NEW_EN)


[grammar] ~225-~225: Ensure spelling is correct
Context: ...k Add Port. Each input item on the webui corresponds to a field of the CR |Param...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~226-~226: There might be a mistake here.
Context: ... field of the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serv...

(QB_NEW_EN)


[grammar] ~227-~227: There might be a mistake here.
Context: ...the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serviceGroup.s...

(QB_NEW_EN)

docs/en/configure/networking/functions/configure_ingress.mdx

[grammar] ~24-~24: There might be a mistake here.
Context: ... add the 80 and 443 listening ports. ::: - [install ingress-nginx as ingress-control...

(QB_NEW_EN)


[grammar] ~25-~25: There might be a mistake here.
Context: ...tall ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx) - [install alb as ingress-controller](../ho...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...dx) - install alb as ingress-controller ## Example Ingress: ```yaml # nginx-ingres...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ...inxcontroller,$alb_name` to use alb as ingress controller. 3. If you only want...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ..._name` to use alb as ingress controller. 3. If you only want to run ingress locally,...

(QB_NEW_EN)

docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx

[grammar] ~8-~8: There might be a mistake here.
Context: ...multiple ingress traffic specifications in Kubernetes ecosystem. This document com...

(QB_NEW_EN)


[grammar] ~8-~8: There might be a mistake here.
Context: ... specifications in Kubernetes ecosystem. This document compares them ([Service](....

(QB_NEW_EN)

docs/en/configure/networking/concepts/gatewayapi.mdx

[grammar] ~12-~12: There might be a mistake here.
Context: ...ateway resource maps to an ALB resource. Listeners and routes are handled directl...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/auth.mdx

[style] ~134-~134: This phrase is redundant. Consider writing “details”.
Context: ... series of annotations to configure the specific details of the authentication process. Below is...

(SPECIFIC_DETAILS)

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx

[grammar] ~6-~6: Ensure spelling is correct
Context: ...52c10984d03564c0cdec45 --- # Configure GatewayApi Gateway via ALB An inbound gateway (Ga...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/en/configure/networking/how_to/alb/cors.mdx

[grammar] ~3-~3: There might be a mistake here.
Context: # CORS ## Basic Concepts [CORS](https://developer.mozilla.org/en-U...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx

[grammar] ~17-~17: There might be a mistake here.
Context: ...guration). | Annotation | Description | |---|---| | `metallb.universe.tf/loadBal...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ... | Annotation | Description | |---|---| | metallb.universe.tf/loadBalancerIPs ...

(QB_NEW_EN)


[grammar] ~22-~22: There might be a mistake here.
Context: ... pool to allocate from. | ## Method 2: Use external ALB device to provide VIP * P...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...the ports in use to reduce the downtime of ALB upgrade. The health check configura...

(QB_NEW_EN)


[grammar] ~31-~31: There might be a mistake here.
Context: ...h check, it is recommended to use TCP. | | Response Timeout | The time requir...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/header_modification.mdx

[grammar] ~10-~10: There might be a mistake here.
Context: ...annotation key | |---------|-----------------------------...

(QB_NEW_EN)


[grammar] ~11-~11: There might be a mistake here.
Context: ...---------------------------------------| | ingress | `alb.ingress.cpaas.io/rewrit...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...alb.ingress.cpaas.io/rewrite-response| | rule |alb.rule.cpaas.io/rewrite-r...

(QB_NEW_EN)


[grammar] ~30-~30: There might be a mistake here.
Context: ... value is the ALB context variable name. For example, add the following annotatio...

(QB_NEW_EN)


[grammar] ~44-~44: There might be a mistake here.
Context: ... | |--------------------------------|------...

(QB_NEW_EN)


[grammar] ~45-~45: There might be a mistake here.
Context: ...---------------------------------------| | first_forward_or_remote_addr | the f...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...mote address, default is remote_addr | | first_forward | the f...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/url_rewrite.mdx

[grammar] ~6-~6: There might be a mistake here.
Context: ...ps to rewrite the URL. ## Configuration via ingress annotation ```yaml apiVersio...

(QB_NEW_EN)


[grammar] ~48-~48: There might be a mistake here.
Context: ...rget: /$3 ``` Example: client requests /prefix-x/abc; backend receives `/abc`.

(QB_NEW_EN)

🔇 Additional comments (11)
docs/en/configure/networking/how_to/alb/http_redirect.mdx (1)

7-7: Consistent pluralization — LGTM.

Header rename to “Basic Concepts” aligns with other ALB how-to pages.

docs/en/configure/networking/how_to/alb/decision_making_for_performance_selection_of_alb.mdx (2)

6-6: Title improvement — LGTM.

The new title better reflects decision guidance.


18-18: Asset Path Verification Complete

  • Located the three images in docs/en/configure/networking/assets/:
    • loadbalancer-mini.png
    • loadbalancer-middle.png
    • loadbalancer-large.png
  • Confirmed the MDX file at
    docs/en/configure/networking/how_to/alb/decision_making_for_performance_selection_of_alb.mdx
    references them on lines 18, 28, and 38 via ![](../../assets/<name>.png).
  • Verified that ../../assets/ correctly resolves from the MDX file’s directory to the assets folder.

No broken links detected—no further action required.

docs/en/configure/networking/how_to/alb/cors.mdx (1)

8-21: Fix grammar, casing, and hyphenation in CORS doc; verify field names in CRD schema

The proposed text clarifies and standardizes terminology but we’ve not located the canonical CRD definition in the repo to confirm these field names. Please double-check the actual CRD spec—if it uses snake_case you’ll need to update these examples accordingly.

• Apply prose fixes in docs/en/configure/networking/how_to/alb/cors.mdx:

 enableCORS:
-  description: enableCORS is the switch whether enable cross domain,
-    when EnableCORS is false, alb2 transports information to backend
-    servers which determine whether allow cross-domain
+  description: Whether to enable cross-domain requests (CORS).
+    When enableCORS is false, ALB forwards the request as is and the backend
+    decides whether to allow cross-domain access.
   type: boolean
 corsAllowHeaders:
-  description: corsAllowHeaders defines the headers allowed by cors
-    when enableCORS is true, multiple headers are separated by commas
+  description: Comma-separated list of allowed request headers (Access-Control-Allow-Headers).
   type: string
 corsAllowOrigin:
-  description: corsAllowOrigin defines the origin allowed by cors when
-    enableCORS is true, multiple origins are separated by commas
+  description: Comma-separated list of allowed origins (Access-Control-Allow-Origin).
   type: string

• Manual verification needed:
– Confirm the CRD actually defines these fields as enableCORS, corsAllowHeaders, and corsAllowOrigin.
– If the CRD uses enable_cors, cors_allow_headers, or cors_allow_origin, update the docs to match.

docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

28-46: Rule example — capture group usage looks correct.

Using $3 for /(prefix-x)(/|$)(.*) is correct.

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (1)

96-96: Confirmed anchor exists

The anchor #loadbalancer_type_service_annotation is present in docs/en/configure/networking/functions/configure_service.mdx (line 319), so the internal link is valid. No changes are needed.

docs/en/configure/networking/concepts/gatewayapi.mdx (1)

14-14: Cross-link path verified
The target file docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx exists, and the relative link from docs/en/configure/networking/concepts/gatewayapi.mdx (../how_to/alb/configure_gatewayapi_gateway_via_alb.mdx) correctly resolves to it. No further action needed.

docs/en/configure/networking/how_to/alb/auth.mdx (3)

7-7: Good: “Basic Concepts” heading reads better.

Terminology improved.


134-134: Link target verification complete

The file docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx exists, and the updated link in docs/en/configure/networking/how_to/alb/auth.mdx is correct. No further changes are needed.


68-70: Consistency: Standardize ALB2 CRD apiVersion Across Docs

I’ve noticed that some guides reference the ALB2 CRD as crd.alauda.io/v2 while others use crd.alauda.io/v2beta1. To avoid confusion and ensure we’re documenting the correct, currently supported API version, please:

• Confirm the source-of-truth CRD version (e.g. in the operator’s CRD manifests or Helm chart).
• Update all examples to use that same apiVersion.

Examples of mismatches:

  • docs/en/configure/networking/functions/create_domain.mdx (apiVersion: crd.alauda.io/v2)
  • docs/en/configure/networking/how_to/alb/use_oauth_proxy_with_alb.mdx (apiVersion: crd.alauda.io/v2)
  • docs/en/configure/networking/how_to/alb/auth.mdx (lines 68–69, apiVersion: crd.alauda.io/v2)
  • docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (lines 47–48, apiVersion: crd.alauda.io/v2beta1)
  • docs/en/configure/networking/how_to/alb/deploy_alb.mdx (lines 19–20, apiVersion: crd.alauda.io/v2beta1)

Once you’ve confirmed the correct version, apply a unified change. For example, if v2beta1 is current:

- apiVersion: crd.alauda.io/v2
+ apiVersion: crd.alauda.io/v2beta1
  kind: ALB2
  metadata:
    …

And similarly update all other occurrences.

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1)

24-24: Link validation successful: soft_data_center_lb_solution.mdx is present
The target document at docs/en/configure/networking/how_to/soft_data_center_lb_solution.mdx exists, so the relative link ../soft_data_center_lb_solution.mdx will not be broken. No further changes required.

### Version Compatibility
Current version mapping:
- ACP Ingress NGINX 4.1.x corresponds to official Ingress NGINX 4.12.2
ACP Ingress-NGINX 4.1.x corresponds to the official chart 4.12.2 (controller v1.12.3)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

❓ Verification inconclusive

Version mapping may drift; verify against upstream releases.

Confirm that “ACP Ingress‑NGINX 4.1.x -> chart 4.12.2 (controller v1.12.3)” is current as of publication.


🌐 Web query:

What are the latest stable versions of the Ingress-NGINX Helm chart and controller, and is chart 4.12.2 paired with controller v1.12.3?

Error during web search


Fix Ingress-NGINX chart/controller version mapping

The official Ingress-NGINX Helm Chart v4.12.2 bundles controller v1.12.2—not v1.12.3—and controller v1.12.3 is only included starting in chart v4.12.3. Please update the snippet in
docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (around line 156):

• If you intend to document chart 4.12.2, change to:

ACP Ingress-NGINX 4.1.x corresponds to the official chart 4.12.2 (controller v1.12.2)

(github.com)

• Or, if you need controller v1.12.3, bump to chart 4.12.3:

ACP Ingress-NGINX 4.1.x corresponds to the official chart 4.12.3 (controller v1.12.3)

(github.com)

Adding a link to the upstream GitHub Releases page will help prevent future drift.

🤖 Prompt for AI Agents
In
docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx
around line 156, the chart/controller version mapping is incorrect: update the
text to either state chart v4.12.2 maps to controller v1.12.2 if you want to
keep chart 4.12.2, or change the chart to 4.12.3 if you require controller
v1.12.3; also add a link to the upstream ingress-nginx GitHub Releases page to
prevent future drift.

@woodgear woodgear force-pushed the feat/ACP-44097 branch 2 times, most recently from 8795f80 to c30e36d Compare August 27, 2025 07:49
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (7)
docs/en/configure/networking/how_to/alb/deploy_alb.mdx (2)

52-63: Fix schema path typos: resource vs resources; align with example YAML

The table uses .spec.config.resource* but the example uses .spec.config.resources with nested alb/limits/requests. This mismatch will mislead users.

-#### Resource Configuration 
-resource related field describes the deployment configuration for the alb.
+#### Resource Configuration
+Resource fields describe deployment configuration for the ALB.
@@
-| `.spec.config.nodeSelector` |map[string]string | the node selector for the alb |
-| `.spec.config.replicas` | int,optional default 3 | the number of replicas for the alb |
-| `.spec.config.resource.limit` | k8s container-resource,optional |  limit of nginx container of alb |
-| `.spec.config.resource.request` | k8s container-resource,optional |  request of nginx container of alb |
-| `.spec.config.resource.alb.limit` | k8s container-resource,optional |  limit of alb container of alb |
-| `.spec.config.resource.alb.request` | k8s container-resource,optional | request of alb container of alb |
-| `.spec.config.antiAffinityKey` | string,optional default local | k8s antiAffinityKey |
+| `.spec.config.nodeSelector` | map[string]string | Node selector for the ALB. |
+| `.spec.config.replicas` | int, optional, default 3 | Number of ALB replicas. |
+| `.spec.config.resources.requests` | k8s container resources, optional | Requests for the nginx container. |
+| `.spec.config.resources.limits` | k8s container resources, optional | Limits for the nginx container. |
+| `.spec.config.resources.alb.requests` | k8s container resources, optional | Requests for the ALB container. |
+| `.spec.config.resources.alb.limits` | k8s container resources, optional | Limits for the ALB container. |
+| `.spec.config.antiAffinityKey` | string, optional, default `local` | Pod anti‑affinity key. |

65-65: Fix escaped anchor to restore internal linking

The custom ID isn’t being emitted because the backslash is escaping the brace. Update the heading to generate the anchor so cross-page links resolve correctly.

Locations to update:

  • docs/en/configure/networking/how_to/alb/deploy_alb.mdx (line 65)
  • Verify references in docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (line 15)

Required change:

-#### Networking Configuration \{#alb_networking_configuration\}
+#### Networking Configuration {#alb_networking_configuration}
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

7-26: Remove NGINX-only annotations from an ALB how-to, or clearly relabel as NGINX.

This example uses NGINX annotations while ingressClassName: alb, which is misleading in an ALB page. Either remove it and add a note that ALB does not support URL rewrite via ingress annotations, or convert it into a correct NGINX example (change class to ingress-nginx and add nginx.ingress.kubernetes.io/use-regex: "true").

Preferred fix for this page (ALB focus): replace the snippet with a callout.

-## Configuration
-via ingress annotation
-```yaml
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
-  nginx.ingress.kubernetes.io/rewrite-target: /$2
-  name: demo
-spec:
-  ingressClassName: alb
-  rules:
-  - http:
-      paths:
-      - backend:
-          service:
-            name: frontend
-            port:
-              number: 8080
-        path: /(prefix-x)(/|$)(.*)
-        pathType: ImplementationSpecific
-```
+## Configuration
+> Note: ALB does not support URL rewrite via ingress annotations. Use the Rule CRD approach below.

If you prefer to keep an NGINX example, I can provide a corrected variant side-by-side and label controllers explicitly.

docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1)

49-50: Fix malformed link formatting.

-### Passthrough
-[ssl-passthrough]https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#ssl-passthrough)
+### Passthrough
+[ssl-passthrough](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#ssl-passthrough)
docs/en/configure/networking/functions/configure_alb_rule.mdx (2)

11-11: Unescape heading IDs so anchors work.

Backslashes prevent Docusaurus from generating anchors used by internal links.

Apply:

-### Quick demo of rule \{#alb_add_rule}
+### Quick demo of rule {#alb_add_rule}
-### backend protocol \{#backend_protocol}
+### backend protocol {#backend_protocol}
-### Service Group and Session Affinity Policy \{#service_group}
+### Service Group and Session Affinity Policy {#service_group}
-### Certificate in Rule \{#certificate_name}
+### Certificate in Rule {#certificate_name}
-## Ingress \{#alb_ingress}
+## Ingress {#alb_ingress}
-### ingress sync \{#alb_ingress_sync}
+### ingress sync {#alb_ingress_sync}
-#### ssl strategy \{#alb_ingress_ssl_strategy}
+#### ssl strategy {#alb_ingress_ssl_strategy}

Also applies to: 131-131, 134-134, 172-172, 187-187, 188-188, 203-203


169-170: Standardize annotation domain (alb.networking.cpaas.ioalb.cpaas.io).

Using two domains is confusing and can break copy/paste.

Apply:

-alb.networking.cpaas.io/tls: qq.com=cpaas-system/dex.tls,qq1.com=cpaas-system/dex1.tls
+alb.cpaas.io/tls: qq.com=cpaas-system/dex.tls,qq1.com=cpaas-system/dex1.tls

Also scan this file for any remaining alb.networking.cpaas.io/* and replace with alb.cpaas.io/*.

docs/en/configure/networking/how_to/alb/header_modification.mdx (1)

17-28: Use concise, idiomatic Go comments in the type definitions.

Apply:

 type RewriteRequestConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // set header, which values are variable name 
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
-	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // add header, which values could be multiple and which values are variable name
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // Set header; values are variable names
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header; values can contain multiple entries
+	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // Add header; values can contain multiple entries; values are variable names
 }
 type RewriteResponseConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header; values can contain multiple entries
 }
🧹 Nitpick comments (28)
docs/en/configure/networking/how_to/alb/cors.mdx (2)

3-4: Fix minor grammar in intro

Add a period and keep casing consistent.

-## Basic Concepts
-[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS) (Cross-Origin Resource Sharing) is a mechanism that allows resources (e.g., fonts, JavaScript, etc.) on a web page to be requested from another domain outside the domain from which the resource originated.
+## Basic Concepts
+[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS) (Cross-Origin Resource Sharing) allows a web page to request resources (for example, fonts or JavaScript) from a different origin.

23-23: Be explicit about the field path

“It can be configured on the rule .spec.” is vague; name the exact keys.

-It can be configured on the rule `.spec`.
+Configure these under the Rule spec (for example, `.spec.actions.cors.*`).
docs/en/configure/networking/functions/configure_ingress.mdx (2)

25-26: Polish link labels

Capitalize and standardize wording.

-- [install ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
-- [install alb as ingress-controller](../how_to/alb/deploy_alb.mdx)
+- [Install Ingress‑nginx as the Ingress controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
+- [Install ALB as the Ingress controller](../how_to/alb/deploy_alb.mdx)

57-57: Clarify ingressClassName guidance

Make it clear what values to use for different controllers.

-2. `nginx` to using `ingress-nginx` controller, `$alb_name` to use alb as ingress controller.
+2. Set `ingressClassName` to `nginx` to use the ingress‑nginx controller. Set it to the ALB class name (for example, `$alb_name`) to use ALB.

If ALB requires a specific class naming convention (for example, alb-$name), confirm it here to avoid confusion.

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1)

26-34: Tighten health‑check wording

Minor grammar and consistency tweaks.

-* According to the business scenario, the external ALB needs to configure health checks for all the ports in use to reduce the downtime of ALB upgrade. The health check configuration is as follows:
+* Configure health checks for all ports in use to minimize downtime during ALB upgrades. Recommended settings:
@@
-    | **Protocol** | The protocol type of the health check, it is recommended to use TCP. |
-    | **Response Timeout** | The time required to receive the health check response, it is recommended to configure it to 2 seconds. |
-    | **Check Interval** | The time interval for the health check, it is recommended to configure it to 5 seconds. |
-    | **Unhealthy Threshold** | The number of consecutive failures after which the health check status of the backend server is determined to be failed, it is recommended to configure it to 3 times. |    
+    | **Protocol** | Use TCP. |
+    | **Response Timeout** | 2 seconds. |
+    | **Check Interval** | 5 seconds. |
+    | **Unhealthy Threshold** | 3 consecutive failures. |
docs/en/configure/networking/how_to/alb/deploy_alb.mdx (3)

66-73: Minor grammar and clarity in Networking table

Tweak phrasing; capitalize ALB; clarify address description.

-Networking fields describe how to access the ALB. For example, in `host` mode, alb will use hostnetwork, and you can access the ALB via the node IP.
+Networking fields describe how to access the ALB. For example, in `host` mode the ALB uses host networking and is reachable via the node IP.
@@
-| `.spec.address` | string,required | you could manually specify the address of alb |
+| `.spec.address` | string, required | Manually specify the ALB address. |

74-80: Capitalize heading; add brief descriptions

Make section headers consistent and add one‑liners for less obvious fields.

-#### project configuration
+#### Project Configuration
@@
-| `.spec.config.portProjects` | string,optional |
-| `.spec.config.enablePortProject` | bool,optional |
+| `.spec.config.portProjects` | string, optional | Port‑range to bind to the project (for Port mode). |
+| `.spec.config.enablePortProject` | bool, optional | Enable Port mode for per‑project port ranges. |

164-167: Article usage

“a ALB” -> “an ALB”.

-Create a ALB first.
+Create an ALB first.
docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (4)

8-10: Tighten grammar and article usage in intro sentence.

Add “the” before “Kubernetes ecosystem” and simplify the sentence.

-The Alauda Container Platform supports multiple ingress traffic specifications in Kubernetes ecosystem.
-This document compares them ([Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx)) to help users make the right choice.
+The Alauda Container Platform supports multiple ingress traffic specifications in the Kubernetes ecosystem.
+This document compares [Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx) to help you choose the right option.

18-18: Use consistent terminology: “Gateway API” vs “GatewayAPI”.

Standardize across the page (and docs) to either “Gateway API” or “GatewayAPI”; recommend “Gateway API” for readability.

-While Ingress, GatewayAPI, and ALB Rules can all expose L7 traffic externally, they differ in their capabilities and isolation models.
+While Ingress, Gateway API, and ALB Rules can all expose L7 traffic externally, they differ in their capabilities and isolation models.

22-24: Subject–verb agreement and clarity for Ingress section.

Fix agreement and make the second sentence clearer.

-Ingress is the standard specification adopted by the Kubernetes community and are recommended for default use.
-The Ingress is handled by ALB instances that are managed by the platform administrator.
+Ingress is the standard specification adopted by the Kubernetes community and is the recommended default.
+Ingress traffic is handled by ALB instances managed by the platform administrator.

27-30: Grammar and terminology (“routes” not “rules” for Gateway API).

Also switch plural “they” to singular “it” for “Gateway API”.

-GatewayAPI provides more flexible isolation mode, however they are not as mature as Ingress.
-By using GatewayAPI developer can create their own isolated ALB instances to handle GatewayAPI rules.
-Therefore, if you need to delegate the creation and management of ALB instances to developers, you need to choose to use GatewayAPI.
+Gateway API provides a more flexible isolation model; however, it is not as mature as Ingress.
+With Gateway API, developers can create isolated ALB instances to handle Gateway API routes.
+Choose Gateway API when you want to delegate creation and management of ALB instances to application teams.
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

48-48: Minor wording polish.

-Example: client requests `/prefix-x/abc`; backend receives `/abc`.
+Example: The client requests `/prefix-x/abc`; the backend receives `/abc`.
docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (4)

6-6: Use “Gateway API” consistently in the title.

-# Configure GatewayApi Gateway via ALB
+# Configure Gateway API Gateway via ALB

22-23: Hyphenate “LoadBalancer-type internal routing”.

-The platform administrator must ensure that the cluster supports LoadBalancer type internal routing.
+The platform administrator must ensure that the cluster supports LoadBalancer‑type internal routing.

24-25: Consistent resource name casing (“ALB2”).

-## Example Gateway and Alb2 custom resource (CR)
+## Example Gateway and ALB2 custom resource (CR)

229-234: Name consistency: “inbound gateway” vs “ingress gateway”.

This section switches to “ingress gateway.” Use one term consistently (earlier sections use “Inbound Gateway”).

-Once the listening is set up in the ingress gateway, the gateway will monitor traffic...
+Once the listening is set up in the inbound gateway, the gateway will monitor traffic...
docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (2)

7-7: Capitalize link text for consistency.

-[install ingress-nginx](./install_ingress_nginx_via_cluster_plugin.mdx)
+[Install Ingress‑NGINX](./install_ingress_nginx_via_cluster_plugin.mdx)

21-24: Fix wording and provide actionable guidance for removing request headers.

-|remove header in request| set a empty header in request |
+|remove header in request| Use configuration snippets with the headers‑more module (e.g., clear or unset the header) |

If you want, I can add a short snippet showing a configuration-snippet that clears a specific request header.

docs/en/configure/networking/functions/configure_alb_rule.mdx (5)

5-7: Tighten intro phrasing.

Apply:

-Rule is a Custom Resource(CR) that defines how incoming requests are matched and processed by the ALB.
+A Rule is a Custom Resource (CR) that defines how incoming requests are matched and processed by the ALB.
-
-Ingresses handled by ALB can be [auto translated to rules](./configure_alb_rule.mdx#alb_ingress).
+Ingresses handled by ALB can be [auto‑translated into Rules](./configure_alb_rule.mdx#alb_ingress).

10-10: Consistent capitalization and terminology (UI, CLI, HTTPS, SSL).

Apply:

-[install alb and ft](../how_to/alb/deploy_alb.mdx)
+[Install ALB and Frontend (FT)](../how_to/alb/deploy_alb.mdx)

-Each input item on the webui corresponds to a field of the CR
+Each input item in the Web UI corresponds to a field of the CR

-### using the CLI
+### Using the CLI

-## Https
+## HTTPS

-### ingress sync {#alb_ingress_sync}
+### Ingress sync {#alb_ingress_sync}

-#### ssl strategy {#alb_ingress_ssl_strategy}
+#### SSL strategy {#alb_ingress_ssl_strategy}

Also applies to: 152-152, 154-154, 160-160, 188-188, 203-203


121-128: Unify link text casing in the Actions table.

Apply:

-|[timeout](../how_to/alb/l4_l7_timeout.mdx)|
+|[Timeout](../how_to/alb/l4_l7_timeout.mdx)|
-|[redirect](../how_to/alb/http_redirect.mdx)|
+|[Redirect](../how_to/alb/http_redirect.mdx)|
-|[cors](../how_to/alb/cors.mdx)|
+|[CORS](../how_to/alb/cors.mdx)|
-|[header modification](../how_to/alb/header_modification.mdx)|
+|[Header Modification](../how_to/alb/header_modification.mdx)|
-|[url-rewrite](../how_to/alb/url_rewrite.mdx)|
+|[URL Rewrite](../how_to/alb/url_rewrite.mdx)|
-|[waf](../how_to/alb/modsecurity.mdx)|
+|[WAF](../how_to/alb/modsecurity.mdx)|
-|[otel](../how_to/alb/otel.mdx)|
+|[OTEL](../how_to/alb/otel.mdx)|
-|[keepalive](../how_to/alb/tcp_http_keepalive.mdx)|
+|[Keepalive](../how_to/alb/tcp_http_keepalive.mdx)|

179-185: Clarify TLS mode steps; fix grammar.

Apply:

-1. create ft use https protocol
-2. create rule with backend protocol http, and specify cert via `.spec.certificate_name`
+1. Create a Frontend using the HTTPS protocol.
+2. Create a Rule with backendProtocol set to HTTP, and specify the certificate via `.spec.certificate_name`.

-1. create ft use https protocol
-2. create rule with backend protocol https, and specify cert via `.spec.certificate_name`
+1. Create a Frontend using the HTTPS protocol.
+2. Create a Rule with backendProtocol set to HTTPS, and specify the certificate via `.spec.certificate_name`.

210-212: Polish SSL strategy descriptions.

Apply:

-- **Never**: Do not create rules on HTTPS ports (default behavior)
-- **Always**: Create rules on HTTPS ports using the default certificate
+- **Never**: Do not create Rules on HTTPS ports (default).
+- **Always**: Create Rules on HTTPS ports using the default certificate.
docs/en/configure/networking/how_to/alb/header_modification.mdx (4)

9-14: Capitalize heading; pluralize column; add spacing in annotation list.

Apply:

-### use annotations
-| target  | annotation key                         |
+### Use annotations
+| target  | annotation keys                        |
 |---------|----------------------------------------|
-| ingress | `alb.ingress.cpaas.io/rewrite-request`,`alb.ingress.cpaas.io/rewrite-response` |
+| ingress | `alb.ingress.cpaas.io/rewrite-request`, `alb.ingress.cpaas.io/rewrite-response` |
 | rule    | `alb.rule.cpaas.io/rewrite-request`, `alb.rule.cpaas.io/rewrite-response`  |

30-30: Tighten explanatory text.

Apply:

-Note: in `*_var` maps the key is the header name and the value is the ALB context variable name.
+Note: In `*_var` maps, the key is the header name and the value is the ALB context variable name.
@@
-will add key `x-my-host` and value of request host header to request header.
-you can refer to the [nginx variable](http://nginx.org/en/docs/varindex.html) for the variable names.
+This adds the `x-my-host` header with the value of the request's Host header.
+You can refer to the [Nginx variables](http://nginx.org/en/docs/varindex.html) for variable names.

Also applies to: 39-41


44-48: Polish variable descriptions.

Apply:

-| `first_forward_or_remote_addr` | the first forwarded address or the remote address, default is `remote_addr` |
-| `first_forward`                | the first forwarded address , default is empty string                       |
+| `first_forward_or_remote_addr` | The first forwarded address or, if absent, the remote address (default: `remote_addr`). |
+| `first_forward`                | The first forwarded address (default: empty string).                        |

49-49: Capitalize section title.

Apply:

-## examples
+## Examples
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 01bf95f and 8795f80.

⛔ Files ignored due to path filters (4)
  • docs/en/configure/networking/assets/create_alb_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_ft_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_rule_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/gatewayapi-architecture.png is excluded by !**/*.png
📒 Files selected for processing (26)
  • docs/en/configure/networking/architecture/understanding_alb.mdx (3 hunks)
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx (7 hunks)
  • docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/concepts/gatewayapi.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_ingress.mdx (3 hunks)
  • docs/en/configure/networking/how_to/alb/auth.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/cors.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/decision_making_for_performance_selection_of_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/header_modification.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/index.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/otel.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1 hunks)
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx (0 hunks)
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx (0 hunks)
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx (0 hunks)
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (2 hunks)
  • docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1 hunks)
💤 Files with no reviewable changes (3)
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx
✅ Files skipped from review due to trivial changes (3)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx
🚧 Files skipped from review as they are similar to previous changes (8)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx
  • docs/en/configure/networking/how_to/alb/index.mdx
  • docs/en/configure/networking/how_to/alb/decision_making_for_performance_selection_of_alb.mdx
  • docs/en/configure/networking/architecture/understanding_alb.mdx
  • docs/en/configure/networking/how_to/alb/otel.mdx
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx
🧰 Additional context used
🪛 LanguageTool
docs/en/configure/networking/functions/configure_ingress.mdx

[grammar] ~25-~25: There might be a mistake here.
Context: ...tall ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx) - [install alb as ingress-controller](../how_to/al...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ...inxcontroller,$alb_name` to use alb as ingress controller. 3. If you only want...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ..._name` to use alb as ingress controller. 3. If you only want to run ingress locally,...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/header_modification.mdx

[grammar] ~10-~10: There might be a mistake here.
Context: ...annotation key | |---------|-----------------------------...

(QB_NEW_EN)


[grammar] ~11-~11: There might be a mistake here.
Context: ...---------------------------------------| | ingress | `alb.ingress.cpaas.io/rewrit...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...alb.ingress.cpaas.io/rewrite-response| | rule |alb.rule.cpaas.io/rewrite-r...

(QB_NEW_EN)


[grammar] ~30-~30: There might be a mistake here.
Context: ... value is the ALB context variable name. For example, add the following annotatio...

(QB_NEW_EN)


[grammar] ~44-~44: There might be a mistake here.
Context: ... | |--------------------------------|------...

(QB_NEW_EN)


[grammar] ~45-~45: There might be a mistake here.
Context: ...---------------------------------------| | first_forward_or_remote_addr | the f...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...mote address, default is remote_addr | | first_forward | the f...

(QB_NEW_EN)

docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx

[grammar] ~9-~9: There might be a mistake here.
Context: ..._cluster_plugin.mdx) ## Max Connections [max-worker-connections](https://kubernet...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...map/#max-worker-connections) ## Timeout [config timeout](https://kubernetes.githu...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ...sticky-sessions) ## Header Modification |action|link| |--|--| |set header in req...

(QB_NEW_EN)


[grammar] ~19-~19: There might be a mistake here.
Context: ...s) ## Header Modification |action|link| |--|--| |set header in request|[proxy-se...

(QB_NEW_EN)


[grammar] ~20-~20: There might be a mistake here.
Context: ...eader Modification |action|link| |--|--| |set header in request|[proxy-set-header...

(QB_NEW_EN)


[grammar] ~21-~21: There might be a mistake here.
Context: ...figuration/annotations/#custom-headers)| |remove header in request| set a empty h...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...onfigmap/#hide-headers)| ## URL Rewrite [rewrite](https://kubernetes.github.io/in...

(QB_NEW_EN)


[grammar] ~29-~29: There might be a mistake here.
Context: ...## HSTS (HTTP Strict Transport Security) [configure HSTS](https://kubernetes.github.io/ingr...

(QB_NEW_EN)


[uncategorized] ~32-~32: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ginx-configuration/configmap/#hsts) ## Rate Limiting [config rate limiting](https://kubernet...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~32-~32: There might be a mistake here.
Context: ...ation/configmap/#hsts) ## Rate Limiting [config rate limiting](https://kubernetes...

(QB_NEW_EN)


[grammar] ~35-~35: There might be a mistake here.
Context: ...tion/annotations/#rate-limiting) ## WAF [modsecurity](https://kubernetes.github.i...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...uthentication) ### TLS edge termination [backend protocol](https://kubernetes.git...

(QB_NEW_EN)


[grammar] ~49-~49: There might be a mistake here.
Context: ...ions/#backend-protocol) ### Passthrough [ssl-passthrough]https://kubernetes.gith...

(QB_NEW_EN)

docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx

[grammar] ~8-~8: There might be a mistake here.
Context: ...multiple ingress traffic specifications in Kubernetes ecosystem. This document com...

(QB_NEW_EN)


[grammar] ~8-~8: There might be a mistake here.
Context: ... specifications in Kubernetes ecosystem. This document compares them ([Service](....

(QB_NEW_EN)

docs/en/configure/networking/concepts/gatewayapi.mdx

[grammar] ~12-~12: There might be a mistake here.
Context: ...ateway resource maps to an ALB resource. Listeners and routes are handled directl...

(QB_NEW_EN)

docs/en/configure/networking/functions/configure_alb_rule.mdx

[grammar] ~1-~1: There might be a mistake here.
Context: # Configure ALB Rules ## Introduction ### What is a Rule? Rule i...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ... must be attached to a frontend and alb via label. ::: ```yaml apiVersion: crd.ala...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ...ttached to a frontend and alb via label. ::: ```yaml apiVersion: crd.alauda.io/v...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...e Frontend to which this rule belongs. 2. Required, indicate the ALB to which this...

(QB_NEW_EN)


[grammar] ~58-~58: There might be a mistake here.
Context: ... used to describe the matching criteria. For example, the rule below matches a re...

(QB_NEW_EN)


[grammar] ~116-~116: There might be a mistake here.
Context: ...rity` using an integer value. ## Action After a request matches a rule, you can ...

(QB_NEW_EN)


[grammar] ~121-~121: There might be a mistake here.
Context: ...meout](../how_to/alb/l4_l7_timeout.mdx)| | Redirect | Redirects incoming ...

(QB_NEW_EN)


[grammar] ~122-~122: There might be a mistake here.
Context: ...irect](../how_to/alb/http_redirect.mdx)| | CORS | Enables Cross-Origi...

(QB_NEW_EN)


[grammar] ~123-~123: There might be a mistake here.
Context: ... |cors| | Header Modification | Allows modifi...

(QB_NEW_EN)


[grammar] ~124-~124: There might be a mistake here.
Context: ...(../how_to/alb/header_modification.mdx)| | URL Rewrite | Rewrites the URL of...

(QB_NEW_EN)


[grammar] ~125-~125: There might be a mistake here.
Context: ...rewrite](../how_to/alb/url_rewrite.mdx)| | WAF | Integrates Web Appl...

(QB_NEW_EN)


[grammar] ~126-~126: There might be a mistake here.
Context: ... |waf| | OTEL | Enables OpenTelemet...

(QB_NEW_EN)


[grammar] ~127-~127: There might be a mistake here.
Context: ...g. |otel| | Keepalive | Enables or disable...

(QB_NEW_EN)


[grammar] ~131-~131: There might be a mistake here.
Context: ...## backend protocol {#backend_protocol} By default, the backend protocol is set ...

(QB_NEW_EN)


[grammar] ~134-~134: There might be a mistake here.
Context: ...ession Affinity Policy {#service_group} You can configure one or more services w...

(QB_NEW_EN)


[grammar] ~141-~141: There might be a mistake here.
Context: ...ty_policy_in_alb.mdx). ## Creating Rule ### Using web console ![](../assets/create_r...

(QB_NEW_EN)


[style] ~147-~147: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the load balancer. 4. Click on the name of the listener port. 5. Cl...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~148-~148: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the listener port. 5. Click Add Rule. 6. Refer to the following...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[grammar] ~152-~152: Ensure spelling is correct
Context: ... Click Add. Each input item on the webui corresponds to a field of the CR ### u...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: Ensure spelling is correct
Context: ... the frontend protocol (ft) is HTTPS or GRPCS, the rule can also be configured to use...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: There might be a mistake here.
Context: ...ule can also be configured to use HTTPS. You can specify the certificate either i...

(QB_NEW_EN)


[grammar] ~166-~166: There might be a mistake here.
Context: .... ### Certificate Annotation in Ingress Certificates can be referenced across na...

(QB_NEW_EN)


[grammar] ~172-~172: There might be a mistake here.
Context: ...Certificate in Rule {#certificate_name} In .spec.certificate_name, the format ...

(QB_NEW_EN)


[grammar] ~175-~175: There might be a mistake here.
Context: ...et_namespace/$secret_name` ### TLS Mode #### Edge Mode In edge mode, the client commu...

(QB_NEW_EN)


[grammar] ~176-~176: There might be a mistake here.
Context: ...ecret_name` ### TLS Mode #### Edge Mode In edge mode, the client communicates wi...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ...th backend services using HTTP protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~179-~179: There might be a mistake here.
Context: ...ve this: 1. create ft use https protocol 2. create rule with backend protocol http, ...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol http, and specify cert...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te rule with backend protocol http, and specify cert via .spec.certificate_name #### ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... ALB communicates with backend services using HTTPS protocol. To achieve this: 1. cre...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ...h backend services using HTTPS protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol https, and specify cer...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...e rule with backend protocol https, and specify cert via .spec.certificate_name ## I...

(QB_NEW_EN)


[grammar] ~188-~188: There might be a mistake here.
Context: ...s} ### ingress sync {#alb_ingress_sync} Each ALB creates an IngressClass with th...

(QB_NEW_EN)


[grammar] ~200-~200: There might be a mistake here.
Context: ....source.namespace` is ingress namespace. ::: #### ssl strategy {#alb_ingress_ss...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...sl strategy {#alb_ingress_ssl_strategy} For ingresses that do not have certifica...

(QB_NEW_EN)


[grammar] ~206-~206: There might be a mistake here.
Context: ...om resource with the following settings: - .spec.config.defaultSSLStrategy: Defines the SSL strategy for ingresses...

(QB_NEW_EN)


[grammar] ~207-~207: There might be a mistake here.
Context: ...ategy for ingresses without certificates - .spec.config.defaultSSLCert: Sets the default certificate in the fo...

(QB_NEW_EN)


[grammar] ~210-~210: There might be a mistake here.
Context: ...$secret_name` Available SSL strategies: - Never: Do not create rules on HTTPS po...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/auth.mdx

[style] ~134-~134: This phrase is redundant. Consider writing “details”.
Context: ... series of annotations to configure the specific details of the authentication process. Below is...

(SPECIFIC_DETAILS)

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx

[grammar] ~6-~6: Ensure spelling is correct
Context: ...52c10984d03564c0cdec45 --- # Configure GatewayApi Gateway via ALB An inbound gateway (Ga...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/en/configure/networking/how_to/alb/cors.mdx

[grammar] ~3-~3: There might be a mistake here.
Context: # CORS ## Basic Concepts [CORS](https://developer.mozilla.org/en-U...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_alb.mdx

[grammar] ~7-~7: There might be a mistake here.
Context: ...70cb27c0597def5 --- # Deploy ALB ## ALB ALB is a custom resource that represents a ...

(QB_NEW_EN)


[grammar] ~52-~52: There might be a mistake here.
Context: ...e: nginx ``` #### Resource Configuration resource related field describes the deployment ...

(QB_NEW_EN)


[grammar] ~53-~53: There might be a mistake here.
Context: ...he deployment configuration for the alb. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~66-~66: There might be a mistake here.
Context: ... you can access the ALB via the node IP. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~69-~69: There might be a mistake here.
Context: ...d uses its address as the ALB address. | | .spec.address | string,required | yo...

(QB_NEW_EN)


[grammar] ~70-~70: There might be a mistake here.
Context: ...ld manually specify the address of alb | | .spec.config.vip.enableLbSvc | bool,...

(QB_NEW_EN)


[grammar] ~74-~74: There might be a mistake here.
Context: ...r Service. | #### project configuration | Field | Type | |-------|------| | `.s...

(QB_NEW_EN)


[grammar] ~75-~75: There might be a mistake here.
Context: ... project configuration | Field | Type | |-------|------| | `.spec.config.project...

(QB_NEW_EN)


[grammar] ~76-~76: There might be a mistake here.
Context: ...ation | Field | Type | |-------|------| | .spec.config.projects | []string,req...

(QB_NEW_EN)


[grammar] ~77-~77: There might be a mistake here.
Context: ...c.config.projects| []string,required | |.spec.config.portProjects` | string,o...

(QB_NEW_EN)


[grammar] ~78-~78: There might be a mistake here.
Context: ...config.portProjects| string,optional | |.spec.config.enablePortProject` | boo...

(QB_NEW_EN)


[grammar] ~82-~82: There might be a mistake here.
Context: ...project can find and configure this ALB. 2. This ALB will handle ingress resources b...

(QB_NEW_EN)


[grammar] ~90-~90: There might be a mistake here.
Context: ...obal config which can be tweaked in alb cr. - bind-nic - [ingr...

(QB_NEW_EN)


[grammar] ~91-~91: There might be a mistake here.
Context: ...ch can be tweaked in alb cr. - bind-nic - [ingress-sync](../../functions/configure_...

(QB_NEW_EN)


[grammar] ~105-~105: There might be a mistake here.
Context: ...eld of the CR: |Parameter| Description| |--|--| |Assigned Address| `.spec.addres...

(QB_NEW_EN)


[grammar] ~106-~106: There might be a mistake here.
Context: ...he CR: |Parameter| Description| |--|--| |Assigned Address| .spec.address| |All...

(QB_NEW_EN)


[grammar] ~107-~107: There might be a mistake here.
Context: ...|--| |Assigned Address| .spec.address| |Allocated By| Instance means project ...

(QB_NEW_EN)


[grammar] ~136-~136: There might be a mistake here.
Context: ...tate. 5. Click Update. #### Delete ##### Using the web console :::note After del...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ... (tcp|udp). In L4 Proxy use frontend to configure backend service directly. In L7 Proxy u...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ...d to configure backend service directly. In L7 Proxy use frontend to configure li...

(QB_NEW_EN)


[grammar] ~160-~160: There might be a mistake here.
Context: ..._rule.mdx) to configure backend service. If you need to add an HTTPS listener por...

(QB_NEW_EN)


[grammar] ~164-~164: There might be a mistake here.
Context: ...adings-in-section */} ### Prerequisites Create a ALB first. ### Configure Front...

(QB_NEW_EN)


[grammar] ~195-~195: There might be a mistake here.
Context: ...ntend name: Format as $alb_name-$port. 3. port: which port which listen on. 4. pro...

(QB_NEW_EN)


[grammar] ~196-~196: There might be a mistake here.
Context: ...t`. 3. port: which port which listen on. 4. protocol: what protocol this port uses. ...

(QB_NEW_EN)


[grammar] ~197-~197: There might be a mistake here.
Context: ... protocol: what protocol this port uses. - L7 protocol https|http|grpcs|grpc and L4...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...ed, Format as $secret_ns/$secret_name. 6. backendProtocol: what protocol the backe...

(QB_NEW_EN)


[grammar] ~207-~207: There might be a mistake here.
Context: ...alls back to the default serviceGroup. 8. [session_affinity_policy](./load_balancin...

(QB_NEW_EN)


[grammar] ~214-~214: There might be a mistake here.
Context: ... ### Operation On Frontend #### Creating ##### using the web console ![](../../assets/c...

(QB_NEW_EN)


[grammar] ~225-~225: Ensure spelling is correct
Context: ...k Add Port. Each input item on the webui corresponds to a field of the CR |Param...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~226-~226: There might be a mistake here.
Context: ... field of the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serv...

(QB_NEW_EN)


[grammar] ~227-~227: There might be a mistake here.
Context: ...the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serviceGroup.s...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx

[grammar] ~17-~17: There might be a mistake here.
Context: ...guration). | Annotation | Description | |---|---| | `metallb.universe.tf/loadBal...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ... | Annotation | Description | |---|---| | metallb.universe.tf/loadBalancerIPs ...

(QB_NEW_EN)


[grammar] ~22-~22: There might be a mistake here.
Context: ... pool to allocate from. | ## Method 2: Use external ALB device to provide VIP * P...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...the ports in use to reduce the downtime of ALB upgrade. The health check configura...

(QB_NEW_EN)


[grammar] ~31-~31: There might be a mistake here.
Context: ...h check, it is recommended to use TCP. | | Response Timeout | The time requir...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/url_rewrite.mdx

[grammar] ~6-~6: There might be a mistake here.
Context: ...ps to rewrite the URL. ## Configuration via ingress annotation ```yaml apiVersio...

(QB_NEW_EN)


[grammar] ~48-~48: There might be a mistake here.
Context: ...rget: /$3 ``` Example: client requests /prefix-x/abc; backend receives `/abc`.

(QB_NEW_EN)

🔇 Additional comments (15)
docs/en/configure/networking/how_to/alb/auth.mdx (2)

7-7: Heading pluralization is fine

“Basic Concepts” reads better and aligns with other pages.


134-134: Tighten wording for authentication details

The link target install_ingress_nginx_via_cluster_plugin.mdx has been confirmed to exist under docs/en/configure/networking/how_to/, so the reference is valid. To simplify the phrasing, please apply the following nit:

• File: docs/en/configure/networking/how_to/alb/auth.mdx
• Line: 134

-[Ingress-nginx](../install_ingress_nginx_via_cluster_plugin.mdx) defines a series of annotations to configure the specific details of the authentication process. Below is a list of annotations that ALB supports, where "v" indicates support and "x" indicates no support.
+[Ingress-nginx](../install_ingress_nginx_via_cluster_plugin.mdx) defines a series of annotations to configure the details of the authentication process. Below is a list of annotations that ALB supports, where "v" indicates support and "x" indicates no support.
docs/en/configure/networking/how_to/alb/cors.mdx (1)

8-21: Clarify CORS fields and add concrete Rule example

docs/en/configure/networking/how_to/alb/cors.mdx (lines 8–21)

Proposed changes:

  • Use consistent camelCase (enableCORS, corsAllowHeaders, corsAllowOrigin).
  • Capitalize “CORS” and tighten descriptions for true/false behavior.
  • Add a fully-fleshed Rule example under spec.actions.cors.
-enableCORS:
-  description: enableCORS is the switch whether enable cross domain,
-    when EnableCORS is false, alb2 transports information to backend
-    servers which determine whether allow cross-domain
-  type: boolean
-corsAllowHeaders:
-  description: corsAllowHeaders defines the headers allowed by cors
-    when enableCORS is true, multiple headers are separated by commas
-  type: string
-corsAllowOrigin:
-  description: corsAllowOrigin defines the origin allowed by cors when
-    enableCORS is true, multiple origins are separated by commas
-  type: string
+enableCORS:
+  description: When true, the ALB sets CORS response headers. When false, the backend service controls cross-origin behavior.
+  type: boolean
+corsAllowHeaders:
+  description: Comma-separated list of request headers allowed when CORS is enabled.
+  type: string
+corsAllowOrigin:
+  description: Comma-separated list of origins allowed when CORS is enabled.
+  type: string

Add this example immediately after the CRD block to show usage in a Rule:

apiVersion: crd.alauda.io/v1
kind: Rule
spec:
  actions:
    cors:
      enableCORS: true
      corsAllowHeaders: Authorization,Content-Type
      corsAllowOrigin: https://app.example.com,https://admin.example.com

Please verify that these fields indeed live under .spec.actions.cors in the Rule CRD (and confirm any default values), so the docs align exactly with the schema.

docs/en/configure/networking/functions/configure_ingress.mdx (1)

18-24: Reworded controller behavior LGTM

The revised description accurately reflects request‑time rule matching by the controller.

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (2)

15-21: Table renders fine; cross‑ref anchor seems correct

Linking to “Networking Configuration” is appropriate given the new anchor.


24-24: Relative link is correct as written

The soft_data_center_lb_solution.mdx file lives in docs/en/configure/networking/how_to/, one level above the alb/ folder. The current link

[Pure Software Data Center LB Solution (Alpha)](../soft_data_center_lb_solution.mdx)

correctly resolves from docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx to docs/en/configure/networking/how_to/soft_data_center_lb_solution.mdx, so no change is needed.

Likely an incorrect or invalid review comment.

docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (1)

33-35: Cross-doc consistency with GatewayAPI mapping.

Here you state Ingress/Gateway API are “translated to ALB Rules,” but in concepts/gatewayapi.mdx (Lines 12–13) you say “listeners and routes are handled directly … not translated into Frontend or Rule.” Please reconcile and pick one model, then align both docs.

docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

28-46: Rule CRD example looks correct (capture group fixed to $3).

Regex, rewrite_base, and rewrite_target are consistent.

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (2)

27-46: Confirm Gateway API version (v1 vs v1beta1).

If your platform supports Gateway API v1, prefer the GA version. If not, keep v1beta1 but consider adding a note stating the supported version.


96-96: Anchor correctness for service-annotation link.

Verify the target anchor #loadbalancer_type_service_annotation exists at ../../functions/configure_service.mdx; adjust if the slug differs.

docs/en/configure/networking/concepts/gatewayapi.mdx (1)

12-14: Align mapping model with the comparison doc.

This page says “Listeners and routes are handled directly by ALB; they are not translated into Frontend or Rule,” while the comparison doc claims Ingress/Gateway API are translated to ALB Rules. Please choose one description and update both pages to match.

docs/en/configure/networking/functions/configure_alb_rule.mdx (3)

23-24: Confirm label prefix alb2.cpaas.io/*.

Docs elsewhere use alb.cpaas.io/* for annotations; here labels use alb2.cpaas.io/*. If intentional (labels vs annotations or ALB v2), add a short note. If not, align prefixes.


161-161: Verify protocol name “GRPCS”.

Confirm whether the product uses “GRPCS”, “gRPC over TLS”, or “GRPCS (gRPCS)”. If not “GRPCS”, adjust for accuracy.


116-129: Nice cross-linking of Actions to dedicated how-to pages.

docs/en/configure/networking/how_to/alb/header_modification.mdx (1)

55-59: Good, practical examples (Authorization and HSTS).

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (5)
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

7-26: Remove NGINX-only annotations under ingressClassName: alb; they won’t work with ALB.

This snippet is misleading in an ALB guide. Replace with a note and keep the Rule CR example.

-## Configuration
-via ingress annotation
-```yaml
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
-  nginx.ingress.kubernetes.io/rewrite-target: /$2
-  name: demo
-spec:
-  ingressClassName: alb
-  rules:
-  - http:
-      paths:
-      - backend:
-          service:
-            name: frontend
-            port:
-              number: 8080
-        path: /(prefix-x)(/|$)(.*)
-        pathType: ImplementationSpecific
-```
+## Configuration
+> Note: ALB does not support URL rewrite via Ingress annotations. Use the Rule CRD method below.
docs/en/configure/networking/functions/configure_alb_rule.mdx (3)

187-213: Unescape remaining heading IDs and capitalize “Ingress”.

-## Ingress \{#alb_ingress}
-### ingress sync \{#alb_ingress_sync}
-#### ssl strategy \{#alb_ingress_ssl_strategy}
+## Ingress {#alb_ingress}
+### Ingress sync {#alb_ingress_sync}
+#### SSL strategy {#alb_ingress_ssl_strategy}

11-16: Unescape heading IDs so anchors render.

-### Quick demo of rule \{#alb_add_rule}
+### Quick demo of rule {#alb_add_rule}

Repeat for other headings with \{#...} in this file.


166-171: Standardize TLS annotation domain.

-alb.networking.cpaas.io/tls: qq.com=cpaas-system/dex.tls,qq1.com=cpaas-system/dex1.tls
+alb.cpaas.io/tls: qq.com=cpaas-system/dex.tls,qq1.com=cpaas-system/dex1.tls
docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1)

56-63: Correct key paths: use .spec.config.resources* (plural) to match the YAML/CRD.

The table uses resource singular and misses the resources.alb.* nesting; this will mislead users.

-| `.spec.config.resource.limit` | k8s container-resource,optional |  limit of nginx container of alb |
-| `.spec.config.resource.request` | k8s container-resource,optional |  request of nginx container of alb |
-| `.spec.config.resource.alb.limit` | k8s container-resource,optional |  limit of alb container of alb |
-| `.spec.config.resource.alb.request` | k8s container-resource,optional | request of alb container of alb |
+| `.spec.config.resources.limits` | k8s container resources, optional | Limits for the nginx container. |
+| `.spec.config.resources.requests` | k8s container resources, optional | Requests for the nginx container. |
+| `.spec.config.resources.alb.limits` | k8s container resources, optional | Limits for the ALB sidecar/container. |
+| `.spec.config.resources.alb.requests` | k8s container resources, optional | Requests for the ALB sidecar/container. |
🧹 Nitpick comments (42)
docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (2)

6-6: Align “Gateway API” usage consistently in comparison page

To maintain consistency and prevent confusion, please update all occurrences of “GatewayAPI” and “Gateway API” within docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx to a single variant (recommended: “Gateway API” to match the page title):

• Line 18: change “GatewayAPI” → “Gateway API”
• Line 25 (heading): change “### GatewayAPI” → “### Gateway API”
• Lines 27–29, 33: change each “GatewayAPI” → “Gateway API”

No other functional changes are needed—this is purely a text consistency cleanup.


9-9: Grammar and Link Verification Updates Needed

  • ALB Rule link is valid: docs/en/configure/networking/functions/configure_alb_rule.mdx exists—no change required there.
  • In docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx:
    • Line 8: add the missing article “the” before “Kubernetes ecosystem.”
    • Line 9: tweak phrasing for clarity and consistency.

Suggested diff:

 docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx

- The Alauda Container Platform supports multiple ingress traffic specifications in Kubernetes ecosystem.
+ The Alauda Container Platform supports multiple ingress traffic specifications in the Kubernetes ecosystem.

- This document compares them ([Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx)) to help users make the right choice.
+ This document compares them ([Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx)) to help you choose the right option.
docs/en/configure/networking/how_to/alb/cors.mdx (3)

8-21: Tighten CORS field descriptions; use “cross-origin” and clarify behavior.

Improve clarity/grammar and align with CORS terminology.

 enableCORS:
-  description: enableCORS is the switch whether enable cross domain,
-    when EnableCORS is false, alb2 transports information to backend
-    servers which determine whether allow cross-domain
+  description: Flag to enable ALB-managed cross-origin handling.
+    When false, ALB does not add CORS headers; the backend decides whether to allow cross-origin requests.
   type: boolean
 corsAllowHeaders:
-  description: corsAllowHeaders defines the headers allowed by cors
-    when enableCORS is true, multiple headers are separated by commas
+  description: Comma-separated list of headers to allow (Access-Control-Allow-Headers).
   type: string
 corsAllowOrigin:
-  description: corsAllowOrigin defines the origin allowed by cors when
-    enableCORS is true, multiple origins are separated by commas
+  description: Comma-separated list of allowed origins (Access-Control-Allow-Origin) when enableCORS is true.
   type: string

23-23: Specify exact placement path.

If accurate, name the field path to reduce ambiguity.

-It can be configured on the rule `.spec`.
+Configure these fields on Rule `.spec.config.cors`.

6-6: Consider documenting allowed methods (if supported).

CORS typically needs allowed methods; add corsAllowMethods if the product supports it.

I can draft the section once you confirm field names and support.

docs/en/configure/networking/how_to/alb/url_rewrite.mdx (3)

28-46: Rule CR example looks correct; keep $3 for tail.

Nice fix on capture group usage.

Optional: clarify heading.

-via rule
+via Rule (ALB CRD)

48-48: Add one more example to demonstrate regex groups (optional).

Consider adding another path (e.g., /prefix-x/ root) to show $3 can be empty.


1-5: Minor phrasing.

Streamline sentences.

-ALB can rewrite the request URL before forwarding it to the backend.
-You can use regex capture groups to rewrite the URL.
+ALB can rewrite the request URL before forwarding to the backend, using regex capture groups.
docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (2)

4-4: Trim trailing space in H1.

-# Install Ingress-Nginx via Cluster Plugin 
+# Install Ingress-Nginx via Cluster Plugin

158-161: Prefer consistent casing in related resource links

The referenced tasks file exists at docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx, and both external URLs return 200 OK. To match the title-casing and terminology of the other links, please update the link text:

### Related Resources
-[tasks for ingress-nginx](./tasks_for_ingress_nginx.mdx)  
+[Tasks for Ingress NGINX](./tasks_for_ingress_nginx.mdx)  
[official Ingress NGINX chart](https://github.com/kubernetes/ingress-nginx/tree/controller-v1.12.3/charts/ingress-nginx)  
[official Ingress NGINX documentation](https://kubernetes.github.io/ingress-nginx/)  
docs/en/configure/networking/how_to/alb/auth.mdx (1)

134-134: Fix product name and tighten sentence.

-[Ingress-nginx](../install_ingress_nginx_via_cluster_plugin.mdx) defines a series of annotations to configure the specific details of the authentication process. Below is a list of annotations that ALB supports, where "v" indicates support and "x" indicates no support.
+[Ingress-NGINX](../install_ingress_nginx_via_cluster_plugin.mdx) defines annotations to configure authentication. Below is a list of annotations that ALB supports; "v" indicates support and "x" indicates no support.
docs/en/configure/networking/functions/configure_ingress.mdx (5)

18-24: Tighten “Implementation Method” wording and fix port phrasing.

Current phrasing is awkward (“the 80 port”, “the 443 port”). Suggest concise, platform-accurate wording.

-Ingress rules depend on the implementation of the Ingress Controller, which is responsible for listening to changes in Ingress and Service. After a new Ingress is created, when the Ingress Controller receives a request, it matches the forwarding rule from the Ingress and distributes the traffic to the specified internal routes, as shown in the diagram below.
+Ingress behavior depends on the Ingress Controller. After an Ingress is created, the controller matches incoming requests against its rules and forwards traffic to the configured Services, as shown below.
@@
-For the HTTP protocol, Ingress only supports the 80 port as the external port. For the HTTPS protocol, Ingress only supports the 443 port as the external port. The platform's load balancer will automatically add the 80 and 443 listening ports.
+For HTTP, the external port is 80; for HTTPS, it is 443. The platform load balancer automatically exposes ports 80 and 443.

25-26: Reintroduce an explicit “Prerequisites” section.

These bullets read like prerequisites and are easy to miss under the note. Add a heading for scannability.

- - [install ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
- - [install alb as ingress-controller](../how_to/alb/deploy_alb.mdx)
+### Prerequisites
+- [Install Ingress-NGINX as the IngressClass controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
+- [Install ALB as the IngressClass controller](../how_to/alb/deploy_alb.mdx)

39-41: Clarify controller selection and fix grammar.

Make the IngressClass guidance explicit and correct article usage.

-spec:
-  ingressClassName: nginx #[!code callout]
+spec:
+  ingressClassName: nginx #[!code callout]

@@
-2. `nginx` to using `ingress-nginx` controller, `$alb_name` to use alb as ingress controller.
-3. If you only want to run ingress locally, configure the `hosts` beforehand.
+2. Set `spec.ingressClassName: nginx` to use the Ingress‑NGINX controller, or set it to your ALB class name (for example, `$alb_name`) to use ALB.
+3. For local testing, update your `/etc/hosts` (or hosts file) to resolve the demo domain.

Also applies to: 57-59


61-63: Article agreement (“an Ingress”).

-## Creating a Ingress by using the web console
+## Creating an Ingress by using the web console

71-78: Minor table copyedits and hyphenation.

-| **Match Type** and **Path** | <ul><li>**Prefix**: Matches path prefixes, e.g., `/abcd` can match `/abcd/efg` or `/abcde`.</li><li>**Exact**: Matches exact paths, e.g., `/abcd`.</li><li>**Implementation specific**: If you are using a custom Ingress controller to manage the Ingress rules, you may choose to have the controller decide.</li></ul> |
+| **Match Type** and **Path** | <ul><li>**Prefix**: Matches path prefixes, e.g., `/abcd` can match `/abcd/efg` or `/abcde`.</li><li>**Exact**: Matches exact paths, e.g., `/abcd`.</li><li>**Implementation‑specific**: For custom Ingress controllers, defer to the controller’s behavior.</li></ul> |
docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (2)

11-16: Clarify Service type wording and confirm anchor.

  • Use standard Kubernetes phrasing (“Service of type LoadBalancer”).
  • Thanks for adding the target anchor in deploy_alb.mdx; keep the link as-is.
-When creating an ALB in `container` network mode, the system automatically creates a LoadBalancer Service to provide a VIP for that ALB.
+When creating an ALB in `container` network mode, the system automatically creates a Service of type `LoadBalancer` to provide a VIP for that ALB.
@@
-After MetalLB is ready, you can add the following annotations to `alb.spec.config.vip.lbSvcAnnotations` to tweak MetalLB behavior. See [ALB networking configuration](./deploy_alb.mdx#alb_networking_configuration).
+After MetalLB is ready, add the following annotations to `alb.spec.config.vip.lbSvcAnnotations` to tune MetalLB behavior. See [ALB networking configuration](./deploy_alb.mdx#alb_networking_configuration).

24-35: Tighten external ALB guidance and health‑check wording.

-* Please confirm with the network engineer the IP address (public IP, private IP, VIP) or domain name of the ALB service before deployment. If you want to use a domain name as the address for external traffic to access the ALB, you need to apply for a domain name in advance and configure domain name resolution. It is recommended to use a commercial Load Balancer device to provide a VIP, if not, you can use the [Pure Software Data Center LB Solution (Alpha)](../soft_data_center_lb_solution.mdx)
+* Confirm with your network team the IP (public, private, VIP) or the domain name used by the ALB before deployment. If using a domain, provision it and configure DNS resolution in advance. Prefer a commercial load balancer for the VIP; otherwise see the [Pure Software Data Center LB Solution (Alpha)](../soft_data_center_lb_solution.mdx).
@@
-* According to the business scenario, the external ALB needs to configure health checks for all the ports in use to reduce the downtime of ALB upgrade. The health check configuration is as follows:
+* Configure health checks on all in‑use ports to minimize downtime during ALB upgrades. Recommended settings:
@@
-    | **Protocol** | The protocol type of the health check, it is recommended to use TCP. |
-    | **Response Timeout** | The time required to receive the health check response, it is recommended to configure it to 2 seconds. |
-    | **Check Interval** | The time interval for the health check, it is recommended to configure it to 5 seconds. |
-    | **Unhealthy Threshold** | The number of consecutive failures after which the health check status of the backend server is determined to be failed, it is recommended to configure it to 3 times. |    
+    | **Protocol** | Health‑check protocol (recommend TCP). |
+    | **Response Timeout** | Response timeout (recommend 2s). |
+    | **Check Interval** | Check interval (recommend 5s). |
+    | **Unhealthy Threshold** | Fail threshold (recommend 3). |
docs/en/configure/networking/how_to/alb/header_modification.mdx (3)

10-14: Capitalize section title and align table header labels.

-### use annotations
+### Use annotations
-| target  | annotation key                         |
+| Target  | Annotation key                         |

17-29: Improve Go comment phrasing for clarity and consistency.

 type RewriteRequestConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // set header, which values are variable name 
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
-	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // add header, which values could be multiple and which values are variable name
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // Set header; values are variable names
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header; values can contain multiple entries
+	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // Add header; multiple values; values are variable names
 }
 type RewriteResponseConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header; values can contain multiple entries
 }

30-41: Tighten example narrative and capitalize header name.

-Note: in `*_var` maps the key is the header name and the value is the ALB context variable name.
+Note: in `*_var` maps the key is the header name and the value is the ALB context variable name.
@@
-        "x-my-host": "http_host"
+        "X-My-Host": "http_host"
@@
-will add key `x-my-host` and value of request host header to request header.
-you can refer to the [nginx variable](http://nginx.org/en/docs/varindex.html) for the variable names.
+Adds header `X-My-Host` with the request’s host value.
+See the list of [NGINX variables](http://nginx.org/en/docs/varindex.html).
docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (2)

18-25: Fix request-header removal guidance and grammar.

Ingress‑NGINX doesn’t have a first‑class “remove request header” annotation. Recommend clearing via configuration snippets.

-|remove header in request| set a empty header in request |
+|remove header in request| Use a `configuration-snippet` with `proxy_set_header <Header-Name> "";` |

Example (outside table):

nginx.ingress.kubernetes.io/configuration-snippet: |
  proxy_set_header X-Example "";

32-34: Hyphenate “rate‑limiting” as a compound modifier.

-## Rate Limiting
-[config rate limiting](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#rate-limiting)
+## Rate‑limiting
+[configure rate‑limiting](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#rate-limiting)
docs/en/configure/networking/functions/configure_alb_rule.mdx (5)

56-68: DSLX example copyedits and priority guidance clarity.

-- url param's group is vip
+- URL parameter `group` equals `vip`
@@
-- header's location is east-1 or east-2
+- header `LOCATION` is `east-1` or `east-2`
@@
-- has a cookie name is uid
+- has a cookie named `uid`
@@
-- source IPs come from 1.1.1.1-1.1.1.100
+- source IP in range 1.1.1.1–1.1.1.100
@@
-Priority is an integer ranging from 0 to 10, where lower values indicate higher priority. To configure the priority of a rule in ingress, you can use the following annotation format:
+Priority is an integer 0–10 (lower = higher). To set an Ingress‑derived rule’s priority, use:

Also applies to: 108-115


111-113: Annotation domain OK; add explicit example context.

-# alb.cpaas.io/ingress-rule-priority-$rule_index-$path_index
+# Set per‑path priority on Ingress‑translated rules
+# alb.cpaas.io/ingress-rule-priority-$rule_index-$path_index

130-139: Capitalize “Backend protocol” section and minor copyedits.

-## Backend
-### backend protocol \{#backend_protocol}
+## Backend
+### Backend protocol {#backend_protocol}
@@
-### Service Group and Session Affinity Policy \{#service_group}
+### Service Group and Session Affinity Policy {#service_group}

141-153: UI steps: tighten wording and fix “webui”.

-Each input item on the webui corresponds to a field of the CR
+Each form field in the Web UI maps to a field in the CR.

160-166: HTTPS section casing, clarity, and step wording.

-## Https
+## HTTPS
@@
-If the frontend protocol (ft) is HTTPS or GRPCS, the rule can also be configured to use HTTPS.
+If the Frontend (FT) protocol is HTTPS or GRPCS, the rule can also use HTTPS.
@@
-### Certificate in Rule \{#certificate_name}
+### Certificate in Rule {#certificate_name}
@@
-1. create ft use https protocol
-2. create rule with backend protocol http, and specify cert via `.spec.certificate_name`
+1. Create a Frontend using the HTTPS protocol.
+2. Create a rule with backend protocol HTTP, and set `.spec.certificate_name`.
@@
-1. create ft use https protocol
-2. create rule with backend protocol https, and specify cert via `.spec.certificate_name`
+1. Create a Frontend using the HTTPS protocol.
+2. Create a rule with backend protocol HTTPS, and set `.spec.certificate_name`.

Also applies to: 172-186

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (4)

6-6: Unify terminology: “GatewayAPI”, not “GatewayApi”.

Use the standard capitalization across docs.

-# Configure GatewayApi Gateway via ALB
+# Configure GatewayAPI Gateway via ALB

24-24: Fix product name casing: “ALB2”.

Keep resource names consistent.

-## Example Gateway and Alb2 custom resource (CR)
+## Example Gateway and ALB2 custom resource (CR)

118-122: Inconsistent ALB2 naming vs earlier example/callout.

Above, ALB2 name format is “{gatewayName}-{random}” and the example uses test-o93q7, but this table shows name-lb-random. Align to avoid confusion.

-      <td>ALB2 Type Resource</td>
-      <td><i>name-lb-random</i></td>
+      <td>ALB2 Type Resource</td>
+      <td><i>test-o93q7</i></td>

231-234: Terminology: prefer “Ingress” over “inbound rules”; avoid “ingress gateway”.

Use Gateway API terms consistently.

-Route rules provide routing policies for incoming traffic, similar to inbound rules (Kubernetes Ingress).
+Route rules provide routing policies for incoming traffic, similar to Kubernetes Ingress.
@@
-Once the listening is set up in the ingress gateway, the gateway will monitor traffic
+Once listening is set up on the Gateway, it will monitor traffic
docs/en/configure/networking/concepts/gatewayapi.mdx (1)

6-9: Minor style: introduce the diagram.

Optional, but a short lead-in improves flow.

-The overall resource model focuses on 3 separate personas and corresponding resources that they are expected to manage:
+The overall resource model focuses on three personas and their corresponding resources:
docs/en/configure/networking/architecture/understanding_alb.mdx (2)

37-41: Grammar/clarity in example manifest comment.

Tighten the comment.

-    address: "172.20.0.5"  # the ip address of node where alb been deployed
+    address: "172.20.0.5"  # IP address of the node where ALB is deployed

106-106: Clarify what “ip” refers to.

Readers may not know whether this is .spec.address or LB Service IP.

-Now you can access the app via `curl http://${ip}`
+Now you can access the app via `curl http://$ALB_ADDRESS`  # replace with the ALB address (Service IP/DNS or .spec.address in host mode)
docs/en/configure/networking/how_to/alb/deploy_alb.mdx (7)

14-15: Broken-link risk: point to the local networking section for VIP.

Earlier VIP doc may be removed/relocated. Link to the section on this page.

-The high availability of the **Load Balancer** requires a VIP. Please refer to [Configure VIP](./deploy_high_available_vip_for_alb.mdx).
+The high availability of the **Load Balancer** requires a VIP. See [Networking Configuration](#alb_networking_configuration) for VIP options.

65-72: Networking wording and casing.

Tighten phrasing; keep “web UI” casing consistent across docs.

-#### Networking Configuration \{#alb_networking_configuration}
-Networking fields describe how to access the ALB. For example, in `host` mode, alb will use hostnetwork, and you can access the ALB via the node IP.
+#### Networking Configuration {#alb_networking_configuration}
+Networking fields describe how to access the ALB. For example, in `host` mode ALB uses host networking and you can access it via the node IP.
@@
-| `.spec.address` | string,required | you could manually specify the address of alb |
+| `.spec.address` | string, required | Manually specify the ALB address. |

74-81: Heading and types: capitalize and clarify.

Minor readability tweaks.

-#### project configuration
+#### Project Configuration
@@
-| `.spec.config.portProjects` | string,optional |
+| `.spec.config.portProjects` | string, optional |  # e.g. "30000-30999"

94-109: UI mapping phrasing.

Small clarity fix; consistent “web UI”.

-Some common configuration is exposed in the web UI. Follow these steps to create a load balancer:
+Some common configuration is exposed in the web UI. To create a load balancer:
@@
-|Allocated By| `Instance` means project mode, and you could select project below, port means port-project mode, you could assign port-range after create alb |
+|Allocated By| `Instance` = project mode (select the project). `Port` = port-project mode (assign a port range after creating the ALB). |

164-166: Article usage: “an ALB”.

-Create a ALB first.
+Create an ALB first.

194-201: Callouts grammar and spacing.

Fix “which port which listen on,” spacing, and session-affinity sentence.

-2. frontend name: Format as `$alb_name-$port`.
-3. port: which port which listen on.
-4. protocol: what protocol this port uses.
+2. Frontend name: format as `$alb_name-$port`.
+3. Port: the port to listen on.
+4. Protocol: the protocol used on this port.
@@
-   - When selecting the gRPC protocol, the backend protocol defaults to gRPC, which does not support session persistence.If a certificate is set for the gRPC protocol, the load balancer will unload the gRPC certificate and forward the unencrypted gRPC traffic to the backend service.
+   - When selecting the gRPC protocol, the backend protocol defaults to gRPC (session persistence is not supported). If a certificate is set for gRPC, the load balancer will terminate TLS and forward plaintext gRPC to the backend.

225-229: “web UI” casing and table intro period.

-Each input item on the webui corresponds to a field of the CR
+Each input item in the web UI corresponds to a field of the CR.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 8795f80 and c30e36d.

⛔ Files ignored due to path filters (4)
  • docs/en/configure/networking/assets/create_alb_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_ft_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_rule_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/gatewayapi-architecture.png is excluded by !**/*.png
📒 Files selected for processing (26)
  • docs/en/configure/networking/architecture/understanding_alb.mdx (3 hunks)
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx (7 hunks)
  • docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/concepts/gatewayapi.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_ingress.mdx (3 hunks)
  • docs/en/configure/networking/how_to/alb/auth.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/cors.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/decision_making_for_performance_selection_of_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/header_modification.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/index.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/otel.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1 hunks)
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx (0 hunks)
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx (0 hunks)
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx (0 hunks)
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (2 hunks)
  • docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1 hunks)
💤 Files with no reviewable changes (3)
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx
✅ Files skipped from review due to trivial changes (3)
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx
  • docs/en/configure/networking/how_to/alb/decision_making_for_performance_selection_of_alb.mdx
🚧 Files skipped from review as they are similar to previous changes (6)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx
  • docs/en/configure/networking/how_to/alb/otel.mdx
  • docs/en/configure/networking/how_to/alb/index.mdx
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx
🧰 Additional context used
🪛 LanguageTool
docs/en/configure/networking/functions/configure_ingress.mdx

[grammar] ~24-~24: There might be a mistake here.
Context: ... add the 80 and 443 listening ports. ::: - [install ingress-nginx as ingress-control...

(QB_NEW_EN)


[grammar] ~25-~25: There might be a mistake here.
Context: ...tall ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx) - [install alb as ingress-controller](../ho...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...dx) - install alb as ingress-controller ## Example Ingress: ```yaml # nginx-ingres...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ...inxcontroller,$alb_name` to use alb as ingress controller. 3. If you only want...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ..._name` to use alb as ingress controller. 3. If you only want to run ingress locally,...

(QB_NEW_EN)

docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx

[grammar] ~8-~8: There might be a mistake here.
Context: ...multiple ingress traffic specifications in Kubernetes ecosystem. This document com...

(QB_NEW_EN)


[grammar] ~8-~8: There might be a mistake here.
Context: ... specifications in Kubernetes ecosystem. This document compares them ([Service](....

(QB_NEW_EN)

docs/en/configure/networking/concepts/gatewayapi.mdx

[grammar] ~12-~12: There might be a mistake here.
Context: ...ateway resource maps to an ALB resource. Listeners and routes are handled directl...

(QB_NEW_EN)

docs/en/configure/networking/functions/configure_alb_rule.mdx

[grammar] ~1-~1: There might be a mistake here.
Context: # Configure ALB Rules ## Introduction ### What is a Rule? Rule i...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ... must be attached to a frontend and alb via label. ::: ```yaml apiVersion: crd.ala...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ...ttached to a frontend and alb via label. ::: ```yaml apiVersion: crd.alauda.io/v...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...e Frontend to which this rule belongs. 2. Required, indicate the ALB to which this...

(QB_NEW_EN)


[grammar] ~58-~58: There might be a mistake here.
Context: ... used to describe the matching criteria. For example, the rule below matches a re...

(QB_NEW_EN)


[grammar] ~116-~116: There might be a mistake here.
Context: ...rity` using an integer value. ## Action After a request matches a rule, you can ...

(QB_NEW_EN)


[grammar] ~121-~121: There might be a mistake here.
Context: ...meout](../how_to/alb/l4_l7_timeout.mdx)| | Redirect | Redirects incoming ...

(QB_NEW_EN)


[grammar] ~122-~122: There might be a mistake here.
Context: ...irect](../how_to/alb/http_redirect.mdx)| | CORS | Enables Cross-Origi...

(QB_NEW_EN)


[grammar] ~123-~123: There might be a mistake here.
Context: ... |cors| | Header Modification | Allows modifi...

(QB_NEW_EN)


[grammar] ~124-~124: There might be a mistake here.
Context: ...(../how_to/alb/header_modification.mdx)| | URL Rewrite | Rewrites the URL of...

(QB_NEW_EN)


[grammar] ~125-~125: There might be a mistake here.
Context: ...rewrite](../how_to/alb/url_rewrite.mdx)| | WAF | Integrates Web Appl...

(QB_NEW_EN)


[grammar] ~126-~126: There might be a mistake here.
Context: ... |waf| | OTEL | Enables OpenTelemet...

(QB_NEW_EN)


[grammar] ~127-~127: There might be a mistake here.
Context: ...g. |otel| | Keepalive | Enables or disable...

(QB_NEW_EN)


[grammar] ~131-~131: There might be a mistake here.
Context: ...## backend protocol {#backend_protocol} By default, the backend protocol is set ...

(QB_NEW_EN)


[grammar] ~134-~134: There might be a mistake here.
Context: ...ession Affinity Policy {#service_group} You can configure one or more services w...

(QB_NEW_EN)


[grammar] ~141-~141: There might be a mistake here.
Context: ...ty_policy_in_alb.mdx). ## Creating Rule ### Using web console ![](../assets/create_r...

(QB_NEW_EN)


[style] ~147-~147: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the load balancer. 4. Click on the name of the listener port. 5. Cl...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~148-~148: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the listener port. 5. Click Add Rule. 6. Refer to the following...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[grammar] ~152-~152: Ensure spelling is correct
Context: ... Click Add. Each input item on the webui corresponds to a field of the CR ### u...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: Ensure spelling is correct
Context: ... the frontend protocol (ft) is HTTPS or GRPCS, the rule can also be configured to use...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: There might be a mistake here.
Context: ...ule can also be configured to use HTTPS. You can specify the certificate either i...

(QB_NEW_EN)


[grammar] ~166-~166: There might be a mistake here.
Context: .... ### Certificate Annotation in Ingress Certificates can be referenced across na...

(QB_NEW_EN)


[grammar] ~172-~172: There might be a mistake here.
Context: ...Certificate in Rule {#certificate_name} In .spec.certificate_name, the format ...

(QB_NEW_EN)


[grammar] ~175-~175: There might be a mistake here.
Context: ...et_namespace/$secret_name` ### TLS Mode #### Edge Mode In edge mode, the client commu...

(QB_NEW_EN)


[grammar] ~176-~176: There might be a mistake here.
Context: ...ecret_name` ### TLS Mode #### Edge Mode In edge mode, the client communicates wi...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ...th backend services using HTTP protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~179-~179: There might be a mistake here.
Context: ...ve this: 1. create ft use https protocol 2. create rule with backend protocol http, ...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol http, and specify cert...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te rule with backend protocol http, and specify cert via .spec.certificate_name #### ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... ALB communicates with backend services using HTTPS protocol. To achieve this: 1. cre...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ...h backend services using HTTPS protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol https, and specify cer...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...e rule with backend protocol https, and specify cert via .spec.certificate_name ## I...

(QB_NEW_EN)


[grammar] ~188-~188: There might be a mistake here.
Context: ...s} ### ingress sync {#alb_ingress_sync} Each ALB creates an IngressClass with th...

(QB_NEW_EN)


[grammar] ~200-~200: There might be a mistake here.
Context: ....source.namespace` is ingress namespace. ::: #### ssl strategy {#alb_ingress_ss...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...sl strategy {#alb_ingress_ssl_strategy} For ingresses that do not have certifica...

(QB_NEW_EN)


[grammar] ~206-~206: There might be a mistake here.
Context: ...om resource with the following settings: - .spec.config.defaultSSLStrategy: Defines the SSL strategy for ingresses...

(QB_NEW_EN)


[grammar] ~207-~207: There might be a mistake here.
Context: ...ategy for ingresses without certificates - .spec.config.defaultSSLCert: Sets the default certificate in the fo...

(QB_NEW_EN)


[grammar] ~210-~210: There might be a mistake here.
Context: ...$secret_name` Available SSL strategies: - Never: Do not create rules on HTTPS po...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/auth.mdx

[style] ~134-~134: This phrase is redundant. Consider writing “details”.
Context: ... series of annotations to configure the specific details of the authentication process. Below is...

(SPECIFIC_DETAILS)

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx

[grammar] ~6-~6: Ensure spelling is correct
Context: ...52c10984d03564c0cdec45 --- # Configure GatewayApi Gateway via ALB An inbound gateway (Ga...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/en/configure/networking/how_to/alb/cors.mdx

[grammar] ~3-~3: There might be a mistake here.
Context: # CORS ## Basic Concepts [CORS](https://developer.mozilla.org/en-U...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_alb.mdx

[grammar] ~7-~7: There might be a mistake here.
Context: ...70cb27c0597def5 --- # Deploy ALB ## ALB ALB is a custom resource that represents a ...

(QB_NEW_EN)


[grammar] ~52-~52: There might be a mistake here.
Context: ...e: nginx ``` #### Resource Configuration resource related field describes the deployment ...

(QB_NEW_EN)


[grammar] ~53-~53: There might be a mistake here.
Context: ...he deployment configuration for the alb. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~66-~66: There might be a mistake here.
Context: ... you can access the ALB via the node IP. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~69-~69: There might be a mistake here.
Context: ...d uses its address as the ALB address. | | .spec.address | string,required | yo...

(QB_NEW_EN)


[grammar] ~70-~70: There might be a mistake here.
Context: ...ld manually specify the address of alb | | .spec.config.vip.enableLbSvc | bool,...

(QB_NEW_EN)


[grammar] ~74-~74: There might be a mistake here.
Context: ...r Service. | #### project configuration | Field | Type | |-------|------| | `.s...

(QB_NEW_EN)


[grammar] ~75-~75: There might be a mistake here.
Context: ... project configuration | Field | Type | |-------|------| | `.spec.config.project...

(QB_NEW_EN)


[grammar] ~76-~76: There might be a mistake here.
Context: ...ation | Field | Type | |-------|------| | .spec.config.projects | []string,req...

(QB_NEW_EN)


[grammar] ~77-~77: There might be a mistake here.
Context: ...c.config.projects| []string,required | |.spec.config.portProjects` | string,o...

(QB_NEW_EN)


[grammar] ~78-~78: There might be a mistake here.
Context: ...config.portProjects| string,optional | |.spec.config.enablePortProject` | boo...

(QB_NEW_EN)


[grammar] ~82-~82: There might be a mistake here.
Context: ...project can find and configure this ALB. 2. This ALB will handle ingress resources b...

(QB_NEW_EN)


[grammar] ~90-~90: There might be a mistake here.
Context: ...obal config which can be tweaked in alb cr. - bind-nic - [ingr...

(QB_NEW_EN)


[grammar] ~91-~91: There might be a mistake here.
Context: ...ch can be tweaked in alb cr. - bind-nic - [ingress-sync](../../functions/configure_...

(QB_NEW_EN)


[grammar] ~105-~105: There might be a mistake here.
Context: ...eld of the CR: |Parameter| Description| |--|--| |Assigned Address| `.spec.addres...

(QB_NEW_EN)


[grammar] ~106-~106: There might be a mistake here.
Context: ...he CR: |Parameter| Description| |--|--| |Assigned Address| .spec.address| |All...

(QB_NEW_EN)


[grammar] ~107-~107: There might be a mistake here.
Context: ...|--| |Assigned Address| .spec.address| |Allocated By| Instance means project ...

(QB_NEW_EN)


[grammar] ~136-~136: There might be a mistake here.
Context: ...tate. 5. Click Update. #### Delete ##### Using the web console :::note After del...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ... (tcp|udp). In L4 Proxy use frontend to configure backend service directly. In L7 Proxy u...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ...d to configure backend service directly. In L7 Proxy use frontend to configure li...

(QB_NEW_EN)


[grammar] ~160-~160: There might be a mistake here.
Context: ..._rule.mdx) to configure backend service. If you need to add an HTTPS listener por...

(QB_NEW_EN)


[grammar] ~164-~164: There might be a mistake here.
Context: ...adings-in-section */} ### Prerequisites Create a ALB first. ### Configure Front...

(QB_NEW_EN)


[grammar] ~195-~195: There might be a mistake here.
Context: ...ntend name: Format as $alb_name-$port. 3. port: which port which listen on. 4. pro...

(QB_NEW_EN)


[grammar] ~196-~196: There might be a mistake here.
Context: ...t`. 3. port: which port which listen on. 4. protocol: what protocol this port uses. ...

(QB_NEW_EN)


[grammar] ~197-~197: There might be a mistake here.
Context: ... protocol: what protocol this port uses. - L7 protocol https|http|grpcs|grpc and L4...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...ed, Format as $secret_ns/$secret_name. 6. backendProtocol: what protocol the backe...

(QB_NEW_EN)


[grammar] ~207-~207: There might be a mistake here.
Context: ...alls back to the default serviceGroup. 8. [session_affinity_policy](./load_balancin...

(QB_NEW_EN)


[grammar] ~214-~214: There might be a mistake here.
Context: ... ### Operation On Frontend #### Creating ##### using the web console ![](../../assets/c...

(QB_NEW_EN)


[grammar] ~225-~225: Ensure spelling is correct
Context: ...k Add Port. Each input item on the webui corresponds to a field of the CR |Param...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~226-~226: There might be a mistake here.
Context: ... field of the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serv...

(QB_NEW_EN)


[grammar] ~227-~227: There might be a mistake here.
Context: ...the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serviceGroup.s...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx

[grammar] ~17-~17: There might be a mistake here.
Context: ...guration). | Annotation | Description | |---|---| | `metallb.universe.tf/loadBal...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ... | Annotation | Description | |---|---| | metallb.universe.tf/loadBalancerIPs ...

(QB_NEW_EN)


[grammar] ~22-~22: There might be a mistake here.
Context: ... pool to allocate from. | ## Method 2: Use external ALB device to provide VIP * P...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...the ports in use to reduce the downtime of ALB upgrade. The health check configura...

(QB_NEW_EN)


[grammar] ~31-~31: There might be a mistake here.
Context: ...h check, it is recommended to use TCP. | | Response Timeout | The time requir...

(QB_NEW_EN)


[grammar] ~32-~32: There might be a mistake here.
Context: ...ommended to configure it to 2 seconds. | | Check Interval | The time interval...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/header_modification.mdx

[grammar] ~10-~10: There might be a mistake here.
Context: ...annotation key | |---------|-----------------------------...

(QB_NEW_EN)


[grammar] ~11-~11: There might be a mistake here.
Context: ...---------------------------------------| | ingress | `alb.ingress.cpaas.io/rewrit...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...alb.ingress.cpaas.io/rewrite-response| | rule |alb.rule.cpaas.io/rewrite-r...

(QB_NEW_EN)


[grammar] ~30-~30: There might be a mistake here.
Context: ... value is the ALB context variable name. For example, add the following annotatio...

(QB_NEW_EN)


[grammar] ~44-~44: There might be a mistake here.
Context: ... | |--------------------------------|------...

(QB_NEW_EN)


[grammar] ~45-~45: There might be a mistake here.
Context: ...---------------------------------------| | first_forward_or_remote_addr | the f...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...mote address, default is remote_addr | | first_forward | the f...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/url_rewrite.mdx

[grammar] ~6-~6: There might be a mistake here.
Context: ...ps to rewrite the URL. ## Configuration via ingress annotation ```yaml apiVersio...

(QB_NEW_EN)


[grammar] ~48-~48: There might be a mistake here.
Context: ...rget: /$3 ``` Example: client requests /prefix-x/abc; backend receives `/abc`.

(QB_NEW_EN)

docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx

[grammar] ~9-~9: There might be a mistake here.
Context: ..._cluster_plugin.mdx) ## Max Connections [max-worker-connections](https://kubernet...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...map/#max-worker-connections) ## Timeout [config timeout](https://kubernetes.githu...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ...sticky-sessions) ## Header Modification |action|link| |--|--| |set header in req...

(QB_NEW_EN)


[grammar] ~19-~19: There might be a mistake here.
Context: ...s) ## Header Modification |action|link| |--|--| |set header in request|[proxy-se...

(QB_NEW_EN)


[grammar] ~20-~20: There might be a mistake here.
Context: ...eader Modification |action|link| |--|--| |set header in request|[proxy-set-header...

(QB_NEW_EN)


[grammar] ~21-~21: There might be a mistake here.
Context: ...figuration/annotations/#custom-headers)| |remove header in request| set a empty h...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...onfigmap/#hide-headers)| ## URL Rewrite [rewrite](https://kubernetes.github.io/in...

(QB_NEW_EN)


[grammar] ~29-~29: There might be a mistake here.
Context: ...## HSTS (HTTP Strict Transport Security) [configure HSTS](https://kubernetes.github.io/ingr...

(QB_NEW_EN)


[uncategorized] ~32-~32: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ginx-configuration/configmap/#hsts) ## Rate Limiting [config rate limiting](https://kubernet...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~32-~32: There might be a mistake here.
Context: ...ation/configmap/#hsts) ## Rate Limiting [config rate limiting](https://kubernetes...

(QB_NEW_EN)


[grammar] ~35-~35: There might be a mistake here.
Context: ...tion/annotations/#rate-limiting) ## WAF [modsecurity](https://kubernetes.github.i...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...uthentication) ### TLS edge termination [backend protocol](https://kubernetes.git...

(QB_NEW_EN)

🔇 Additional comments (7)
docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (1)

156-156: No changes needed: chart–controller mapping validated

The script confirms that the Helm chart version 4.12.3 specifies appVersion: 1.12.3, matching controller tag controller-v1.12.3.

docs/en/configure/networking/how_to/alb/auth.mdx (1)

7-7: Heading change LGTM.

docs/en/configure/networking/how_to/alb/header_modification.mdx (1)

12-13: Ensure correct and consistent annotation domains across docs

The docs currently reference several annotation/label domains, which may not all be intended or supported:

  • Ingress‐level annotations:
    • alb.ingress.cpaas.io/* (e.g., rewrite-request, auth-enable, otel, session-affinity)
  • Rule‐level annotations:
    • alb.rule.cpaas.io/* (e.g., rewrite-response)
  • Generic ALB annotations (used for ingress-rule priority and Gateway API references):
    • alb.cpaas.io/*
  • Networking annotations (e.g., TLS certificates):
    • alb.networking.cpaas.io/*
  • Metadata labels in several how-to guides:
    • alb2.cpaas.io/* (e.g., frontend, name)

Please confirm against your CRD/API group definitions which domains are valid and which (such as alb2.cpaas.io) are legacy. Once the authoritative domains are identified, update and standardize all occurrences—particularly the annotation table in header_modification.mdx (Lines 12–13 and 52–58) and the metadata labels in configure_alb_rule.mdx, deploy_alb.mdx, and url_rewrite.mdx—to use the correct annotation/label domains.

docs/en/configure/networking/functions/configure_alb_rule.mdx (1)

21-25: Confirm consistent metadata label domains

We’ve identified that several docs use alb2.cpaas.io/* for metadata labels, while others (e.g. configure_gatewayapi_gateway_via_alb.mdx) use alb.cpaas.io/*. Please verify whether alb2.cpaas.io represents a deliberate new API group (v2) or is an unintended typo.

If it’s intentional, add a brief note in each affected file explaining that these examples target the v2 group and domain (alb2.cpaas.io). Otherwise, update the labels to use the existing alb.cpaas.io/* domain for consistency.

Affected files and lines:

  • docs/en/configure/networking/functions/configure_alb_rule.mdx: labels at lines 23–24
  • docs/en/configure/networking/how_to/alb/deploy_alb.mdx: label at line 175
  • docs/en/configure/networking/how_to/alb/url_rewrite.mdx: labels at lines 34–35
docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (1)

80-99: LGTM: console flow reads clearly.

UI steps and the internal-routing link look correct.

docs/en/configure/networking/concepts/gatewayapi.mdx (1)

11-14: Clarity/stability looks good.

“Listeners and routes … not translated” accurately reflects the new model.

docs/en/configure/networking/architecture/understanding_alb.mdx (1)

12-13: Architecture wording is clear and helpful.

Operator/instance split and DSL pipeline are well explained.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (5)
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

6-26: Remove NGINX-only example; ALB doesn’t support rewrite via ingress annotations

This snippet mixes NGINX annotations with ingressClassName: alb and is incorrect. Prefer the Rule CR approach and add a note.

Apply:

-## Configuration
-via ingress annotation
-```yaml
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
-  nginx.ingress.kubernetes.io/rewrite-target: /$2
-  name: demo
-spec:
-  ingressClassName: alb
-  rules:
-  - http:
-      paths:
-      - backend:
-          service:
-            name: frontend
-            port:
-              number: 8080
-        path: /(prefix-x)(/|$)(.*)
-        pathType: ImplementationSpecific
-```
+## Configuration
+> Note: ALB does not support URL rewrite via ingress annotations. Use the Rule CR method below.
docs/en/configure/networking/how_to/alb/header_modification.mdx (1)

17-29: Tighten Go field comments for clarity and consistency.

Rephrase to avoid “which values…” and prefer concise, parallel phrasing.

 type RewriteRequestConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // set header, which values are variable name 
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
-	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // add header, which values could be multiple and which values are variable name
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersVar    map[string]string   `json:"headers_var,omitempty"`     // Set header; values are variable names
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header (multiple values)
+	HeadersAddVar map[string][]string `json:"headers_add_var,omitempty"` // Add header (variable names, multiple values)
 }
 type RewriteResponseConfig struct {
-	Headers       map[string]string   `json:"headers,omitempty"`         // set header
-	HeadersRemove []string            `json:"headers_remove,omitempty"`  // remove header
-	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // add header, which values could be multiple
+	Headers       map[string]string   `json:"headers,omitempty"`         // Set header
+	HeadersRemove []string            `json:"headers_remove,omitempty"`  // Remove header
+	HeadersAdd    map[string][]string `json:"headers_add,omitempty"`     // Add header (multiple values)
 }
docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1)

52-63: Fix key paths and pluralization in Resource Configuration table (mismatches example YAML).

Table uses .resources.limit/request but the manifest uses .resources.limits/requests. This will mislead users.

-| `.spec.config.resources.limit` | k8s container-resource,optional |  limit of nginx container of alb |
-| `.spec.config.resources.request` | k8s container-resource,optional |  request of nginx container of alb |
-| `.spec.config.resources.alb.limit` | k8s container-resource,optional |  limit of alb container of alb |
-| `.spec.config.resources.alb.request` | k8s container-resource,optional | request of alb container of alb |
+| `.spec.config.resources.limits` | k8s container resources, optional | Limits for the nginx container. |
+| `.spec.config.resources.requests` | k8s container resources, optional | Requests for the nginx container. |
+| `.spec.config.resources.alb.limits` | k8s container resources, optional | Limits for the ALB container. |
+| `.spec.config.resources.alb.requests` | k8s container resources, optional | Requests for the ALB container. |
docs/en/configure/networking/functions/configure_alb_rule.mdx (2)

11-12: Unescape heading IDs so anchors work.

Backslashes prevent MDX from generating anchors; prior review requested this.

-### Quick demo of rule \{#alb_add_rule}
+### Quick demo of rule {#alb_add_rule}
-### backend protocol \{#backend_protocol}
+### backend protocol {#backend_protocol}
-### Service Group and Session Affinity Policy \{#service_group}
+### Service Group and Session Affinity Policy {#service_group}
-### Certificate in Rule \{#certificate_name}
+### Certificate in Rule {#certificate_name}
-## Ingress \{#alb_ingress}
+## Ingress {#alb_ingress}
-### ingress sync \{#alb_ingress_sync}
+### ingress sync {#alb_ingress_sync}
-#### ssl strategy \{#alb_ingress_ssl_strategy}
+#### ssl strategy {#alb_ingress_ssl_strategy}

Also applies to: 131-135, 172-174, 187-189, 203-213


169-170: Standardize annotation domain to alb.cpaas.io.

Prior review flagged alb.networking.cpaas.io/tls; standardize to alb.cpaas.io/tls.

-alb.networking.cpaas.io/tls: qq.com=cpaas-system/dex.tls,qq1.com=cpaas-system/dex1.tls
+alb.cpaas.io/tls: qq.com=cpaas-system/dex.tls,qq1.com=cpaas-system/dex1.tls
🧹 Nitpick comments (46)
docs/en/configure/networking/how_to/alb/auth.mdx (1)

152-152: Clarify support column for auth-type

Indicate “basic only” in support to avoid ambiguity.

Apply:

-| nginx.ingress.kubernetes.io/auth-type                                                                                                                  | -       | "basic" or "digest" | basic: supports apr1 **digest: not supported**                                             |
+| nginx.ingress.kubernetes.io/auth-type                                                                                                                  | v (basic only) | "basic"           | Digest is not supported. Basic supports apr1 only.                                         |
docs/en/configure/networking/how_to/alb/cors.mdx (2)

8-21: Clarify semantics and fix grammar in CRD descriptions

Improve readability and explicitly state behavior when disabled.

Apply:

-enableCORS:
-  description: enableCORS is the switch whether enable cross domain,
-    when EnableCORS is false, alb2 transports information to backend
-    servers which determine whether allow cross-domain
+enableCORS:
+  description: Toggles CORS handling at ALB. When false, ALB does not add CORS
+    headers; backend services decide whether to allow cross‑origin requests.
   type: boolean
-corsAllowHeaders:
-  description: corsAllowHeaders defines the headers allowed by cors
-    when enableCORS is true, multiple headers are separated by commas
+corsAllowHeaders:
+  description: Comma‑separated list of request headers allowed by CORS
+    (effective only when enableCORS is true).
   type: string
-corsAllowOrigin:
-  description: corsAllowOrigin defines the origin allowed by cors when
-    enableCORS is true, multiple origins are separated by commas
+corsAllowOrigin:
+  description: Comma‑separated list of allowed origins (effective only when
+    enableCORS is true).
   type: string

23-23: Add a brief example of Rule.spec usage

A tiny snippet helps users map fields to Rule.spec.

Apply:

-It can be configured on the rule `.spec`.
+It can be configured on the Rule `.spec`, for example:
+
+```yaml
+apiVersion: crd.alauda.io/v1
+kind: Rule
+metadata:
+  name: demo-cors
+spec:
+  enableCORS: true
+  corsAllowOrigin: https://app.example.com,https://admin.example.com
+  corsAllowHeaders: Authorization,Content-Type,X-Request-ID
+```
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

48-48: Tighten example phrasing

Minor polish.

Apply:

-Example: client requests `/prefix-x/abc`; backend receives `/abc`.
+Example: client requests `/prefix-x/abc`; backend receives `/abc`.

(No content change; optional to expand with another example like /prefix-x/.)

docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1)

21-23: Fix grammar in the table row

Use “an” and provide a hint for how to remove headers in requests.

Apply:

-|remove header in request| set a empty header in request |
+|remove header in request| set an empty header in request (e.g., `proxy_set_header X-Header "";`) |
docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (2)

24-24: Tighten long sentence and add period

Minor readability.

Apply:

-* Please confirm with the network engineer the IP address (public IP, private IP, VIP) or domain name of the ALB service before deployment. If you want to use a domain name as the address for external traffic to access the ALB, you need to apply for a domain name in advance and configure domain name resolution. It is recommended to use a commercial Load Balancer device to provide a VIP, if not, you can use the [Pure Software Data Center LB Solution (Alpha)](../soft_data_center_lb_solution.mdx)
+* Confirm with the network engineer the IP address (public, private, or VIP) or the domain name for the ALB before deployment. If using a domain name, apply and configure DNS in advance. We recommend a commercial load balancer to provide the VIP; if unavailable, see the [Pure Software Data Center LB Solution (Alpha)](../soft_data_center_lb_solution.mdx).

28-35: Avoid HTML lists inside table cells; simplify port guidance

Plain text renders more reliably across markdown engines.

Apply:

-    | **Port** | <ul><li>For global clusters, fill in: 11782.</li><li>For business clusters, fill in: 1936.</li></ul> |
+    | **Port** | 11782 (global clusters), 1936 (business clusters) |
docs/en/configure/networking/how_to/alb/header_modification.mdx (4)

10-16: Polish table heading and capitalization.

Use title case and add a space after the comma in the ingress annotations.

-### use annotations
-| target  | annotation key                         |
+### Use annotations
+| Target  | Annotation key                         |
 ...
-| ingress | `alb.ingress.cpaas.io/rewrite-request`,`alb.ingress.cpaas.io/rewrite-response` |
+| ingress | `alb.ingress.cpaas.io/rewrite-request`, `alb.ingress.cpaas.io/rewrite-response` |

39-41: Fix grammar in explanatory sentence.

-will add key `x-my-host` and value of request host header to request header.
-you can refer to the [nginx variable](http://nginx.org/en/docs/varindex.html) for the variable names.
+Adds the `x-my-host` header whose value is the request host.
+You can refer to the [NGINX variables](http://nginx.org/en/docs/varindex.html) for variable names.

44-48: Tighten descriptions and punctuation for built-in variables.

-| `first_forward_or_remote_addr` | the first forwarded address or the remote address, default is `remote_addr` |
-| `first_forward`                | the first forwarded address , default is empty string                       |
+| `first_forward_or_remote_addr` | First forwarded address or the remote address; defaults to `remote_addr`. |
+| `first_forward`                | First forwarded address; defaults to an empty string.                     |

49-59: Use title case for section heading.

-## examples
+## Examples
docs/en/configure/networking/how_to/alb/deploy_alb.mdx (6)

53-53: Grammar: capitalize and clarify sentence.

-resource related field describes the deployment configuration for the alb.
+Resource-related fields describe the deployment configuration for the ALB.

65-72: Clarify networking wording; tighten descriptions.

-#### Networking Configuration \{#alb_networking_configuration}
-Networking fields describe how to access the ALB. For example, in `host` mode, alb will use hostnetwork, and you can access the ALB via the node IP.
+#### Networking Configuration {#alb_networking_configuration}
+Networking fields describe how to access the ALB. For example, in `host` mode the ALB uses host networking (`hostNetwork: true`) and you can access it via the node IP.
 ...
-| `.spec.address` | string,required | you could manually specify the address of alb |
+| `.spec.address` | string, required | Manually specify the ALB address. |
-| `.spec.config.vip.enableLbSvc` | bool, optional | Automatically true in `container` mode. |
+| `.spec.config.vip.enableLbSvc` | bool, optional | Automatically set to true in `container` mode. |

74-80: Add descriptions for project configuration fields.

-#### project configuration
-| Field | Type | 
-|-------|------|
-| `.spec.config.projects` | []string,required |
-| `.spec.config.portProjects` | string,optional |
-| `.spec.config.enablePortProject` | bool,optional |
+#### Project configuration
+| Field | Type | Description |
+|-------|------|-------------|
+| `.spec.config.projects` | []string, required | Projects allowed to use this ALB. |
+| `.spec.config.portProjects` | string, optional | Project name to bind for port-based isolation. |
+| `.spec.config.enablePortProject` | bool, optional | Enable port-project isolation mode. |

165-165: Article usage: “an ALB,” not “a ALB.”

-Create a ALB first.
+Create an ALB first.

195-201: Fix grammar in callouts for Frontend section.

-3. port: which port which listen on.
-4. protocol: what protocol this port uses.
+3. port: The port to listen on.
+4. protocol: The protocol used by this port.
 ...
-   - When selecting the gRPC protocol, the backend protocol defaults to gRPC, which does not support session persistence.If a certificate is set for the gRPC protocol, the load balancer will unload the gRPC certificate and forward the unencrypted gRPC traffic to the backend service.
+   - For gRPC, the backend protocol defaults to gRPC, which does not support session persistence. If a certificate is set for gRPC, the load balancer will terminate TLS and forward plain gRPC traffic to the backend.

225-229: Nit: “web UI” and add period.

-Each input item on the webui corresponds to a field of the CR
+Each input item on the web UI corresponds to a field of the CR.
docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (4)

6-10: Grammar and flow improvements in intro.

-The Alauda Container Platform supports multiple ingress traffic specifications in Kubernetes ecosystem.
-This document compares them ([Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx)) to help users make the right choice.
+The Alauda Container Platform supports multiple ingress traffic specifications in the Kubernetes ecosystem.
+This document compares [Service](../functions/configure_service.mdx), [Ingress](../functions/configure_ingress.mdx), [Gateway API](./gatewayapi.mdx), and [ALB Rule](../functions/configure_alb_rule.mdx) to help you choose the right option.

22-24: Subject–verb agreement and consistency.

-Ingress is the standard specification adopted by the Kubernetes community and are recommended for default use.
-The Ingress is handled by ALB instances that are managed by the platform administrator.
+Ingress is the standard specification adopted by the Kubernetes community and is recommended for default use.
+Ingress is handled by ALB instances managed by the platform administrator.

27-30: Clarify GatewayAPI phrasing and plurality.

-GatewayAPI provides more flexible isolation mode, however they are not as mature as Ingress.
-By using GatewayAPI developer can create their own isolated ALB instances to handle GatewayAPI rules.
-Therefore, if you need to delegate the creation and management of ALB instances to developers, you need to choose to use GatewayAPI.
+GatewayAPI provides a more flexible isolation model; however, it is not as mature as Ingress.
+With GatewayAPI, developers can create isolated ALB instances to handle GatewayAPI rules.
+Choose GatewayAPI when you need to delegate creation and management of ALB instances to developers.

33-35: Minor wording polish and spacing.

-ALB Rule(Load Balancer in the UI) provides the most flexible traffic match rules and the most capabilities. In fact, both Ingress and GatewayAPI are implemented by translating them to ALB Rules.
-However, the ALB Rule is more complex than Ingress and GatewayAPI and is not a community-standard API. Therefore, we recommend using it only when Ingress and GatewayAPI don't meet your needs.
+ALB Rule (Load Balancer in the UI) provides the most flexible traffic-matching rules and capabilities. In fact, both Ingress and GatewayAPI are implemented by translating them to ALB Rules.
+However, ALB Rule is more complex than Ingress and GatewayAPI and is not a community-standard API. Use it only when Ingress or GatewayAPI does not meet your needs.
docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (6)

6-6: Consistent naming: use “GatewayAPI”.

-# Configure GatewayApi Gateway via ALB
+# Configure GatewayAPI Gateway via ALB

24-24: Consistent resource name casing: “ALB2”.

-## Example Gateway and Alb2 custom resource (CR)
+## Example Gateway and ALB2 custom resource (CR)

80-100: “by using” → “using”; minor style fixes.

-## Creating Gateway by using the web console
+## Creating a Gateway using the web console
...
-5. Click **Create**.
+5. Click **Create**.

147-166: Consistent heading/title case for update section.

-## Updating Gateways
+## Updating Gateways
-## Updating Gateway by using the web console
+## Updating a Gateway using the web console

167-177: Add articles and tighten bullets.

-## Add Listener
+## Add a Listener
...
-- If you need to monitor HTTP protocol, please contact the administrator in advance to prepare the **domain name**.
-- If you need to monitor HTTPS protocol, please contact the administrator in advance to prepare the **domain name** and **certificate**.
+- For HTTP, prepare a domain name in advance.
+- For HTTPS, prepare a domain name and certificate in advance.

281-305: Heading polish and minor consistency.

-## Creating Route by using the web console
+## Creating a Route using the web console
...
-## Creating Route by using the CLI
+## Creating a Route using the CLI
docs/en/configure/networking/concepts/gatewayapi.mdx (2)

6-9: Intro grammar and image lead-in.

-[GatewayAPI](https://gateway-api.sigs.k8s.io/) is an official Kubernetes project focused on L4 and L7 routing in Kubernetes. This project represents the next generation of Kubernetes Ingress, Load Balancing, and Service Mesh APIs. From the outset, it has been designed to be generic, expressive, and role-oriented.
+[GatewayAPI](https://gateway-api.sigs.k8s.io/) is an official Kubernetes project focused on L4 and L7 routing in the Kubernetes ecosystem. It represents the next generation of Kubernetes Ingress, Load Balancing, and Service Mesh APIs. From the outset, it has been designed to be generic, expressive, and role‑oriented.
 ...
-The overall resource model focuses on 3 separate personas and corresponding resources that they are expected to manage:
+The overall resource model focuses on three personas and the resources they manage:

12-14: Minor polish in “Via ALB” section.

-ALB supports GatewayAPI. Each Gateway resource maps to an ALB resource.
-Listeners and routes are handled directly by ALB; they are not translated into `Frontend` or `Rule`.
+ALB supports GatewayAPI: each Gateway maps to an ALB resource.
+Listeners and routes are handled directly by ALB (not translated into `Frontend` or `Rule`).
docs/en/configure/networking/architecture/understanding_alb.mdx (7)

12-13: Tighten component definitions; clarify “tenants”.

  • “tenants” is ambiguous (projects/namespaces/accounts?). Clarify the scope the Operator partitions by.
  • Minor wording tweak to emphasize CRD watch → reconcile flow.

Apply:

- **ALB Operator**: An operator that manages the lifecycle of ALB instances. It watches ALB CRs and creates/updates instances for different tenants.
+ **ALB Operator**: Manages the lifecycle of ALB instances. It watches ALB CRs and reconciles create/update operations for the targeted projects/namespaces (clarify your tenancy model).

21-25: Helm install: pin chart version and namespace; add CRDs note.

For reproducibility and least surprise, pin a version, set/install a namespace, and note CRDs install behavior.

-helm install alb-operator alb/alauda-alb2
+kubectl create ns alb-system --dry-run=client -o yaml | kubectl apply -f -
+# Pin to a known-good chart version; adjust as needed.
+helm install alb-operator alb/alauda-alb2 \
+  --namespace alb-system \
+  --version <X.Y.Z>
+# If CRDs are not bundled, add a note or a pre-step to install them.

Please verify the chart name/repo and the minimal supported version for this doc.


29-46: ALB2 example: tighten wording and defaults; hint at address meaning.

  • Comment “the ip address of node where alb been deployed” is unclear. Specify “Node IP hosting the ALB Pod” (hostNetwork) or “VIP” depending on your mode.
  • Consider showing ingressClassName emitted by this ALB (if relevant) to tie with the demo below.
-    address: "172.20.0.5"  # the ip address of node where alb been deployed
+    address: "172.20.0.5"  # Node IP hosting the ALB Pod (host network) or the ALB VIP, depending on your deployment mode

106-106: Define “ip” in curl; align with exposure method.

Readers won’t know which IP to use (Node IP, VIP, LB address). Spell it out.

-Now you can access the app via `curl http://${ip}`
+Now you can access the app via `curl http://<ALB address>` (for example, the Node IP when using hostNetwork, or the ALB VIP/LoadBalancer IP).

124-134: Mermaid flow: route via Service, not directly to Pod.

ALB routes to a Service (or Endpoints), not “via ingress” to a specific Pod.

-    ALB -->|route to pod via ingress| SvcAPod1
+    ALB -->|route via Service| Svc-A

166-176: Naming consistency: “ALB Operator”, “Rule”, “Frontend (FT)”, “ALB Leader”.

Standardize section titles and terms (hyphenation and capitalization vary: “ALB-Operator/ALB Operator”, “RULE/Rule”, “ALB-Leader/ALB Leader”, “Frontend/FT”).

-### ALB-Operator
+### ALB Operator
...
-### RULE
+### Rule
...
-FT could be created by ALB-Leader or user manually.
+FT can be created by the ALB Leader or manually by users.
...
-### ALB Leader
+### ALB Leader

Also applies to: 181-189, 193-203


158-159: IngressClass note: add a one-liner example.

A quick example helps users.

-When you create an Ingress, you can use `.spec.ingressClassName` field to indicate which Ingress controller should handle this Ingress.
+When you create an Ingress, set `.spec.ingressClassName: <alb-name>` to route it through this ALB.
docs/en/configure/networking/functions/configure_alb_rule.mdx (5)

15-16: Grammar and casing: labels and resources.

-rule must be attached to a frontend and alb via label.
+A Rule must be attached to a Frontend and the target ALB via labels.

119-128: Table link labels: minor consistency tweaks.

Hyphen/case consistency improves scanability.

-| [header modification](../how_to/alb/header_modification.mdx)
+| [Header modification](../how_to/alb/header_modification.mdx)
-| [url-rewrite](../how_to/alb/url_rewrite.mdx)
+| [URL rewrite](../how_to/alb/url_rewrite.mdx)
-| [waf](../how_to/alb/modsecurity.mdx)
+| [WAF](../how_to/alb/modsecurity.mdx)
-| [otel](../how_to/alb/otel.mdx)
+| [OTEL](../how_to/alb/otel.mdx)

152-153: “webui” → “web UI”; add period.

-Each input item on the webui corresponds to a field of the CR
+Each input item on the web UI corresponds to a field of the CR.

160-166: HTTPS section: title/casing and FT wording.

-## Https
+## HTTPS
-If the frontend protocol (ft) is HTTPS or GRPCS, the rule can also be configured to use HTTPS.
+If the frontend protocol (FT) is HTTPS or GRPCS, the Rule can also be configured to use HTTPS.
...
-1. create ft use https protocol
-2. create rule with backend protocol http, and specify cert via `.spec.certificate_name`
+1. Create the FT using the HTTPS protocol.
+2. Create a Rule with backend protocol HTTP, and specify the certificate via `.spec.certificate_name`.
...
-1. create ft use https protocol
-2. create rule with backend protocol https, and specify cert via `.spec.certificate_name`
+1. Create the FT using the HTTPS protocol.
+2. Create a Rule with backend protocol HTTPS, and specify the certificate via `.spec.certificate_name`.

Also applies to: 176-186


187-195: Ingress sync wording: capitalization and clarity.

-### ingress sync {#alb_ingress_sync}
+### Ingress sync {#alb_ingress_sync}
-Each ALB creates an IngressClass with the same name and handles ingresses within the same project. 
+Each ALB creates an IngressClass with the same name and handles ingresses within the same project.
docs/en/configure/networking/functions/configure_ingress.mdx (5)

18-24: Flow description: minor clarity tweak.

Consider emphasizing reconcile loop vs request path to reduce ambiguity.

-Ingress rules depend on the implementation of the Ingress Controller, which is responsible for listening to changes in Ingress and Service. After a new Ingress is created, when the Ingress Controller receives a request, it matches the forwarding rule from the Ingress and distributes the traffic to the specified internal routes, as shown in the diagram below.
+Ingress behavior depends on the selected Ingress Controller, which watches Ingress/Service changes and programs forwarding rules. When a request arrives, the controller’s data plane matches the rule from the Ingress and routes traffic to the configured Service, as shown below.

25-26: Prereq links: grammar/casing.

-- [install ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
-- [install alb as ingress-controller](../how_to/alb/deploy_alb.mdx)
+- [Install ingress-nginx as an Ingress controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx)
+- [Install ALB as an Ingress controller](../how_to/alb/deploy_alb.mdx)

55-58: Callout 2: clarify controller selection via ingressClassName.

-2. `nginx` to using `ingress-nginx` controller, `$alb_name` to use alb as ingress controller.
+2. Set `ingressClassName: nginx` to use the ingress-nginx controller, or set `ingressClassName: $alb_name` to use ALB.

61-61: Article usage: “an Ingress”, not “a Ingress”.

-## Creating a Ingress by using the web console
+## Creating an Ingress by using the web console
...
-## Creating a Ingress by using the CLI
+## Creating an Ingress by using the CLI

Also applies to: 82-82


39-41: Optional: show ALB variant of the example.

A second snippet swapping ingressClassName: $alb_name helps users map between controllers.

I can add a compact “ALB variant” block if you want parity here.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between c30e36d and 0cf02a8.

⛔ Files ignored due to path filters (4)
  • docs/en/configure/networking/assets/create_alb_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_ft_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/create_rule_via_web.png is excluded by !**/*.png
  • docs/en/configure/networking/assets/gatewayapi-architecture.png is excluded by !**/*.png
📒 Files selected for processing (26)
  • docs/en/configure/networking/architecture/understanding_alb.mdx (3 hunks)
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx (7 hunks)
  • docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/concepts/gatewayapi.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_alb_rule.mdx (1 hunks)
  • docs/en/configure/networking/functions/configure_ingress.mdx (3 hunks)
  • docs/en/configure/networking/how_to/alb/auth.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/cors.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/decision_making_for_performance_selection_of_alb.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/header_modification.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/index.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx (2 hunks)
  • docs/en/configure/networking/how_to/alb/otel.mdx (4 hunks)
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx (1 hunks)
  • docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1 hunks)
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx (0 hunks)
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx (0 hunks)
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx (0 hunks)
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx (2 hunks)
  • docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1 hunks)
💤 Files with no reviewable changes (3)
  • docs/en/configure/networking/how_to/create_loadbalancer.mdx
  • docs/en/configure/networking/how_to/deploy_high_available_vip_for_alb.mdx
  • docs/en/configure/networking/how_to/create_gatewayapi_gateway.mdx
✅ Files skipped from review due to trivial changes (4)
  • docs/en/configure/networking/how_to/alb/http_redirect.mdx
  • docs/en/configure/networking/how_to/alb/forwarding_ipv6_traffic_to_ipv4_addresses_within_the_cluster_via_alb.mdx
  • docs/en/configure/networking/how_to/alb/load_balancing_session_affinity_policy_in_alb.mdx
  • docs/en/configure/networking/how_to/alb/tcp_http_keepalive.mdx
🚧 Files skipped from review as they are similar to previous changes (6)
  • docs/en/configure/networking/how_to/alb/l4_l7_timeout.mdx
  • docs/en/configure/networking/concepts/alb_with_ingress_nginx_annotation_compatibility.mdx
  • docs/en/configure/networking/how_to/alb/index.mdx
  • docs/en/configure/networking/how_to/alb/decision_making_for_performance_selection_of_alb.mdx
  • docs/en/configure/networking/how_to/alb/otel.mdx
  • docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx
🧰 Additional context used
🪛 LanguageTool
docs/en/configure/networking/functions/configure_ingress.mdx

[grammar] ~24-~24: There might be a mistake here.
Context: ... add the 80 and 443 listening ports. ::: - [install ingress-nginx as ingress-control...

(QB_NEW_EN)


[grammar] ~25-~25: There might be a mistake here.
Context: ...tall ingress-nginx as ingress-controller](../how_to/install_ingress_nginx_via_cluster_plugin.mdx) - [install alb as ingress-controller](../ho...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...dx) - install alb as ingress-controller ## Example Ingress: ```yaml # nginx-ingres...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ...inxcontroller,$alb_name` to use alb as ingress controller. 3. If you only want...

(QB_NEW_EN)


[grammar] ~57-~57: There might be a mistake here.
Context: ..._name` to use alb as ingress controller. 3. If you only want to run ingress locally,...

(QB_NEW_EN)

docs/en/configure/networking/concepts/comparison_among_service_ingress_gatewayapi_and_alb_rule.mdx

[grammar] ~8-~8: There might be a mistake here.
Context: ...multiple ingress traffic specifications in Kubernetes ecosystem. This document com...

(QB_NEW_EN)


[grammar] ~8-~8: There might be a mistake here.
Context: ... specifications in Kubernetes ecosystem. This document compares them ([Service](....

(QB_NEW_EN)

docs/en/configure/networking/concepts/gatewayapi.mdx

[grammar] ~12-~12: There might be a mistake here.
Context: ...ateway resource maps to an ALB resource. Listeners and routes are handled directl...

(QB_NEW_EN)

docs/en/configure/networking/functions/configure_alb_rule.mdx

[grammar] ~1-~1: There might be a mistake here.
Context: # Configure ALB Rules ## Introduction ### What is a Rule? Rule i...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ... must be attached to a frontend and alb via label. ::: ```yaml apiVersion: crd.ala...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ...ttached to a frontend and alb via label. ::: ```yaml apiVersion: crd.alauda.io/v...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...e Frontend to which this rule belongs. 2. Required, indicate the ALB to which this...

(QB_NEW_EN)


[grammar] ~58-~58: There might be a mistake here.
Context: ... used to describe the matching criteria. For example, the rule below matches a re...

(QB_NEW_EN)


[grammar] ~116-~116: There might be a mistake here.
Context: ...rity` using an integer value. ## Action After a request matches a rule, you can ...

(QB_NEW_EN)


[grammar] ~121-~121: There might be a mistake here.
Context: ...meout](../how_to/alb/l4_l7_timeout.mdx)| | Redirect | Redirects incoming ...

(QB_NEW_EN)


[grammar] ~122-~122: There might be a mistake here.
Context: ...irect](../how_to/alb/http_redirect.mdx)| | CORS | Enables Cross-Origi...

(QB_NEW_EN)


[grammar] ~123-~123: There might be a mistake here.
Context: ... |cors| | Header Modification | Allows modifi...

(QB_NEW_EN)


[grammar] ~124-~124: There might be a mistake here.
Context: ...(../how_to/alb/header_modification.mdx)| | URL Rewrite | Rewrites the URL of...

(QB_NEW_EN)


[grammar] ~125-~125: There might be a mistake here.
Context: ...rewrite](../how_to/alb/url_rewrite.mdx)| | WAF | Integrates Web Appl...

(QB_NEW_EN)


[grammar] ~126-~126: There might be a mistake here.
Context: ... |waf| | OTEL | Enables OpenTelemet...

(QB_NEW_EN)


[grammar] ~127-~127: There might be a mistake here.
Context: ...g. |otel| | Keepalive | Enables or disable...

(QB_NEW_EN)


[grammar] ~131-~131: There might be a mistake here.
Context: ...## backend protocol {#backend_protocol} By default, the backend protocol is set ...

(QB_NEW_EN)


[grammar] ~134-~134: There might be a mistake here.
Context: ...ession Affinity Policy {#service_group} You can configure one or more services w...

(QB_NEW_EN)


[grammar] ~141-~141: There might be a mistake here.
Context: ...ty_policy_in_alb.mdx). ## Creating Rule ### Using web console ![](../assets/create_r...

(QB_NEW_EN)


[style] ~147-~147: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the load balancer. 4. Click on the name of the listener port. 5. Cl...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~148-~148: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ck on the name of the listener port. 5. Click Add Rule. 6. Refer to the following...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[grammar] ~152-~152: Ensure spelling is correct
Context: ... Click Add. Each input item on the webui corresponds to a field of the CR ### u...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: Ensure spelling is correct
Context: ... the frontend protocol (ft) is HTTPS or GRPCS, the rule can also be configured to use...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~161-~161: There might be a mistake here.
Context: ...ule can also be configured to use HTTPS. You can specify the certificate either i...

(QB_NEW_EN)


[grammar] ~166-~166: There might be a mistake here.
Context: .... ### Certificate Annotation in Ingress Certificates can be referenced across na...

(QB_NEW_EN)


[grammar] ~172-~172: There might be a mistake here.
Context: ...Certificate in Rule {#certificate_name} In .spec.certificate_name, the format ...

(QB_NEW_EN)


[grammar] ~175-~175: There might be a mistake here.
Context: ...et_namespace/$secret_name` ### TLS Mode #### Edge Mode In edge mode, the client commu...

(QB_NEW_EN)


[grammar] ~176-~176: There might be a mistake here.
Context: ...ecret_name` ### TLS Mode #### Edge Mode In edge mode, the client communicates wi...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~177-~177: There might be a mistake here.
Context: ...th backend services using HTTP protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...his: 1. create ft use https protocol 2. create rule with backend protocol http, and sp...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol http, and specify cert...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...te rule with backend protocol http, and specify cert via .spec.certificate_name #### ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... communicates with the ALB using HTTPS, and ALB communicates with backend services ...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ... ALB communicates with backend services using HTTPS protocol. To achieve this: 1. cre...

(QB_NEW_EN)


[grammar] ~182-~182: There might be a mistake here.
Context: ...h backend services using HTTPS protocol. To achieve this: 1. create ft use https ...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...te ft use https protocol 2. create rule with backend protocol https, and specify cer...

(QB_NEW_EN)


[grammar] ~185-~185: There might be a mistake here.
Context: ...e rule with backend protocol https, and specify cert via .spec.certificate_name ## I...

(QB_NEW_EN)


[grammar] ~188-~188: There might be a mistake here.
Context: ...s} ### ingress sync {#alb_ingress_sync} Each ALB creates an IngressClass with th...

(QB_NEW_EN)


[grammar] ~200-~200: There might be a mistake here.
Context: ....source.namespace` is ingress namespace. ::: #### ssl strategy {#alb_ingress_ss...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...sl strategy {#alb_ingress_ssl_strategy} For ingresses that do not have certifica...

(QB_NEW_EN)


[grammar] ~206-~206: There might be a mistake here.
Context: ...om resource with the following settings: - .spec.config.defaultSSLStrategy: Defines the SSL strategy for ingresses...

(QB_NEW_EN)


[grammar] ~210-~210: There might be a mistake here.
Context: ...$secret_name` Available SSL strategies: - Never: Do not create rules on HTTPS po...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/auth.mdx

[style] ~134-~134: This phrase is redundant. Consider writing “details”.
Context: ... series of annotations to configure the specific details of the authentication process. Below is...

(SPECIFIC_DETAILS)

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx

[grammar] ~6-~6: Ensure spelling is correct
Context: ...52c10984d03564c0cdec45 --- # Configure GatewayApi Gateway via ALB An inbound gateway (Ga...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/en/configure/networking/how_to/alb/cors.mdx

[grammar] ~3-~3: There might be a mistake here.
Context: # CORS ## Basic Concepts [CORS](https://developer.mozilla.org/en-U...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_alb.mdx

[grammar] ~7-~7: There might be a mistake here.
Context: ...70cb27c0597def5 --- # Deploy ALB ## ALB ALB is a custom resource that represents a ...

(QB_NEW_EN)


[grammar] ~52-~52: There might be a mistake here.
Context: ...e: nginx ``` #### Resource Configuration resource related field describes the deployment ...

(QB_NEW_EN)


[grammar] ~53-~53: There might be a mistake here.
Context: ...he deployment configuration for the alb. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~66-~66: There might be a mistake here.
Context: ... you can access the ALB via the node IP. | Field | Type | Description | |-------|...

(QB_NEW_EN)


[grammar] ~69-~69: There might be a mistake here.
Context: ...d uses its address as the ALB address. | | .spec.address | string,required | yo...

(QB_NEW_EN)


[grammar] ~70-~70: There might be a mistake here.
Context: ...ld manually specify the address of alb | | .spec.config.vip.enableLbSvc | bool,...

(QB_NEW_EN)


[grammar] ~74-~74: There might be a mistake here.
Context: ...r Service. | #### project configuration | Field | Type | |-------|------| | `.s...

(QB_NEW_EN)


[grammar] ~75-~75: There might be a mistake here.
Context: ... project configuration | Field | Type | |-------|------| | `.spec.config.project...

(QB_NEW_EN)


[grammar] ~76-~76: There might be a mistake here.
Context: ...ation | Field | Type | |-------|------| | .spec.config.projects | []string,req...

(QB_NEW_EN)


[grammar] ~77-~77: There might be a mistake here.
Context: ...c.config.projects| []string,required | |.spec.config.portProjects` | string,o...

(QB_NEW_EN)


[grammar] ~78-~78: There might be a mistake here.
Context: ...config.portProjects| string,optional | |.spec.config.enablePortProject` | boo...

(QB_NEW_EN)


[grammar] ~82-~82: There might be a mistake here.
Context: ...project can find and configure this ALB. 2. This ALB will handle ingress resources b...

(QB_NEW_EN)


[grammar] ~90-~90: There might be a mistake here.
Context: ...obal config which can be tweaked in alb cr. - bind-nic - [ingr...

(QB_NEW_EN)


[grammar] ~91-~91: There might be a mistake here.
Context: ...ch can be tweaked in alb cr. - bind-nic - [ingress-sync](../../functions/configure_...

(QB_NEW_EN)


[grammar] ~105-~105: There might be a mistake here.
Context: ...eld of the CR: |Parameter| Description| |--|--| |Assigned Address| `.spec.addres...

(QB_NEW_EN)


[grammar] ~106-~106: There might be a mistake here.
Context: ...he CR: |Parameter| Description| |--|--| |Assigned Address| .spec.address| |All...

(QB_NEW_EN)


[grammar] ~107-~107: There might be a mistake here.
Context: ...|--| |Assigned Address| .spec.address| |Allocated By| Instance means project ...

(QB_NEW_EN)


[grammar] ~136-~136: There might be a mistake here.
Context: ...tate. 5. Click Update. #### Delete ##### Using the web console :::note After del...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ... (tcp|udp). In L4 Proxy use frontend to configure backend service directly. In L7 Proxy u...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ...d to configure backend service directly. In L7 Proxy use frontend to configure li...

(QB_NEW_EN)


[grammar] ~160-~160: There might be a mistake here.
Context: ..._rule.mdx) to configure backend service. If you need to add an HTTPS listener por...

(QB_NEW_EN)


[grammar] ~164-~164: There might be a mistake here.
Context: ...adings-in-section */} ### Prerequisites Create a ALB first. ### Configure Front...

(QB_NEW_EN)


[grammar] ~195-~195: There might be a mistake here.
Context: ...ntend name: Format as $alb_name-$port. 3. port: which port which listen on. 4. pro...

(QB_NEW_EN)


[grammar] ~196-~196: There might be a mistake here.
Context: ...t`. 3. port: which port which listen on. 4. protocol: what protocol this port uses. ...

(QB_NEW_EN)


[grammar] ~203-~203: There might be a mistake here.
Context: ...ed, Format as $secret_ns/$secret_name. 6. backendProtocol: what protocol the backe...

(QB_NEW_EN)


[grammar] ~207-~207: There might be a mistake here.
Context: ...alls back to the default serviceGroup. 8. [session_affinity_policy](./load_balancin...

(QB_NEW_EN)


[grammar] ~214-~214: There might be a mistake here.
Context: ... ### Operation On Frontend #### Creating ##### using the web console ![](../../assets/c...

(QB_NEW_EN)


[grammar] ~225-~225: Ensure spelling is correct
Context: ...k Add Port. Each input item on the webui corresponds to a field of the CR |Param...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~226-~226: There might be a mistake here.
Context: ... field of the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serv...

(QB_NEW_EN)


[grammar] ~227-~227: There might be a mistake here.
Context: ...the CR |Parameter|Description| |---|---| |Session Affinity| `.spec.serviceGroup.s...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx

[grammar] ~17-~17: There might be a mistake here.
Context: ...guration). | Annotation | Description | |---|---| | `metallb.universe.tf/loadBal...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ... | Annotation | Description | |---|---| | metallb.universe.tf/loadBalancerIPs ...

(QB_NEW_EN)


[grammar] ~22-~22: There might be a mistake here.
Context: ... pool to allocate from. | ## Method 2: Use external ALB device to provide VIP * P...

(QB_NEW_EN)


[grammar] ~26-~26: There might be a mistake here.
Context: ...the ports in use to reduce the downtime of ALB upgrade. The health check configura...

(QB_NEW_EN)


[grammar] ~31-~31: There might be a mistake here.
Context: ...h check, it is recommended to use TCP. | | Response Timeout | The time requir...

(QB_NEW_EN)


[grammar] ~32-~32: There might be a mistake here.
Context: ...ommended to configure it to 2 seconds. | | Check Interval | The time interval...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/header_modification.mdx

[grammar] ~10-~10: There might be a mistake here.
Context: ...annotation key | |---------|-----------------------------...

(QB_NEW_EN)


[grammar] ~11-~11: There might be a mistake here.
Context: ...---------------------------------------| | ingress | `alb.ingress.cpaas.io/rewrit...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...alb.ingress.cpaas.io/rewrite-response| | rule |alb.rule.cpaas.io/rewrite-r...

(QB_NEW_EN)


[grammar] ~30-~30: There might be a mistake here.
Context: ... value is the ALB context variable name. For example, add the following annotatio...

(QB_NEW_EN)


[grammar] ~44-~44: There might be a mistake here.
Context: ... | |--------------------------------|------...

(QB_NEW_EN)


[grammar] ~45-~45: There might be a mistake here.
Context: ...---------------------------------------| | first_forward_or_remote_addr | the f...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...mote address, default is remote_addr | | first_forward | the f...

(QB_NEW_EN)

docs/en/configure/networking/how_to/alb/url_rewrite.mdx

[grammar] ~6-~6: There might be a mistake here.
Context: ...ps to rewrite the URL. ## Configuration via ingress annotation ```yaml apiVersio...

(QB_NEW_EN)


[grammar] ~48-~48: There might be a mistake here.
Context: ...rget: /$3 ``` Example: client requests /prefix-x/abc; backend receives `/abc`.

(QB_NEW_EN)

docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx

[grammar] ~9-~9: There might be a mistake here.
Context: ..._cluster_plugin.mdx) ## Max Connections [max-worker-connections](https://kubernet...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...map/#max-worker-connections) ## Timeout [config timeout](https://kubernetes.githu...

(QB_NEW_EN)


[grammar] ~18-~18: There might be a mistake here.
Context: ...sticky-sessions) ## Header Modification |action|link| |--|--| |set header in req...

(QB_NEW_EN)


[grammar] ~19-~19: There might be a mistake here.
Context: ...s) ## Header Modification |action|link| |--|--| |set header in request|[proxy-se...

(QB_NEW_EN)


[grammar] ~20-~20: There might be a mistake here.
Context: ...eader Modification |action|link| |--|--| |set header in request|[proxy-set-header...

(QB_NEW_EN)


[grammar] ~21-~21: There might be a mistake here.
Context: ...figuration/annotations/#custom-headers)| |remove header in request| set a empty h...

(QB_NEW_EN)


[grammar] ~29-~29: There might be a mistake here.
Context: ...## HSTS (HTTP Strict Transport Security) [configure HSTS](https://kubernetes.github.io/ingr...

(QB_NEW_EN)


[uncategorized] ~32-~32: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ginx-configuration/configmap/#hsts) ## Rate Limiting [config rate limiting](https://kubernet...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[grammar] ~32-~32: There might be a mistake here.
Context: ...ation/configmap/#hsts) ## Rate Limiting [config rate limiting](https://kubernetes...

(QB_NEW_EN)


[grammar] ~35-~35: There might be a mistake here.
Context: ...tion/annotations/#rate-limiting) ## WAF [modsecurity](https://kubernetes.github.i...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...uthentication) ### TLS edge termination [backend protocol](https://kubernetes.git...

(QB_NEW_EN)

🔇 Additional comments (10)
docs/en/configure/networking/how_to/alb/auth.mdx (2)

7-7: Consistent heading style confirmed

Pluralizing “Basic Concepts” aligns with other ALB how‑to pages.


134-134: Tighten wording and confirm link path

  • File: docs/en/configure/networking/how_to/alb/auth.mdx (line 134)
  • Verified that ../install_ingress_nginx_via_cluster_plugin.mdx resolves to docs/en/configure/networking/how_to/install_ingress_nginx_via_cluster_plugin.mdx
-[Ingress-nginx](../install_ingress_nginx_via_cluster_plugin.mdx) defines a series of annotations to configure the specific details of the authentication process. Below is a list of annotations that ALB supports, where "v" indicates support and "x" indicates no support.
+[Ingress-nginx](../install_ingress_nginx_via_cluster_plugin.mdx) defines a series of annotations to configure the details of the authentication process. Below is a list of annotations that ALB supports, where "v" indicates support and "x" indicates no support.
docs/en/configure/networking/how_to/alb/url_rewrite.mdx (1)

39-46: Regex and capture usage looks correct

rewrite_target: /$3 matches ^/(prefix-x)(/|$)(.*). Good.

docs/en/configure/networking/how_to/tasks_for_ingress_nginx.mdx (1)

7-7: Link path verified
The file install_ingress_nginx_via_cluster_plugin.mdx exists alongside tasks_for_ingress_nginx.mdx in docs/en/configure/networking/how_to/, so the relative link (./install_ingress_nginx_via_cluster_plugin.mdx) is correct.

docs/en/configure/networking/how_to/alb/deploy_high_available_vip_for_alb.mdx (2)

24-24: Link target validated
The file soft_data_center_lb_solution.mdx exists at docs/en/configure/networking/how_to/soft_data_center_lb_solution.mdx, so the relative link ../soft_data_center_lb_solution.mdx in deploy_high_available_vip_for_alb.mdx is correct. No changes needed.


15-16: Anchor Verified in deploy_alb.mdx

The anchor {#alb_networking_configuration} is present at line 65 of docs/en/configure/networking/how_to/alb/deploy_alb.mdx, so the cross-file link is valid.

• File: docs/en/configure/networking/how_to/alb/deploy_alb.mdx
• Line 65: #### Networking Configuration {#alb_networking_configuration}

No further action required.

docs/en/configure/networking/how_to/alb/configure_gatewayapi_gateway_via_alb.mdx (1)

28-39: Version check: Gateway API GA vs beta.

Confirm gateway.networking.k8s.io/v1beta1 is required for your supported Kubernetes versions; consider v1 where available.

Would you like a quick matrix added to the doc listing supported Kubernetes versions and the corresponding Gateway API versions?

docs/en/configure/networking/architecture/understanding_alb.mdx (1)

88-103: Add ingressClassName to the demo Ingress

The Ingress example in docs/en/configure/networking/architecture/understanding_alb.mdx (around lines 88–103) currently omits the ingressClassName field. Without it, this demo could be claimed by a different controller or none at all. Please update the snippet and confirm the actual ALB IngressClass name before merging.

• File: docs/en/configure/networking/architecture/understanding_alb.mdx
• Location: lines 88–103

Suggested diff:

 spec:
+  ingressClassName: alb-demo   # ← replace 'alb-demo' with the real IngressClass name
   rules:
docs/en/configure/networking/functions/configure_alb_rule.mdx (2)

23-25: Verify label domains/keys (“alb2.cpaas.io”).

You use labels with alb2.cpaas.io/* here and annotations with alb.cpaas.io/* below. If intentional (v2-specific labels), add a short note; otherwise standardize.

I can help propose a repo-wide normalization once you confirm the canonical domains.


108-115: Priority range: confirm bounds and tie-breakers.

  • Range “0 to 10” feels narrow; confirm that higher/lower bounds are enforced and how ties are resolved (creation time? name? explicit order?).

If needed, I can add a short note clarifying tie-breaking semantics.

@woodgear woodgear merged commit c027020 into alauda:master Aug 27, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants