Skip to content

OPNET-763: NMState Opt-In for br-ex#1963

Open
cybertron wants to merge 1 commit intoopenshift:masterfrom
cybertron:nmstate-opt-in
Open

OPNET-763: NMState Opt-In for br-ex#1963
cybertron wants to merge 1 commit intoopenshift:masterfrom
cybertron:nmstate-opt-in

Conversation

@cybertron
Copy link
Copy Markdown
Member

No description provided.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Mar 27, 2026
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Mar 27, 2026

@cybertron: This pull request references OPNET-763 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "4.22.0" version, but no target version was set.

Details

In 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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci Bot requested review from dougbtv and tssurya March 27, 2026 17:15
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 27, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign tssurya for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 27, 2026

@cybertron: all tests passed!

Full PR test history. Your PR dashboard.

Details

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-sigs/prow repository. I understand the commands that are listed here.

@cybertron
Copy link
Copy Markdown
Member Author

Comment on lines +89 to +90
Because this feature is delivered using the same mechanism (MCO) as the
existing configure-ovs script, it should work the same way.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have any documentation as to how this works today on HyperShift? IIRC the MCO doesn't work the same way on HyperShift as it does on standalone clusters so making sure that there isn't something special we need to do to make sure HyperShift is configuring things correctly would be good.

@yuqi-zhang and/or @sjenning probably have a better handle of the nuances here than I do.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have any specific documentation, but I did discuss it with the MCO team and although user-created machine-configs are not available in HyperShift, the built-in MCO templates are still delivered via Ignition. That's how configure-ovs gets to HyperShift nodes today, and the same will be true if we add new template(s) for this feature.

Comment on lines +120 to +124
We also anticipate having a bridgeTopology for balance-slb bonds, which is
structurally different from a standard br-ex configuration and can't easily
be handled in the same policy. There is an existing feature in configure-ovs
that creates a br-ex1 too, so at some point we will need to support that as
well.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any chance we can document what the future behavior we anticipate needing is a bit more clearly for those unfamiliar with this space?

As an API reviewer with less context in this space, having an understanding of what we may need to account for in the future helps influence the API structure and ensuring we have good extensibility paths.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I can try to expand on this.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, in fact, after revisiting this in light of some PoC work I've done, I think this needs to be redesigned. I originally anticipated multiple independent topologies. However, I think now we will need a matrix of topologies. I'll rewrite to reflect this updated understanding.

Comment on lines +170 to +172
Some users may already have existing full NMState br-ex configs that they would
like to keep using. This is possible because we are not removing the old
feature, but it also doesn't improve the old, bad, interface.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to make sure I'm following along, this feature is meant to be an "easy button" for configuring NMState br-ex with some set of default values. For those that have custom configurations they would like to apply they continue to use the existing configure-ovs script instead of this feature?

Do you envision a future where the install config is a complete replacement of the configure-ovs script?

If a cluster uses this feature and later decides they need more nuanced configuration, what is their path to doing so?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will still be possible to use configure-ovs or use NMState with full configs delivered via machine-configs. Configure-ovs is less flexible but is the default today, and the existing NMState feature requires significantly more complex configuration to be written by the user. Ideally this will be a hybrid of the two - most of the flexibility of NMState with the simplicity of configure-ovs.

We do hope that eventually this feature will be able to replace configure-ovs completely. It's the main reason we decided to drop #1795 in favor of this. Even if we replace configure-ovs completely, we'll likely still need a field like this for some configurations. If we did the thing described in #1795 we might end up with dead configuration fields that we don't want people to use anymore.

There are actually multiple ways to modify these configs on day 2. The primary method will be to adopt the config into Kubernetes-NMState and modify it using that operator. More dangerous is the disruptive changes mechanism: https://docs.redhat.com/en/documentation/openshift_container_platform/4.20/html/installing_on_bare_metal/bare-metal-post-installation-configuration#making-disruptive-changes-br-ex-bridge.adoc_bare-metal-postinstallation-configuration

I actually should include something about the adoption process into the operator because it turns out to be more complicated in this instance than we expected and is going to require some tooling to support.

@zaneb
Copy link
Copy Markdown
Member

zaneb commented Apr 9, 2026

This seems consistent with what we previously discussed 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants