Skip to content

CherryPicked: [cnv-4.22] net, evpn: add source provider migration test#5206

Merged
rnetser merged 1 commit into
cnv-4.22from
CherryPicked-net/evpn-source-provider-migration-4F2js
Jun 17, 2026
Merged

CherryPicked: [cnv-4.22] net, evpn: add source provider migration test#5206
rnetser merged 1 commit into
cnv-4.22from
CherryPicked-net/evpn-source-provider-migration-4F2js

Conversation

@cnv-tests-github-webhook-dollierp

Copy link
Copy Markdown

Cherry-pick from main branch, original PR: #4817, PR owner: servolkov

@openshift-virtualization-qe-bot-2

Copy link
Copy Markdown
Contributor

Report bugs in Issues

Welcome! 🎉

This pull request will be automatically processed with the following features:

🔄 Automatic Actions

  • Reviewer Assignment: Reviewers are automatically assigned based on the OWNERS file in the repository root
  • Size Labeling: PR size labels (XS, S, M, L, XL, XXL) are automatically applied based on changes
  • Issue Creation: A tracking issue is created for this PR and will be closed when the PR is merged or closed
  • Branch Labeling: Branch-specific labels are applied to track the target branch
  • Auto-verification: Auto-verified users have their PRs automatically marked as verified
  • Labels: Enabled categories: branch, can-be-merged, cherry-pick, has-conflicts, hold, needs-rebase, size, verified, wip

📋 Available Commands

PR Status Management

  • /wip - Mark PR as work in progress (adds WIP: prefix to title)
  • /wip cancel - Remove work in progress status
  • /hold - Block PR merging (approvers only)
  • /hold cancel - Unblock PR merging
  • /verified - Mark PR as verified
  • /verified cancel - Remove verification status
  • /reprocess - Trigger complete PR workflow reprocessing (useful if webhook failed or configuration changed)
  • /regenerate-welcome - Regenerate this welcome message

Review & Approval

  • /lgtm - Approve changes (looks good to me)
  • /approve - Approve PR (approvers only)
  • /assign-reviewers - Assign reviewers based on OWNERS file
  • /assign-reviewer @username - Assign specific reviewer
  • /check-can-merge - Check if PR meets merge requirements

Testing & Validation

  • /retest tox - Run Python test suite with tox
  • /retest build-container - Rebuild and test container image
  • /retest verify-bugs-are-open - verify-bugs-are-open
  • /retest all - Run all available tests

Container Operations

  • /build-and-push-container - Build and push container image (tagged with PR number)
    • Supports additional build arguments: /build-and-push-container --build-arg KEY=value

Cherry-pick Operations

  • /cherry-pick <branch> - Schedule cherry-pick to target branch when PR is merged
    • Multiple branches: /cherry-pick branch1 branch2 branch3

Label Management

  • /<label-name> - Add a label to the PR
  • /<label-name> cancel - Remove a label from the PR

✅ Merge Requirements

This PR will be automatically approved when the following conditions are met:

  1. Approval: /approve from at least one approver
  2. LGTM Count: Minimum 2 /lgtm from reviewers
  3. Status Checks: All required status checks must pass
  4. No Blockers: No wip, hold, has-conflicts labels and PR must be mergeable (no conflicts)
  5. Verified: PR must be marked as verified

📊 Review Process

Approvers and Reviewers

Approvers:

  • EdDev
  • dshchedr
  • myakove
  • rnetser
  • vsibirsk

Reviewers:

  • Anatw
  • EdDev
  • RoniKishner
  • azhivovk
  • dshchedr
  • frenzyfriday
  • nirdothan
  • orelmisan
  • rnetser
  • servolkov
  • vsibirsk
  • yossisegev
Available Labels
  • hold
  • verified
  • wip
  • lgtm
  • approve
AI Features
  • Cherry-Pick Conflict Resolution: Enabled (claude/claude-opus-4-6[1m])

💡 Tips

  • WIP Status: Use /wip when your PR is not ready for review
  • Verification: The verified label is removed on new commits unless the push is detected as a clean rebase
  • Cherry-picking: Cherry-pick labels are processed when the PR is merged
  • Container Builds: Container images are automatically tagged with the PR number
  • Permission Levels: Some commands require approver permissions
  • Auto-verified Users: Certain users have automatic verification and merge privileges

For more information, please refer to the project documentation or contact the maintainers.

@servolkov

Copy link
Copy Markdown
Contributor

NOTE: no need to merge before GA, can be merged after.

@rnetser

@servolkov

Copy link
Copy Markdown
Contributor

/verified

automatic cherry-pick, code is clean

@rnetser

rnetser commented Jun 13, 2026

Copy link
Copy Markdown
Collaborator

@servolkov for this PR to be merged during code freeze, an exceptino request is required

@rnetser

rnetser commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

@servolkov for this PR to be merged during code freeze, an exceptino request is required

missed your comment

@rnetser

rnetser commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

/rebase

  ##### What this PR does / why we need it:
  Add source provider migration test for EVPN.

- Add VNI-aware teardown for L2 endpoints: clean up VLAN/VNI bridge
mappings,
allowing re-deployment with different parameters in the same test
session.
- Add `macAddress` field to `Interface` dataclass for explicit MAC
assignment.
  - Add explicit MAC support to `deploy_evpn_l2_endpoint`.
- Add `test_source_provider_migration`: emulates migration of an
external L2
workload into the cluster as a CUDN VM, preserving its IP and MAC
addresses.
The old endpoint is torn down, a VM takes over the original identity,
then a
new L2 endpoint is deployed with different IPs to verify connectivity.

  ##### Which issue(s) this PR fixes:

  ##### Special notes for reviewer:
- `test_source_provider_migration` uses `@pytest.mark.order("last")`
because it
tears down the shared L2 endpoint, which would break other tests if run
earlier.
- IPv6 static IP fix: `random_ipv6_address()` generates addresses with a
random 7th hextet,
    but OVN IPAM caps /64 allocation to 65536 addresses.
Replaced with a low-offset hardcoded address. Only affects IPs requested
via
`network.kubevirt.io/addresses`; external netns endpoints are
unaffected.
    The known bug: https://redhat.atlassian.net/browse/OCPBUGS-86810
- The new L2 endpoint is created as a test step rather than a fixture.
This is a
known limitation — currently only one L2 endpoint can exist at a time. A
follow-up
will reorganise fixtures to separate VLAN lifecycle from endpoints,
enabling
    independent concurrent endpoints.

  ##### jira-ticket: https://redhat.atlassian.net/browse/CNV-89431

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* VM interfaces can include an explicit MAC address; L2 endpoints accept
and apply a provided MAC.

* **Tests**
* EVPN connectivity tests now perform a full source-provider migration
end-to-end and run last.
  * IPv4/IPv6 endpoint addressing is deterministic for repeatable runs.
* Tests inject endpoint MACs into VM templates and add a fixture to
provision VMs attached to external L2 endpoints.

* **Bug Fixes**
  * L2 endpoint teardown now fully cleans bridge/VNI state.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Sergei Volkov <sevolkov@redhat.com>
@openshift-virtualization-qe-bot-2

Copy link
Copy Markdown
Contributor

Successfully rebased CherryPicked-net/evpn-source-provider-migration-4F2js onto cnv-4.22

@openshift-virtualization-qe-bot-2 openshift-virtualization-qe-bot-2 force-pushed the CherryPicked-net/evpn-source-provider-migration-4F2js branch from de2c6f0 to 16eee47 Compare June 14, 2026 17:15
@openshift-virtualization-qe-bot-2

Copy link
Copy Markdown
Contributor

Clean rebase detected — no code changes compared to previous head (de2c6f0).
The following labels were preserved: verified, lgtm-RoniKishner.

@rnetser

rnetser commented Jun 14, 2026

Copy link
Copy Markdown
Collaborator

/security-override

@openshift-virtualization-qe-bot-2

Copy link
Copy Markdown
Contributor

Security checks overridden by @rnetser. Security check runs set to pass.

@servolkov

Copy link
Copy Markdown
Contributor

/retest tox

@rnetser

rnetser commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

/rebase

@openshift-virtualization-qe-bot

Copy link
Copy Markdown

Successfully rebased CherryPicked-net/evpn-source-provider-migration-4F2js onto cnv-4.22

@rnetser

rnetser commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

/approve
/lgtm

@rnetser rnetser merged commit 1487da7 into cnv-4.22 Jun 17, 2026
18 checks passed
@rnetser rnetser deleted the CherryPicked-net/evpn-source-provider-migration-4F2js branch June 17, 2026 18:29
@openshift-virtualization-qe-bot-2

Copy link
Copy Markdown
Contributor

New container for quay.io/openshift-cnv/openshift-virtualization-tests:cnv-4.22 published

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants