Skip to content

docs: add MetalLB underlay configuration doc for ACP >= 4.2.2#541

Merged
changluyi merged 2 commits intomasterfrom
feat/add-metallb-underlay-doc-master
Feb 6, 2026
Merged

docs: add MetalLB underlay configuration doc for ACP >= 4.2.2#541
changluyi merged 2 commits intomasterfrom
feat/add-metallb-underlay-doc-master

Conversation

@changluyi
Copy link
Copy Markdown
Collaborator

@changluyi changluyi commented Feb 5, 2026

添加 Kube-OVN Underlay + MetalLB LoadBalancer Service 配置文档:

  • 支持 ACP >= 4.2.2
  • IPPool 名称统一为 acp-underlay-pool
  • 添加 IPv4 only 限制说明
  • 添加 Service 指定 IPPool/fixed IP 的注释说明

Summary by CodeRabbit

  • Documentation
    • Lowered minimum ACP version to >= 4.2.2.
    • Clarified IPv4-only support (IPv6 not supported).
    • Renamed example address pool to "acp-underlay-pool" across manifests and references.
    • Added sample service annotations and comments showing how to select a pool and assign a fixed IP.
    • Added a migration section explaining steps to move existing Services to the new pool.

添加 Kube-OVN Underlay + MetalLB LoadBalancer Service 配置文档:
- 支持 ACP >= 4.3
- IPPool 名称统一为 acp-underlay-pool
- 添加 IPv4 only 限制说明
- 添加 Service 指定 IPPool/fixed IP 的注释说明
@changluyi changluyi changed the title docs: add MetalLB underlay configuration doc for ACP >= 4.3 docs: add MetalLB underlay configuration doc for ACP >= 4.2.2 Feb 5, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 5, 2026

Walkthrough

Lower ACP prerequisite to >= 4.2.2, add IPv4-only support note, rename MetalLB IPAddressPool and L2Advertisement from underlay-lb-pool to acp-underlay-pool, update Service annotations and add migration steps in the MetalLB underlay documentation.

Changes

Cohort / File(s) Summary
MetalLB Configuration Documentation
docs/en/configure/networking/how_to/kube_ovn/config_metallb_underlay.mdx
Lowered ACP version requirement to >= 4.2.2, added IPv4-only note, renamed IPAddressPool and L2Advertisement resources from underlay-lb-pool to acp-underlay-pool, updated references and Service annotation examples, and added a migration section for existing Services.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • config metallb underlay #415: Earlier updates to the same MetalLB underlay documentation and manifest naming (renaming pools and Service annotation changes).

Suggested reviewers

  • oilbeater
  • fanzy618

Poem

🐰 A pool reborn with a hop and a cheer,
Names changed gently, the path now clear,
Versions lowered, IPv4 in sight,
Services migrate to the pool just right,
I nibble docs and dance in delight.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly and specifically summarizes the main change: adding documentation for MetalLB underlay configuration with ACP version constraint.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/add-metallb-underlay-doc-master

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@changluyi changluyi requested a review from fanzy618 February 5, 2026 08:18
Copy link
Copy Markdown
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

🤖 Fix all issues with AI agents
In `@docs/en/configure/networking/how_to/kube_ovn/config_metallb_underlay.mdx`:
- Around line 13-15: Update the "Environment Requirements" section by changing
the ACP version requirement bullet "- **ACP version**: >= 4.2.2" to "- **ACP
version**: >= 4.3" so the document's stated requirement matches the PR objective
and commit message; edit the line containing the ACP version entry in the
Environment Requirements block.
🧹 Nitpick comments (1)
docs/en/configure/networking/how_to/kube_ovn/config_metallb_underlay.mdx (1)

171-172: Consider using metallb.io/loadBalancerIPs annotation instead of deprecated spec.loadBalancerIP.

The annotation metallb.io/address-pool is correct for the current MetalLB version. However, spec.loadBalancerIP is deprecated by Kubernetes and MetalLB recommends using the annotation metallb.io/loadBalancerIPs as the preferred way to request specific IPs. While spec.loadBalancerIP still works, updating the documentation comment to suggest the modern approach would better align with MetalLB's current guidance and improve future compatibility.

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Feb 5, 2026

Deploying alauda-container-platform with  Cloudflare Pages  Cloudflare Pages

Latest commit: b1e124c
Status: ✅  Deploy successful!
Preview URL: https://af3d48b4.alauda-container-platform.pages.dev
Branch Preview URL: https://feat-add-metallb-underlay-do-mwzb.alauda-container-platform.pages.dev

View logs

Signed-off-by: clyi <clyi@alauda.io>
Copy link
Copy Markdown
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

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/how_to/kube_ovn/config_metallb_underlay.mdx (1)

167-181: ⚠️ Potential issue | 🟡 Minor

Step 5 Service example is inconsistent with step 7 and mentions deprecated API field.

Two concerns:

  1. Missing annotation: The Service in step 5 relies on autoAssign without the metallb.io/address-pool annotation, whereas step 7 explicitly includes it for new services. If multiple IPAddressPool resources exist, the Service here could receive an IP from an unintended pool. Add the annotation to make the example consistent with step 7 and self-contained.

  2. spec.loadBalancerIP deprecation: The comment on line 172 references spec.loadBalancerIP, which was deprecated in Kubernetes 1.24 for being under-specified and not supporting dual-stack. MetalLB's recommended replacement is the metallb.io/loadBalancerIPs annotation.

Suggested update
 apiVersion: v1
 kind: Service
 metadata:
   name: backend-lb-service
-  # To use specific IPPool: add annotation `metallb.io/address-pool: acp-underlay-pool`
-  # To use fixed IP: set `spec.loadBalancerIP: 10.180.208.201`
+  annotations:
+    metallb.io/address-pool: acp-underlay-pool  # Specify the Underlay address pool
+    # To use a fixed IP, add: metallb.io/loadBalancerIPs: 10.180.208.201
 spec:
   type: LoadBalancer
   externalTrafficPolicy: Local  # **IMPORTANT**: Required for preserving source IP and enabling direct Pod routing
🤖 Fix all issues with AI agents
In `@docs/en/configure/networking/how_to/kube_ovn/config_metallb_underlay.mdx`:
- Around line 198-208: Add a clear warning to the "7. Migrating Existing
Services" section explaining that changing or adding the metallb.io/address-pool
annotation (e.g., setting to acp-underlay-pool via kubectl annotate service
<existing-service-name> metallb.io/address-pool=acp-underlay-pool --overwrite)
will cause MetalLB to deallocate the current external IP and assign a new one
(service IP change), and instruct users to update DNS records and client
configurations (and verify with kubectl get svc <existing-service-name> -o wide)
before performing the migration to avoid disruptions.
🧹 Nitpick comments (1)
docs/en/configure/networking/how_to/kube_ovn/config_metallb_underlay.mdx (1)

210-235: The new service example and verification look good overall.

Minor nit: The curl command on line 234 hardcodes 10.180.208.200, which may not be the IP assigned to a newly created service. Consider replacing it with a note to use the actual assigned IP, e.g.:

-curl http://10.180.208.200
+curl http://<EXTERNAL-IP>  # Use the EXTERNAL-IP from the kubectl get svc output above

This same suggestion applies to line 195 in step 6.

Comment on lines +198 to +208
### 7. Migrating Existing Services

For existing services using the old address pool (node subnet only), you can migrate them to the new Underlay address pool:

```bash
# Add annotation to migrate existing service
kubectl annotate service <existing-service-name> metallb.io/address-pool=acp-underlay-pool --overwrite

# Verify the service has been assigned a new IP from the Underlay pool
kubectl get svc <existing-service-name> -o wide
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add a warning that migration will change the service's external IP.

When metallb.io/address-pool is added/changed, MetalLB deallocates the current IP and assigns a new one from the target pool. This causes a service IP change, which can disrupt existing clients. The migration section should warn users about this and recommend updating DNS records or client configurations accordingly.

Suggested addition
 ### 7. Migrating Existing Services
 
 For existing services using the old address pool (node subnet only), you can migrate them to the new Underlay address pool:
 
+> ⚠️ **Warning**: Migrating a service to a new address pool will change its external IP address. Ensure DNS records and client configurations are updated accordingly. Plan this migration during a maintenance window to minimize disruption.
+
 ```bash
 # Add annotation to migrate existing service
 kubectl annotate service <existing-service-name> metallb.io/address-pool=acp-underlay-pool --overwrite
🤖 Prompt for AI Agents
In `@docs/en/configure/networking/how_to/kube_ovn/config_metallb_underlay.mdx`
around lines 198 - 208, Add a clear warning to the "7. Migrating Existing
Services" section explaining that changing or adding the metallb.io/address-pool
annotation (e.g., setting to acp-underlay-pool via kubectl annotate service
<existing-service-name> metallb.io/address-pool=acp-underlay-pool --overwrite)
will cause MetalLB to deallocate the current external IP and assign a new one
(service IP change), and instruct users to update DNS records and client
configurations (and verify with kubectl get svc <existing-service-name> -o wide)
before performing the migration to avoid disruptions.

@changluyi changluyi merged commit 6dfb0b4 into master Feb 6, 2026
3 checks passed
@changluyi changluyi deleted the feat/add-metallb-underlay-doc-master branch February 6, 2026 05:27
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