-
Notifications
You must be signed in to change notification settings - Fork 475
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
Discuss host network configuration interfaces #394
Discuss host network configuration interfaces #394
Conversation
/cc @derekwaynecarr @crawford @cgwalters @celebdor @bcrochet @squeed @danwinship @dcbw @knobunc @abhinavdahiya @sdodson @yboaron @qinqon @phoracek @EdDev @ashcrow @dhellmann @hardys @stbenjam @dustymabe @miabbott @dougbtv @eparis @markmc @jwforres Tagging people that may have input, mostly that I saw comment on related enhancements |
enhancements that this one may reference. | ||
|
||
|
||
## Use Cases |
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.
So this talks about some of the features that are needed, but it doesn't explain why they're needed, which would help in understanding the problem space. Why would the customer's environment be set up so that we need to use a VLAN? Why would someone want to manually configure networking on each host rather than setting up a DHCP server to do it?
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.
Yeah, this section is pretty weak. I tried to add a bit more text to each use case listed, but more could certainly be added here over time.
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 think it would be helpful to outline common configurations and how they would be achieved today - it might also help highlight the issues around interfaces, e.g there are multiple partially overlapping interfaces the user gets exposed to (dracut, coreos-install, ignition, nmstate)
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.
Agree, more realistic examples would be great. I view this as a living document where we could submit enhancements like this over time as we come across good examples.
|
||
Some clusters may want to allocate SR-IOV devices to workloads for a secondary | ||
network interface with high performance. These devices are managed by the | ||
[SR-IOV Operator[(https://github.com/openshift/sriov-network-operator). |
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.
close bracket is backwards.
also this is pretty vague compared to everything else in the doc
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.
Fixed the bracket. I haven't added more text yet. I honestly don't know much of anything about the SR-IOV operator, so that's why it's vague. :-) I need to look at it more closely!
@danwinship tried to address most of your feedback in the last commit I pushed |
15e368d
to
becb9c6
Compare
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 for writing this. Nice summary!
One reason for this “pointer” ignition approach is that on many cloud platforms | ||
the size limit for host initialization information through their API is very | ||
low. To get around the size limit, we provide a small config that contains | ||
instructions for how to download the full configuration at runtime. For | ||
baremetal deployments this size limit is likely to be much higher, so it may be | ||
possible to provide the entire configuration to each node, which potentially | ||
removes the runtime requirement to download the rendered configuration. |
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.
Yes. If we can get a flattened ignition config then the work that we're already doing to "make the initramfs only bring up networking if it needs to" (coreos/fedora-coreos-tracker#443) will mean the machine won't attempt to bring up networking in the initramfs and all networking configuration can be applied via Ignition.
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.
Should deal with the remaining unresolved comments (especially the no-auto-default=*
one) and get this merged...
e58fb0b
to
32e3b76
Compare
mostly lgtm but you should probably address #394 (comment) before merging |
I did the follow-up I mentioned and tagged dustymabe on the doc where I got this example. I haven't tested the suggested change myself so hadn't applied it here. I'll try adding it to this doc anyway now. |
This change introduces a new enhancement that discusses host network configuration. It is different from the typical enhancement in that its goal is informational and to discuss what is already present in this area. It also provides references to other related works in progress. I wrote this first for myself and propose it here in hopes that it may help others. I find that this context is important and helpful to understand when discussing or reviewing enhancements for a specific feature related to host network configuration. I imagine this as a living document that should get updated as key improvements are made to how we manage host network configuration for OpenShift.
32e3b76
to
b360f20
Compare
done |
Use DHCP in the MachineConfig example instead of static IP configuration. Since MachineConfig applies to a pool of hosts, it is not a suitable interface for doing static IP configuration. Clarify that a future API enhancement is necessary to better support static IP configuration through the OpenShift API.
Apply suggested change from @dustymabe to reflect the updated version number for RHCOS live ISO Co-authored-by: Dusty Mabe <[email protected]>
I've started writing some enhancements that are meant more to discuss the context for a problem space and not to propose any specific changes. One example is an overview of how BGP relates to OpenShift, and a list of use cases that each may be explored in their own future enhancements. Another is a doc that discusses the different interfaces related to configuring networking on a host (see PR openshift#394). These sorts of docs don't fit the normal status workflow, so I propose adding a new "informational" state that covers these cases.
Overall this PR is really great, thank you so much for doing this! I actually already just had cause to send the link to this document to someone asking about static IP addressing. However, I do think we need some sort of story where this text can end up in the official product documentation. TBH I am unaware of a flow for that. |
I'll look into the right place to file an issue about enhancing product docs to cover these topics, including a link to this as a source. |
I've made contact with our docs team regarding this doc and we will be looking at how best to incorporate it. It seems like this PR should probably just merge and be improved and updated with follow-up PRs at this point. |
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: cgwalters, danwinship, russellb The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This change introduces a new enhancement that discusses host network
configuration. It is different from the typical enhancement in that
its goal is informational and to discuss what is already present in
this area. It also provides references to other related works in
progress.
I wrote this first for myself and propose it here in hopes that it may
help others. I find that this context is important and helpful to
understand when discussing or reviewing enhancements for a specific
feature related to host network configuration.
I imagine this as a living document that should get updated as key
improvements are made to how we manage host network configuration for
OpenShift.