Skip to content

DOCS-2997: Write the guide for preserving a VM IP and MAC address - #2948

Open
ctauchen wants to merge 1 commit into
tigera:mainfrom
ctauchen:DOCS-2997-6-vm-identity
Open

DOCS-2997: Write the guide for preserving a VM IP and MAC address#2948
ctauchen wants to merge 1 commit into
tigera:mainfrom
ctauchen:DOCS-2997-6-vm-identity

Conversation

@ctauchen

@ctauchen ctauchen commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Fills in the guide for bringing a VM onto an L2 network with its original IP address and MAC address. Sixth in the DOCS-2997 sequence, and it depends on an L2 network already existing.

The guide states the order plainly, because getting it wrong is destructive. The address and MAC address are declared on the VM before it starts, so the VM comes up already holding them. The review of the plan flagged that an earlier outline read as though you would start the VM and then move it to its old address, which breaks every connection made in between. The page now rules that out explicitly.

Other points:

  • KubeVirt's own macAddress field is honored alongside the hwAddr annotation, so the page presents both and warns that conflicting values are rejected rather than resolved. OpenShift's MAC allocator fills that field in on new VMs, which makes the conflict easy to hit by accident.
  • The page recommends ipAddrs over ipAddrsNoIpam, with the reason: bypassing IPAM leaves Calico unable to tell the workload's traffic from spoofed traffic.
  • The write-back annotation is documented under its current name, network-status.
  • The migration section describes what the release implements rather than what a reader will experience, and says it has not been through a full test cycle. No claim of seamlessness anywhere.
  • Forklift carries a warning that Calico support for L2 networks is not in a released version, so a stock installation will not do this.

Two things to check:

  • The status annotation is read here from the launcher pod. Confirm that is where a reader should look for a VM, rather than somewhere on the VM or the instance.
  • The live migration paragraph is deliberately conservative while CORE-13289 is open. If that is closed and there is a test result, the wording can firm up.

Changed page: https://deploy-preview-2948--calico-docs-preview-next.netlify.app/calico-enterprise/next/networking/l2-bridge/vm-identity

Copilot AI lite review requested due to automatic review settings August 21, 2026 10:53
@ctauchen
ctauchen requested a review from a team as a code owner August 21, 2026 10:53
@netlify

netlify Bot commented Aug 21, 2026

Copy link
Copy Markdown

Deploy Preview for calico-docs-preview-next ready!

Name Link
🔨 Latest commit 2f66490
🔍 Latest deploy log https://app.netlify.com/projects/calico-docs-preview-next/deploys/6a88321c2df9c20007570fef
😎 Deploy Preview https://deploy-preview-2948--calico-docs-preview-next.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Aug 21, 2026

Copy link
Copy Markdown

Deploy Preview succeeded!

Built without sensitive environment variables

Name Link
🔨 Latest commit 2f66490
🔍 Latest deploy log https://app.netlify.com/projects/tigera/deploys/6a88321c99c9d80008743add
😎 Deploy Preview https://deploy-preview-2948--tigera.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 90 (🟢 up 19 from production)
Accessibility: 98 (no change from production)
Best Practices: 92 (no change from production)
SEO: 100 (no change from production)
PWA: -
View the detailed breakdown and full score reports
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

Copilot AI left a comment

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.

Pull request overview

Adds a complete Calico Enterprise “next” documentation guide for onboarding a KubeVirt VM onto an L2 bridge network while preserving its original IP and MAC identity, emphasizing the correct (non-destructive) configuration order and verification steps.

Changes:

  • Expands the VM identity page with explicit “configure before start” ordering guidance to avoid connection-breaking renumbering.
  • Documents MAC and IP preservation mechanisms (KubeVirt macAddress vs hwAddr, ipAddrs vs ipAddrsNoIpam) including common pitfalls and security/policy implications.
  • Adds verification steps (status write-back lookup, network-level checks), migration expectations, and supporting resource links.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@ctauchen
ctauchen force-pushed the DOCS-2997-6-vm-identity branch from ed76935 to e2282a6 Compare August 21, 2026 11:08
Copilot AI review requested due to automatic review settings August 21, 2026 11:08
Fill in the guide for bringing a VM onto an L2 network holding its original IP
address and MAC address.

The guide states the order plainly, because getting it wrong is destructive. The
values are declared on the VM before it starts, so the VM comes up already
holding them. Starting the VM and renumbering it afterwards breaks every
connection made in between.

KubeVirt's own MAC address field is now honored alongside the annotation, so the
guide presents both and warns that setting the two to conflicting values is
rejected rather than resolved. OpenShift fills that field in automatically on new
VMs, which makes the conflict easy to hit by accident.

The section on what to expect during migration describes what the release
implements rather than what a reader will experience, and says that it has not
been through a full test cycle.

Forklift carries a warning that Calico support for L2 networks is not in a
released version.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ctauchen
ctauchen force-pushed the DOCS-2997-6-vm-identity branch from e2282a6 to 2f66490 Compare August 21, 2026 11:10

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Suppressed comments (1)

calico-enterprise/networking/l2-bridge/vm-identity.mdx:176

  • The "L2 bridge support and limitations" link currently points to calico-enterprise/reference/l2-bridge-support.mdx, which is effectively empty (only section headings). This makes the additional-resource link misleading until that page has content.
## Additional resources

- [Connect workloads to an existing VLAN](connect-vlan.mdx)
- [About L2 bridge networking](about-l2-bridge.mdx)

Copilot AI review requested due to automatic review settings August 21, 2026 11:11

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Suppressed comments (1)

calico-enterprise/networking/l2-bridge/vm-identity.mdx:119

  • The kubectl ... -o jsonpath=... expression is using dot-notation for an annotation key that contains a / (and -), which won’t be parsed as a valid JSONPath field name. Use bracket notation to access the cni.projectcalico.org/vlan10.network-status annotation key so readers can copy/paste the command successfully.
     -o jsonpath='{.items[0].metadata.annotations.cni\.projectcalico\.org/vlan10\.network-status}'

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