-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
[WIP] baremetal: Pass through of config variables to ironic #3887
Conversation
/hold |
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'm not sure I like the idea of a top-level platform configuration for setting Ironic's internal configuration. It's exposing an implementation detail we prefer to keep hidden, if at all possible. If we have to make it available, it might belong tucked away in an Advanced
struct member in the baremetal platform, with appropriate warnings.
This also doesn't handle how we pass this through to MAO/CBO for the in-cluster Ironic images.
TBH, I think this change needs an enhancement request so we can get all the details worked out.
@@ -108,4 +108,7 @@ type Platform struct { | |||
// | |||
// +optional | |||
ClusterOSImage string `json:"clusterOSImage,omitempty" validate:"omitempty,osimageuri,urlexist"` | |||
|
|||
|
|||
IronicExtraConf map[string]interface{} `json:"ironicExtraConf,omitempty"` |
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.
Public struct members need godoc comment
We'll need to update the Provisioning CRD to support a mechanism to pass-through Ironic configuration. It'll be an API change. openshift/machine-api-operator#632 alters the API and makes use of it, not quite the same idea but it should give you the gist of how the change would look. |
@@ -108,4 +108,7 @@ type Platform struct { | |||
// | |||
// +optional | |||
ClusterOSImage string `json:"clusterOSImage,omitempty" validate:"omitempty,osimageuri,urlexist"` | |||
|
|||
|
|||
IronicExtraConf map[string]interface{} `json:"ironicExtraConf,omitempty"` |
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.
secondly a map of string to anything is not a great API.
Let's make sure there is an enhancement for this new field before we move ahead on this.
/hold
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.
secondly a map of string to anything is not a great API.
Let's make sure there is an enhancement for this new field before we move ahead on this.
/hold
Agreed, mapping to anything is not ideal, the problem is that ironic has ~700 config options and ironic-inspector has another ~400, in order to allow people to deal with special cases we either need to
- have some sort of pass through mechanism like this or
- add individual options for each one as it comes up with the delay thats involved to merge/release
as is we're seeing patches merged into the ironic image with options specific to CI, specific hardware and for debugging
metal3-io/ironic-image#172
metal3-io/ironic-image#160
metal3-io/ironic-image#167
metal3-io/ironic-image#150
some of these could be top-level platform configuration options but for corner cases I don't think we'd want to start creating options for every single one.
I can create an enhancement for this, I didn't intend on removing the hold on this PR until we came to a consensuses anyways.
Ack, will look into it
yup, I was going to look into that next
ack, will also look into creating one |
thanks, I was trying something similar, this should help me get it right. |
This script is run by root
edf96ef
to
db3a3c7
Compare
[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.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@derekhiggins: The following tests failed, say
Full PR test history. Your PR dashboard. 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. I understand the commands that are listed here. |
@stbenjam @abhinavdahiya I've started an enhancement here if ye have any thought I can update it, |
OK will close this, looks like we'd rather add things when needed. |
Makes use of oslo.config's ability to read config from env variables
see metal3-io/ironic-image#165