-
Notifications
You must be signed in to change notification settings - Fork 1.5k
[Baremetal] Support For Deploying with ISOs for Baremetal IPI #5425
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
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
EOD Friday here. Putting this up so people can see where we're at. The rebase was pretty messy. I'll fix it up Monday :) |
|
Looks okay at first glance, will review in depth once ready. |
|
OK, so there are go mod issues here. Zane and/or I are going to post a patch with just the switch to a newer openshift/cluster-api-provider-baremetal change. |
zaneb
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.
There's a few different logical changes here and splitting them into separate commits might help with reviewing, but also with potentially reverting later:
- Run image customisation server and pass URLs to Terraform
- Use deploy_steps deployment method with Terraform
- Add ISO/kernel/initramfs/rootfs preProvisioningOSDownloadURLs to Provisioning CR (we may or may not use this for testing, but if we do we will probably revert later)
- Add ISO/kernel/initramfs/rootfs URLs to installer config - this plan has been superseded and we don't want to do this at all
data/data/bootstrap/baremetal/files/usr/local/bin/startironic.sh.template
Outdated
Show resolved
Hide resolved
data/data/manifests/openshift/baremetal-provisioning-config.yaml.template
Outdated
Show resolved
Hide resolved
|
/label platform/baremetal |
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
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
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
|
Didn't get as far as I had hoped. This is most of the cleanups. Will split the patch and use secrets for network data tomorrow. |
2ef5d09 to
4b44fdd
Compare
zaneb
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.
Thanks, splitting it up like this helps a lot! So, to summarise what this patch is doing:
- We're not adding any fields to the installer config (yay!)
- We're changing the default value of the OS URL from the qcow to the comma-separated iso,kernel,ramdisk,rootfs
- With the default values, we're using the CoreOS IPA for virtualmedia hosts. (Not yet for PXE, see comment inline.)
- If the user overrides the default with a QCOW (as they may have been doing up until now for disconnected installs) the installer would generate the right Provisioning CR manifests for CBO to handle it, but installation will fail (on virtualmedia) because we won't have the URLs for the masters.
- This will be resolved when we switch to getting images from machine-os-images - at that point everything will go through the CoreOS IPA.
I don't know that there are any test jobs (i.e. disconnected configuration) that this would break (@hardys @andfasano can you confirm?), so I tend to think this is OK and a lot simpler than supporting both the CoreOS IPA and the RHEL IPA depending on the image input, as we do in CBO.
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
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
594819d to
7dde9ae
Compare
01207ef to
88cef1c
Compare
This started as a fork of a metal3-io repo, but has long since diverged, and the actual go.mod file declares the module name to be openshift/ not metal3-io/.
This adds support for deployment via custom deploy_steps.
Co-Authored-By: Kiran Thyagaraja <[email protected]> Co-Authored-By: Caleb Boylan <[email protected]>
|
@imain: 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. |
| touch /tmp/nmstate/{{.Name}}.yaml | ||
| fi | ||
| {{end}} | ||
|
|
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.
@imain I think that this whole block could be simplified, given that the NetworkConfig field is already available as a template parameter. Ie:
{{range .PlatformData.BareMetal.Hosts}}
echo "{{.NetworkConfig}}" > /tmp/nmstate/{{.Name}}.yaml
{{end}}
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.
That's actually what I had before. Steve wanted to use the network secrets to get the data. Apparently they could be modified by the user after configuration and before/during deployment.
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.
@hardys just to clarify, do you have more details about this point? In understood that the main purpose of the secret was for day-2 operation.
During the installation the user is expected to provide the configuration in the install-config.yaml, from where the NetworkConfig field is extracted
|
Moved to #5473 |
|
@imain: PR needs rebase. 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. |
|
@zaneb: Closed this PR. 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. |
Switch to using an ISO for deployments. Use image-customization-server
to serve up custom ignition settings. Set up custom deploy steps for
RHCOS imaging.
Marked as work in progress because I'm sure there's still more clean up
to do.
Co-Authored-By: Kiran Thyagaraja [email protected]
Co-Authored-By: Caleb Boylan [email protected]