Skip to content

runbook/KubemacpoolMACCollisionDetected: Add Pod diagnosis step#363

Merged
avlitman merged 1 commit intokubevirt:mainfrom
RamLavi:update-runbook-pod-collision
Apr 5, 2026
Merged

runbook/KubemacpoolMACCollisionDetected: Add Pod diagnosis step#363
avlitman merged 1 commit intokubevirt:mainfrom
RamLavi:update-runbook-pod-collision

Conversation

@RamLavi
Copy link
Copy Markdown
Contributor

@RamLavi RamLavi commented Mar 31, 2026

What this PR does / why we need it:
KubeMacPool now detects MAC collisions on Pods with Multus secondary interfaces (in addition to VMIs) k8snetworkplumbingwg/kubemacpool#612.

This PR adds a diagnosis step showing how to find colliding Pods by querying the network-status annotation.

Also refactor step 3 to use MAC env var.

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:

Add pod collision support

KubeMacPool now detects MAC collisions on Pods with Multus secondary
interfaces (in addition to VMIs) [0]. Add a diagnosis step showing how
to find colliding Pods by querying the network-status annotation.

Also refactor step 3 to use MAC env var.

[0] k8snetworkplumbingwg/kubemacpool#612

Assisted-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Ram Lavi <ralavi@redhat.com>
@kubevirt-bot kubevirt-bot added dco-signoff: yes Indicates the PR's author has DCO signed all their commits. size/S labels Mar 31, 2026
@RamLavi
Copy link
Copy Markdown
Contributor Author

RamLavi commented Mar 31, 2026

/hold

until k8snetworkplumbingwg/kubemacpool#612 is merged

@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 Mar 31, 2026
@kubevirt-bot kubevirt-bot requested review from ousleyp and sradco March 31, 2026 12:42
@RamLavi
Copy link
Copy Markdown
Contributor Author

RamLavi commented Mar 31, 2026

example:

[root@zeus33 kubemacpool]# export MAC=02:00:00:11:22:33
[root@zeus33 kubemacpool]# kubectl get vmi -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.status.interfaces[*].mac}{"\n"}{end}' | grep -i "$MAC"
test-collision-ns1	cross-vm-1	02:00:00:11:22:33
test-collision-ns1	cross-vm-2	02:00:00:11:22:33
test-collision-ns2	cross-vm-3	02:00:00:11:22:33
[root@zeus33 kubemacpool]# kubectl get pod -A -o json | jq -r --arg mac "$MAC" '.items[] | .metadata as $m | (.metadata.annotations["k8s.v1.cni.cncf.io/network-status"] // "[]" | fromjson)[] | select(.mac // "" | test($mac; "i")) | "\($m.namespace)\t\($m.name)\t\(.mac)"'
test-collision-ns1	cross-pod-1	02:00:00:11:22:33
test-collision-ns1	cross-pod-2	02:00:00:11:22:33
test-collision-ns2	cross-pod-3	02:00:00:11:22:33
test-collision-ns2	cross-pod-4	02:00:00:11:22:33

@RamLavi
Copy link
Copy Markdown
Contributor Author

RamLavi commented Mar 31, 2026

@avlitman can you take a look?

@avlitman avlitman merged commit bc23cc9 into kubevirt:main Apr 5, 2026
3 checks passed
github-actions bot pushed a commit that referenced this pull request Apr 5, 2026
…pod-collision

runbook/KubemacpoolMACCollisionDetected: Add Pod diagnosis step
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dco-signoff: yes Indicates the PR's author has DCO signed all their commits. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. size/S

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants