-
Notifications
You must be signed in to change notification settings - Fork 19
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
Configure bond0 interface (alternative implementation) #22
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Despite having identical PCI configurations, ctl-0 has different network device names than ctl-1 and ctl-2. By disabling "predictable network interface names" [1], we end up with consistent device names across the cluster. This drastically simplifies the process of applying networking configuration changes across the cluster. [1]: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
larsks
requested review from
chrisstafford,
dystewart,
jtriley,
mikthoma and
naved001
June 25, 2022 15:25
larsks
force-pushed
the
feature/bond0-beta
branch
from
June 25, 2022 15:28
eaed894
to
5fe71a7
Compare
We disabled predictable network device names in the previous commit, which means we're now at the mercy of the order in which the kernel scans network devices. If a card is added or removed from the system, what we know as "eth2" may no longer be the same interface it is now. To solve this, we add udev rules that match the network interfaces based on characteristics such as their PCI bus/device/function.
larsks
force-pushed
the
feature/bond0-beta
branch
3 times, most recently
from
June 26, 2022 02:13
13ffdd6
to
536d592
Compare
We want to use bonded interface pairs on these system. The nodes aren't yet wired for it, but setting this up now will allow us to refer to the `bond0` interface in e.g. VLAN configurations (and means we won't have to re-work those later). Because we're using OVNKubernetes, we can't use nmstate [1] to enact the configuration. The recommended mechanism for modifying the primary interface configuration is to apply the configuration using a MachineConfig [2] resource. By taking advantage of the changes in the previous commits, we can simply install NetworkManager connection files for bond0, nic1, and nic2. This will take effect when the system reboots (which will happen when the MachineConfig Operator applies our changes). [1]: https://docs.openshift.com/container-platform/4.10/networking/k8s_nmstate/k8s-nmstate-about-the-k8s-nmstate-operator.html [2]: https://docs.openshift.com/container-platform/4.10/post_installation_configuration/machine-configuration-tasks.html x-branch: feature/bond0-beta
larsks
force-pushed
the
feature/bond0-beta
branch
from
June 26, 2022 02:17
536d592
to
6771123
Compare
naved001
reviewed
Jun 26, 2022
cluster-scope/overlays/nerc-ocp-infra/machineconfigs/configure-bond0/machineconfig.yaml
Show resolved
Hide resolved
naved001
approved these changes
Jun 27, 2022
jtriley
requested changes
Jun 27, 2022
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.
LGTM but let's switch the LACP bond mode to 802.3ad
cluster-scope/overlays/nerc-ocp-infra/machineconfigs/configure-bond0/src/bond0.nmconnection
Outdated
Show resolved
Hide resolved
larsks
force-pushed
the
feature/bond0-beta
branch
from
June 27, 2022 16:13
6771123
to
082e1fe
Compare
jtriley
approved these changes
Jun 27, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an alternative implementation of #20.
We want to use bonded interface pairs on these system. The nodes
aren't yet wired for it, but setting this up now will allow us to
refer to the
bond0
interface in e.g. VLAN configurations (and meanswe won't have to re-work those later).
Because we're using OVNKubernetes, we can't use nmstate 1 to enact
the configuration. The recommended mechanism for modifying the primary
interface configuration is to apply the configuration using a
MachineConfig 2 resource.
Despite having identical PCI configurations, ctl-0 has different
network device names than ctl-1 and ctl-2. By disabling "predictable
network interface names" 3, we end up with consistent device names
across the cluster.
By disabling predictable network interface names, we can
simply install NetworkManager connection files for bond0, eth2, and
eth3. This will take effect when the system reboots (which will happen
when the MachineConfig Operator applies our changes).