Skip to content

net: Add live update NAD reference documentation#979

Merged
kubevirt-bot merged 2 commits intokubevirt:mainfrom
frenzyfriday:nad-swap
Apr 9, 2026
Merged

net: Add live update NAD reference documentation#979
kubevirt-bot merged 2 commits intokubevirt:mainfrom
frenzyfriday:nad-swap

Conversation

@frenzyfriday
Copy link
Copy Markdown
Contributor

@frenzyfriday frenzyfriday commented Mar 13, 2026

Document the live update NAD reference feature which allows changing the NetworkAttachmentDefinition reference on running VMs through live migration without requiring a reboot.

VEP tracking issue: kubevirt/enhancements#140

What this PR does / why we need it:

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

Special notes for your reviewer:

Checklist

This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

Release note:

NONE

@kubevirt-bot kubevirt-bot added the dco-signoff: yes Indicates the PR's author has DCO signed all their commits. label Mar 13, 2026
@kubevirt-bot kubevirt-bot requested review from EdDev and ormergi March 13, 2026 16:35
@frenzyfriday
Copy link
Copy Markdown
Contributor Author

/cc @orelmisan , @nirdothan

Copy link
Copy Markdown
Member

@nirdothan nirdothan left a comment

Choose a reason for hiding this comment

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

Thank you @frenzyfriday.

  • Please don't let AI spit out so much redundant text. It exhausts the readers and adds a maintenance burden on the writers.
  • Please follow the standard formatting that you see in other pages Look at @orelmisan's PRs).
  • I might be missing it but how is the page linked to the guide?

@@ -0,0 +1,215 @@
# Live Update Network Attachment Definition Reference
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm not sure about the release note. Don't think that we need to add everything we document in a release-note. Specifically you indicated the FG name and not the description of the feature.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Ack, removed the release note

Release:

- v1.8.0: Beta
- v1.9.0: GA
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do we know that already?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I have a PR to graduate the FG in main. I can push for it once the flake is fixed and probably it will merge by 1.9 codefreeze

Comment thread docs/network/hotplug/nad_reference.md
- The `LiveUpdateNADRef` [feature-gate](https://kubevirt.io/user-guide/operations/activating_feature_gates/#how-to-activate-a-feature-gate) must be enabled (for v1.8.x Beta release)
- The target NetworkAttachmentDefinition must exist in the same namespace

> **Note**: From KubeVirt v1.9, the feature gate is no longer needed as the feature reached GA.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Per my comment above. Need to figure out if we are already documenting v1.9.


> **Note**: From KubeVirt v1.9, the feature gate is no longer needed as the feature reached GA.

## What Gets Updated
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Please consider dropping this whole paragraph. You've already explained that and it looks like AI is just enjoying spitting out text in bold.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Ack, done

Comment thread docs/network/live_update_nad_reference.md Outdated
Comment thread docs/network/live_update_nad_reference.md Outdated
Comment thread docs/network/live_update_nad_reference.md Outdated
Comment thread docs/network/live_update_nad_reference.md Outdated
- **Tenant Migration**: Moving VMs between different tenant networks
- **Network Segmentation**: Changing network isolation boundaries for running workloads

## Compatibility with Multus Dynamic Networks Controller
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is important. Please put it in a Note or warning, according to our standard format. (look for !!!)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I havent tested it with DNC yet. Lemme add this section in a follow up

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why don't you write that it's currently not supported, and then if it works remove it in a followup?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Ack, added it to the limitations here

@frenzyfriday
Copy link
Copy Markdown
Contributor Author

Last change addresses Nir's comments and introduces human edits

Comment thread docs/network/live_update_nad_reference.md Outdated
Comment thread docs/network/live_update_nad_reference.md Outdated
Comment thread docs/network/hotplug/nad_reference.md
@frenzyfriday frenzyfriday force-pushed the nad-swap branch 3 times, most recently from 3969a5c to fb24f7f Compare March 26, 2026 09:39
@frenzyfriday
Copy link
Copy Markdown
Contributor Author

Last few changes (after Nir's review) addresses Nir's comments, links the NAD update page to the main network page and changes the name of the page from Live update Network Attachment Definition Reference to Live update NAD Reference because it is shorter

Comment thread docs/network/hotplug_interfaces.md Outdated
@kubevirt-bot kubevirt-bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 26, 2026
@kubevirt-bot kubevirt-bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 26, 2026
Comment thread docs/network/hotplug/nad_reference.md Outdated
Comment on lines +66 to +67
- masquerade: {}
name: defaultnetwork
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit: This is not really relevant to express this feature.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Ack, updated here

Comment thread docs/network/hotplug/nad_reference.md Outdated
Comment on lines +108 to +109
If automatic migration is not configured, a migration must be manually triggered.
Please refer to the [Live Migration](../../compute/live_migration.md) documentation for more information.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is not relevant, users are not allowed to migrate VMs, only admins can.
I would expect that if the rollout strategy is not LiveUpdate, then the VM should show it needs a restart. Isn't that the case?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

If the WorkloadUpdateStrategy and VMRolloutStrategy are not set the VM will still show

- last...
  reason: AutoMigrationDueToLiveUpdate
  status: "True"
  type: MigrationRequired```

but it will not migrate.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It sounds like a bug to me.
I guess we missed it in the VEP.

And I do not understand how WorkloadUpdateStrategy is relevant. It is supposed to affect upgrades AFAIU.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

+1 I find it hard to understand why we could have such a non-actionable condition MigrationRequired - @orelmisan could it be a leftover?
@jean-edouard fyi

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

If the WorkloadUpdateStrategy and VMRolloutStrategy are not set the VM will still show

- last...
  reason: AutoMigrationDueToLiveUpdate
  status: "True"
  type: MigrationRequired```

but it will not migrate.

kubevirt/kubevirt#17328 tracks this issue and contains the relevant details.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I have also opened kubevirt/kubevirt#17329 to treat the odd dependency on the cluster upgrade knob.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@frenzyfriday , I think this was not treated.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Sorry, removed the line about migration here

If automatic migration is not configured, a migration must be manually triggered.
Please refer to the [Live Migration](../../compute/live_migration.md) documentation for more information.

## Limitations
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Please add the scale issue: When a bulk of VMs are updated, the change occurs per the live migration parallel limitations (link may be useful).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Ack, updated here

Comment thread docs/network/hotplug/nad_reference.md Outdated
## Limitations
- Moving to a different CNI type may fail, specially if the new CNI type requires additional configurations to be done.
- Switching to a new binding type/binding plugin is not supported
- Only migratable VMs can be updated
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What will happen to the ones who are not migratable?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added some details here

Document the live update NAD reference feature which allows changing the
NetworkAttachmentDefinition reference on running VMs through live
migration without requiring a reboot.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Signed-off-by: Ananya Banerjee <anbanerj@redhat.com>
This commit adds a link to nad_reference.md under network/hotplug.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Signed-off-by: Ananya Banerjee <anbanerj@redhat.com>
@frenzyfriday
Copy link
Copy Markdown
Contributor Author

Last two changes addresses comments from Edy and Nir

Copy link
Copy Markdown
Member

@EdDev EdDev left a comment

Choose a reason for hiding this comment

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

Thank you!

/approve

@kubevirt-bot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: EdDev

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubevirt-bot kubevirt-bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 9, 2026
Copy link
Copy Markdown
Member

@orelmisan orelmisan left a comment

Choose a reason for hiding this comment

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

Thank you @frenzyfriday!
Giving @nirdothan a chance to feedback
/hold

@kubevirt-bot kubevirt-bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Apr 9, 2026
@kubevirt-bot kubevirt-bot added the lgtm Indicates that a PR is ready to be merged. label Apr 9, 2026
Copy link
Copy Markdown
Member

@nirdothan nirdothan left a comment

Choose a reason for hiding this comment

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

Thank you!
/unhold

@kubevirt-bot kubevirt-bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Apr 9, 2026
@kubevirt-bot kubevirt-bot merged commit b512bb5 into kubevirt:main Apr 9, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. dco-signoff: yes Indicates the PR's author has DCO signed all their commits. lgtm Indicates that a PR is ready to be merged. size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants