-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Determine Nic name in Bootstrap VM for ARM and x86 #5698
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
bn222
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I only had 1 nit (see my comment). Otherwise, this lgtm.
data/data/bootstrap/baremetal/files/usr/local/bin/startironic.sh.template
Outdated
Show resolved
Hide resolved
data/data/bootstrap/baremetal/files/usr/local/bin/startironic.sh.template
Outdated
Show resolved
Hide resolved
|
/uncc |
|
This looks good from my side |
data/data/bootstrap/baremetal/files/usr/local/bin/startironic.sh.template
Outdated
Show resolved
Hide resolved
|
Thanks for the detailed analysis @jeffdyoung! The log-parsing aspect of this solution seems a little ...ugly, so before committing to this it'd be good to ensure we've fully explored the alternatives:
Yeah I don't see an obvious way to pass in the kernel param unless we modify the qcow image (there's a cmdline option to terraform/libvirt but I guess that only works for direct kernel boot) However passing the MAC should be pretty simple I think, we already have platform parameters for ExternalMACAddress and ProvisioningMACAddress - we'd just need to calculate a default for those values here , then pass ProvisioningMACAddress in the templateData so the startironic.sh script can look up the NIC by MAC instead of name? |
|
/label platform/baremetal |
data/data/bootstrap/baremetal/files/usr/local/bin/startironic.sh.template
Outdated
Show resolved
Hide resolved
Sorry just catching up - I was thinking we'd generate the default MACs with some random component (but using the libvirt prefix) - e.g similar to this in the libvirt terraform provider Then we remove the risk that someone tries to run two IPI installs on the same L2 segment and runs into issues - this could be quite likely in developer multi-cluster scenarios, and also there is Hive support for BM IPI where multiple bootstrap VMs run on a common hypervisor |
No worries @hardys, was able to use the code you linked with some modifications. I ran a few installs with it on our arm machines and verified that random macs addresses were generated on every bootstrap vm. Let me know if you'd like more changes. |
|
/retest |
c671422 to
474c8d6
Compare
|
/retest |
1 similar comment
|
/retest |
|
/approve The latest version lgtm, thanks! |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: hardys The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
6 similar comments
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
@zaneb It doesn't look like prow did the right thing, but I think we're good now? |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
5 similar comments
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
|
/override ci/prow/e2e-metal-ipi-ovn-ipv6-required |
|
@zaneb: zaneb unauthorized: /override is restricted to Repo administrators, approvers in top level OWNERS file. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
Oh, heh, forgot what repo I am in. @patrickdillon could you override the deleted job? |
|
/override ci/prow/e2e-metal-ipi-ovn-ipv6-required |
|
@patrickdillon: Overrode contexts on behalf of patrickdillon: ci/prow/e2e-metal-ipi-ovn-ipv6-required DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
/override ci/prow/e2e-metal-ipi-ovn-ipv6-required |
|
@patrickdillon: Overrode contexts on behalf of patrickdillon: ci/prow/e2e-metal-ipi-ovn-ipv6-required DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
/override ci/prow/e2e-metal-ipi-ovn-ipv6-required |
|
@patrickdillon: Overrode contexts on behalf of patrickdillon: ci/prow/e2e-metal-ipi-ovn-ipv6-required DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
/retest |
|
@jeffdyoung: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
1 similar comment
|
/retest-required Please review the full test history for this PR and help us cut down flakes. |
Hey @hardys
I dug into why arm/x86 were creating nic names:
By default libvirt the bootstrap x86 vm that gets created uses pci:
By default libvirt the bootstrap arm64 vm that gets created uses pcie:
This causes RHCOS (and RHEL/Fedora) to rename
eth0andeth1differently on startup:x86:
arm64:
More on RHEL naming here.
According to this RHEL DOC using eth0/eth1 should be reliable as long as we continue to use virtio-net, and not mix or use with other nic types (like e1000).
This proposed fix seems to be the least painful way around this issue. I looked at trying to pass in mac address, and adding
net.ifnames=0as a kernel parameter, but didn't see a straight forward way to do so.Let me know your thoughts, we've targeted IPI Metal support for 4.11. If you agree, I can get this PR cleaned up (the linters won't run on my arm dev machine).
Multi-Arch Ticket: https://issues.redhat.com/browse/ARMOCP-234
Similar PR: #5554
cc: @bn222