-
Notifications
You must be signed in to change notification settings - Fork 1.5k
WIP: Add baremetal operator configmap to installer. #2149
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: imain 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 |
|
/label platform/baremetal |
|
Looks straight forward to me. It feels a little nit-pickish, but the use of metal3 vs baremetal seems a little confusing in this, but ultimately I guess that is also fine. |
|
Is |
|
Build FAILURE, see build http://10.8.144.11:8080/job/dev-tools/998/ |
|
@imain: The following tests failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. 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. |
|
I agree with @wking here.. these should be on the machine object / baremetal host object ... This information is not versioned object. |
|
Good feedback. I think we could simplify this by putting a few pieces of info in the platform status in the infrastructure config object, and then have the machine-api-operator produce the config items needed for the baremetal operator. For 4.2, I suggest we just make this config map something we drop in as a custom manifest from our install script. That’s good enough while this is still experimental. We can work on refactoring this config in 4.3. |
|
I guess the other option would be to merge something like this, but file a bug to refactor it away in 4.3. I’m ok either way since there’s an easy enough workaround. |
|
@russellb can you provide more context on who uses this, and why the machine object, baremetal host object and infrastructure object already do not cover this? |
We need to tell the provisioning service which network interface to listen on for DHCP requests from hosts being provisioned. That's the provisioning_interface configuration option defined here. We also need the IP range information for the DHCP server to use to give to hosts while they are being provisioned. That's the dhcp_range option. We also need a URL pointing to the RHCOS image that should be provisioned. We download that into the cluster before actually using it, but we have to know where to go download it from. That's the rhcos_image_url option. It wouldn't be right to add these to Machine or Host objects, because they either don't apply to the Machine/Host or should not be set differently for different instances. I don't think any of those things are in the infrastructure object right now. Maybe the image URL is? The advice we've had previously is if we need configuration settings, we should define our own thing to hold them because the other configuration APIs aren't considered stable. Is that wrong, or does that just not apply to the infrastructure object? Should we add these fields there instead of using a config map? |
is this
Is this IP range different from
How is this not machine object's option, what if somebody wants to use the machine object to create RHEL machine.. ?
You are free to define the unstable api using |
Yes, it's part of the metal3 Deployment created when the MAO sees the "baremetal" platform.
Yes, baremetal machines have multiple NICs. The IP range for this DHCP server is on the provisioning network, not the main network used by the rest of the cluster described by MachineCIDR.
We could support that in the future, but do not today. We do actually have a field on the Machine to set this, but we use a URL that points to the local cache inside the cluster so that each provisioning operation doesn't need to download the image.
I don't understand this part of your response. |
|
OK, where are we with this then? I feel like Doug and Russel have given some great responses. These are definitely unique options to facilitate deploying baremetal machines from the baremetal operator. Does that make this approach viable or should we look at another way? PS I'm in favour of changing the name of the configmap.. baremetal-configmap? |
|
Most of these options should move to either the host CR or machine CR... |
I think we've failed to communicate something clearly about what these options are. They don't belong on the host or machine, because they control how the service works at a higher level than those individual CRs. The only option we might be able to put on the Machine is the image URL, but as I explained earlier that URL is actually being used by the metal3 service when it starts up to provide a cached copy of the image for all later provisioning operations. That URL is also not something we want the user to have to configure. It's tied to the RHCOS image that was deployed to build the cluster in the first place and we don't want them using arbitrary system images. From the rest of the discussion, it seems like moving these things to the infrastructure config might be the right direction. |
|
OK. I don't think we'll have time to implement this with a CRD before the freeze as it would mean adding another operator. Based on the discussions here and on slack I think it makes the most sense to continue to use dev-scripts to create the configmap for now. This way we can document the case and implement this properly in the next cycle. |
WIP - need more details of the configuration items. See openshift#2149 for more background.
Would love some reviews on this. This adds a configmap to support the metal3 deployment. Some options need to change/be eliminated but I wanted to get it up for review to see if iI did it right.