openshift / machine-config-operator

Apache License 2.0
245 stars 402 forks source link

OCPBUGS-39226: Enable the use of Linux Bridge as the ovs default port connection #4545

Closed wizhaoredhat closed 1 week ago

wizhaoredhat commented 3 weeks ago

The linux bridge can be configured to add a virtual switch between one or many ports. This can be done by a simple machine config that adds: "bridge=br0:enpf0,enpf2 ip=br0:dhcp" to the the kernel command line options which will be processed by dracut.

The use case of adding such a virtual bridge for simple IEEE802.1 switching is to support PCIe devices that act as co-processors in a baremetal server. For example:

    --------         ---------------------
    | Host |  PCIe   |    Co-processor   |
    |  eth0|<------->|enpf0 <-br0-> enpf2|<---> network
    |      |         |                   |
    --------         ---------------------

This co-processor could be a "DPU" network interface card. Thus the co-processor can be part of the same underlay network as the cluster and pods can be scheduled on the Host and the Co-processor. This allows for pods to be offloaded to the co-processor for scaling workloads.

wizhaoredhat commented 3 weeks ago

/cc @jcaamano

wizhaoredhat commented 3 weeks ago

/retest

bn222 commented 3 weeks ago

/lgtm

wizhaoredhat commented 3 weeks ago

/retest

jcaamano commented 3 weeks ago

/lgtm

wizhaoredhat commented 2 weeks ago

/retest

wizhaoredhat commented 2 weeks ago

@yuqi-zhang How do I get the acknowledge-critical-fixes-only, approved labels?

The acknowledge-critical-fixes-only label looks strange for pushing a change to master.

wizhaoredhat commented 2 weeks ago

/retitle NO-JIRA: Enable the use of Linux Bridge as the ovs default port connection

openshift-ci-robot commented 2 weeks ago

@wizhaoredhat: This pull request explicitly references no jira issue.

In response to [this](https://github.com/openshift/machine-config-operator/pull/4545): >The linux bridge can be configured to add a virtual switch between one or many ports. This can be done by a simple machine config that adds: > "bridge=br0:enpf0,enpf2 ip=br0:dhcp" >to the the kernel command line options which will be processed by dracut. > >The use case of adding such a virtual bridge for simple IEEE802.1 switching is to support PCIe devices that act as co-processors in a baremetal server. For example: > >``` > -------- --------------------- > | Host | PCIe | Co-processor | > | eth0|<------->|enpf0 <-br0-> enpf2|<---> network > | | | | > -------- --------------------- >``` > >This co-processor could be a "DPU" network interface card. Thus the co-processor can be part of the same underlay network as the cluster and pods can be scheduled on the Host and the Co-processor. This allows for pods to be offloaded to the co-processor for scaling workloads. > Instructions for interacting with me using PR comments are available [here](https://prow.ci.openshift.org/command-help?repo=openshift%2Fmachine-config-operator). If you have questions or suggestions related to my behavior, please file an issue against the [openshift-eng/jira-lifecycle-plugin](https://github.com/openshift-eng/jira-lifecycle-plugin/issues/new) repository.
yuqi-zhang commented 2 weeks ago

@wizhaoredhat the label can be applied by almost anyone I think (or maybe just repo owners), see the email titled Enabling acknowledge-critical-fixes-only label requirement in aos-devel for explanation.

I can certainly apply this label but since this is a no-jira PR, that normally indicates a trivial change or doc update that doesn't affect much and is not urgent to merge. Is this a feature or a bugfix instead? If so we should probably link a Jira to properly context.

wizhaoredhat commented 2 weeks ago

@yuqi-zhang good point. I think this a feature that can be tested. Would this be an OCP BUG. I can create this.

yuqi-zhang commented 2 weeks ago

Based on your description I think either could work. I suggest opening an OCPBUGS card if you want to backport this to previous versions (current master would be 4.18) or a feature card if you do not plan to backport.

wizhaoredhat commented 2 weeks ago

/retitle OCPBUGS-39226: Enable the use of Linux Bridge as the ovs default port connection

openshift-ci-robot commented 2 weeks ago

@wizhaoredhat: This pull request references Jira Issue OCPBUGS-39226, which is invalid:

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

In response to [this](https://github.com/openshift/machine-config-operator/pull/4545): >The linux bridge can be configured to add a virtual switch between one or many ports. This can be done by a simple machine config that adds: > "bridge=br0:enpf0,enpf2 ip=br0:dhcp" >to the the kernel command line options which will be processed by dracut. > >The use case of adding such a virtual bridge for simple IEEE802.1 switching is to support PCIe devices that act as co-processors in a baremetal server. For example: > >``` > -------- --------------------- > | Host | PCIe | Co-processor | > | eth0|<------->|enpf0 <-br0-> enpf2|<---> network > | | | | > -------- --------------------- >``` > >This co-processor could be a "DPU" network interface card. Thus the co-processor can be part of the same underlay network as the cluster and pods can be scheduled on the Host and the Co-processor. This allows for pods to be offloaded to the co-processor for scaling workloads. > Instructions for interacting with me using PR comments are available [here](https://prow.ci.openshift.org/command-help?repo=openshift%2Fmachine-config-operator). If you have questions or suggestions related to my behavior, please file an issue against the [openshift-eng/jira-lifecycle-plugin](https://github.com/openshift-eng/jira-lifecycle-plugin/issues/new) repository.
wizhaoredhat commented 2 weeks ago

/jira refresh

openshift-ci-robot commented 2 weeks ago

@wizhaoredhat: This pull request references Jira Issue OCPBUGS-39226, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug * bug is open, matching expected state (open) * bug target version (4.18.0) matches configured target version for branch (4.18.0) * bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)

Requesting review from QA contact: /cc @anuragthehatter

In response to [this](https://github.com/openshift/machine-config-operator/pull/4545#issuecomment-2318496978): >/jira refresh Instructions for interacting with me using PR comments are available [here](https://prow.ci.openshift.org/command-help?repo=openshift%2Fmachine-config-operator). If you have questions or suggestions related to my behavior, please file an issue against the [openshift-eng/jira-lifecycle-plugin](https://github.com/openshift-eng/jira-lifecycle-plugin/issues/new) repository.
wizhaoredhat commented 2 weeks ago

Based on your description I think either could work. I suggest opening an OCPBUGS card if you want to backport this to previous versions (current master would be 4.18) or a feature card if you do not plan to backport.

@yuqi-zhang Good point! I think we might want this in 4.17. I created the OCPBUG targeting 4.18. Please take a look to see if this can be merged now.

openshift-ci[bot] commented 2 weeks ago

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bn222, jcaamano, wizhaoredhat, yuqi-zhang

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: - ~~[OWNERS](https://github.com/openshift/machine-config-operator/blob/master/OWNERS)~~ [yuqi-zhang] Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment
openshift-ci-robot commented 2 weeks ago

/retest-required

Remaining retests: 0 against base HEAD eeea7495bc40d0f73dd9c2ba030e678ec598d8b1 and 2 for PR HEAD c66a5aca15fca99f18614c14aad360618d0b34d1 in total

wizhaoredhat commented 2 weeks ago

/retest

wizhaoredhat commented 2 weeks ago

/test

openshift-ci[bot] commented 2 weeks ago

@wizhaoredhat: The /test command needs one or more targets. The following commands are available to trigger required jobs:

The following commands are available to trigger optional jobs:

Use /test all to run the following jobs that were automatically triggered:

In response to [this](https://github.com/openshift/machine-config-operator/pull/4545#issuecomment-2322628912): >/test Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
wizhaoredhat commented 2 weeks ago

/retest

wizhaoredhat commented 2 weeks ago

/retest

openshift-ci-robot commented 1 week ago

/retest-required

Remaining retests: 0 against base HEAD eeea7495bc40d0f73dd9c2ba030e678ec598d8b1 and 2 for PR HEAD c66a5aca15fca99f18614c14aad360618d0b34d1 in total

openshift-ci-robot commented 1 week ago

/retest-required

Remaining retests: 0 against base HEAD eeea7495bc40d0f73dd9c2ba030e678ec598d8b1 and 2 for PR HEAD c66a5aca15fca99f18614c14aad360618d0b34d1 in total

wizhaoredhat commented 1 week ago

/retest

openshift-ci-robot commented 1 week ago

/retest-required

Remaining retests: 0 against base HEAD eeea7495bc40d0f73dd9c2ba030e678ec598d8b1 and 2 for PR HEAD c66a5aca15fca99f18614c14aad360618d0b34d1 in total

openshift-ci-robot commented 1 week ago

/retest-required

Remaining retests: 0 against base HEAD eeea7495bc40d0f73dd9c2ba030e678ec598d8b1 and 2 for PR HEAD c66a5aca15fca99f18614c14aad360618d0b34d1 in total

openshift-ci[bot] commented 1 week ago

@wizhaoredhat: all tests passed!

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
openshift-ci-robot commented 1 week ago

@wizhaoredhat: Jira Issue OCPBUGS-39226: All pull requests linked via external trackers have merged:

Jira Issue OCPBUGS-39226 has been moved to the MODIFIED state.

In response to [this](https://github.com/openshift/machine-config-operator/pull/4545): >The linux bridge can be configured to add a virtual switch between one or many ports. This can be done by a simple machine config that adds: > "bridge=br0:enpf0,enpf2 ip=br0:dhcp" >to the the kernel command line options which will be processed by dracut. > >The use case of adding such a virtual bridge for simple IEEE802.1 switching is to support PCIe devices that act as co-processors in a baremetal server. For example: > >``` > -------- --------------------- > | Host | PCIe | Co-processor | > | eth0|<------->|enpf0 <-br0-> enpf2|<---> network > | | | | > -------- --------------------- >``` > >This co-processor could be a "DPU" network interface card. Thus the co-processor can be part of the same underlay network as the cluster and pods can be scheduled on the Host and the Co-processor. This allows for pods to be offloaded to the co-processor for scaling workloads. > Instructions for interacting with me using PR comments are available [here](https://prow.ci.openshift.org/command-help?repo=openshift%2Fmachine-config-operator). If you have questions or suggestions related to my behavior, please file an issue against the [openshift-eng/jira-lifecycle-plugin](https://github.com/openshift-eng/jira-lifecycle-plugin/issues/new) repository.
openshift-bot commented 1 week ago

[ART PR BUILD NOTIFIER]

Distgit: ose-machine-config-operator This PR has been included in build ose-machine-config-operator-container-v4.18.0-202409041514.p0.ga3d9b1f.assembly.stream.el9. All builds following this will include this PR.

wizhaoredhat commented 1 week ago

/cherry-pick release-4.16

openshift-cherrypick-robot commented 1 week ago

@wizhaoredhat: new pull request created: #4563

In response to [this](https://github.com/openshift/machine-config-operator/pull/4545#issuecomment-2332820607): >/cherry-pick release-4.16 Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
wizhaoredhat commented 1 week ago

/cherry-pick release-4.17

openshift-cherrypick-robot commented 1 week ago

@wizhaoredhat: new pull request created: #4567

In response to [this](https://github.com/openshift/machine-config-operator/pull/4545#issuecomment-2334192736): >/cherry-pick release-4.17 Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.