Skip to content

[DNM] OVS cpu part2 saga revert set1 #2558

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

Open
wants to merge 18 commits into
base: master
Choose a base branch
from

Conversation

tssurya
Copy link
Contributor

@tssurya tssurya commented May 10, 2025

Full QoS Feature

@tssurya tssurya changed the title OVS cpu part2 saga revert set1 [DNM] OVS cpu part2 saga revert set1 May 10, 2025
@openshift-ci openshift-ci bot requested review from abhat and trozet May 10, 2025 18:11
Copy link
Contributor

openshift-ci bot commented May 10, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: tssurya

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 10, 2025
@tssurya
Copy link
Contributor Author

tssurya commented May 10, 2025

/hold

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label May 10, 2025
flavio-fernandes and others added 16 commits May 12, 2025 09:34
This is the CRD for Network QoS, based on the enhancement
ovn-kubernetes/ovn-kubernetes#4366

Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit b07f226)
Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit 8e5ad2b)
cd go-controller && ./hack/update-codegen.sh

Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit 964c66e)
This commit adds a new flag called
enable-network-qos, which can be used
to feature gate the Network QoS feature.

The following flag is exposed in kind
scripts as -nqe or --network-qos-enable:

   kind.sh -nqe
   kind-helm.sh -nqe

Alternatively, it can be enabled via an
exported shell variable:

   OVN_NETWORK_QOS_ENABLE=true kind.sh

Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit 15058e5)
This commit adds the preparation bits needed to be
used by the network qos controller in the following
commit. It also provides sufficient permissions to
the systemaccount to list/watch/patch the new CRD
accordingly.

Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit 11c7f0d)
This commit implements Network QoS controller, based on the enhancement
ovn-kubernetes/ovn-kubernetes#4366

Signed-off-by: Flavio Fernandes <[email protected]>
Signed-off-by: Xiaobin Qu <[email protected]>
(cherry picked from commit 1efaf29)
Signed-off-by: Xiaobin Qu <[email protected]>
(cherry picked from commit 98d4ceb)
e2e skip test: Network QoS feature depends on multi-homing
to exercise secondary NAD

Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit 606206f)
misc changes to address review comments.

Signed-off-by: Xiaobin Qu <[email protected]>
Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit 9770cb1)
Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit c561de8)
use NetworkSelector spec to match net-attach-defs instead of explicitly
specify a list of net-attach-defs.

Signed-off-by: Xiaobin Qu <[email protected]>
Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit a373249)
pkg/ovn/controller/network_qos/network_qos_pod.go:9:2: import "k8s.io/api/core/v1" imported as "v1" but must be "corev1" according to config (importas)
v1 "k8s.io/api/core/v1"
^
pkg/ovn/controller/network_qos/network_qos_test.go:547:26: Error return value of addrset.AddAddresses is not checked (errcheck)
addrset.AddAddresses([]string{"10.194.188.4"})
^
pkg/factory/factory_test.go:41: File is not gci-ed with --skip-generated -s standard -s default -s prefix(k8s.io,sigs.k8s.io) -s prefix(github.com/ovn-org) -s localmodule -s dot --custom-order (gci)
"github.com/ovn-org/ovn-kubernetes/go-controller/pkg/util"
pkg/factory/factory_test.go:44: File is not gci-ed with --skip-generated -s standard -s default -s prefix(k8s.io,sigs.k8s.io) -s prefix(github.com/ovn-org) -s localmodule -s dot --custom-order (gci)
networkqosfake "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/networkqos/v1/apis/clientset/versioned/fake"
pkg/ovn/controller/network_qos/network_qos_test.go:12: File is not gci-ed with --skip-generated -s standard -s default -s prefix(k8s.io,sigs.k8s.io) -s prefix(github.com/ovn-org) -s localmodule -s dot --custom-order (gci)
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
pkg/factory/factory_test.go:2160:21: unused-parameter: parameter 'old' seems to be unused, consider removing or renaming it as _ (revive)
UpdateFunc: func(old, new interface{}) {
^
pkg/ovn/controller/network_qos/network_qos.go:70:43: unused-parameter: parameter 'nqosKey' seems to be unused, consider removing or renaming it as _ (revive)
return c.nqosCache.DoWithLock(key, func(nqosKey string) error {
^
pkg/ovn/controller/network_qos/network_qos.go:84:43: unused-parameter: parameter 'nqosKey' seems to be unused, consider removing or renaming it as _ (revive)
return c.nqosCache.DoWithLock(key, func(nqosKey string) error {
^
pkg/ovn/controller/network_qos/network_qos.go:91:42: unused-parameter: parameter 'nqosKey' seems to be unused, consider removing or renaming it as _ (revive)
return c.nqosCache.DoWithLock(key, func(nqosKey string) error {
^
pkg/ovn/controller/network_qos/types.go:352:28: unused-parameter: parameter 'value' seems to be unused, consider removing or renaming it as _ (revive)
dest.Pods.Range(func(key, value any) bool {
^
pkg/ovn/controller/network_qos/network_qos_test.go:906:12: unused-parameter: parameter 'nbGlobal' seems to be unused, consider removing or renaming it as _ (revive)
p := func(nbGlobal *nbdb.NBGlobal) bool {
^
pkg/ovn/controller/network_qos/network_qos_controller.go:9:2: import "k8s.io/api/core/v1" imported as "v1" but must be "corev1" according to config (importas)
v1 "k8s.io/api/core/v1"
^
level=info msg="[runner/max_same_issues] 14/17 issues with text "File is not gci-ed with --skip-generated -s standard -s default -s prefix(k8s.io,sigs.k8s.io) -s prefix(github.com/ovn-org) -s localmodule -s dot --custom-order" were hidden, use --max-same-issues"
level=info msg="[runner/max_same_issues] 2/5 issues with text "import \"k8s.io/api/core/v1\" imported as \"v1\" but must be \"corev1\" according to config" were hidden, use --max-same-issues"
level=info msg="[runner] Issues before processing: 154, after processing: 15"
level=info msg="[runner] Processors filtering stat (out/in): invalid_issue: 154/154, path_prettifier: 154/154, max_same_issues: 15/31, severity-rules: 15/15, path_prefixer: 15/15, filename_unadjuster: 154/154, identifier_marker: 104/104, source_code: 15/15, cgo: 154/154, exclude: 104/104, exclude-rules: 34/104, diff: 31/31,
max_from_linter: 15/15, fixer: 15/15, sort_results: 15/15, skip_files: 154/154, autogenerated_exclude: 104/113, nolint: 31/34, uniq_by_line: 31/31, max_per_file_from_linter: 31/31, path_shortener: 15/15, skip_dirs: 113/154"
level=info msg="[runner] processing took 20.696604ms with stages: nolint: 9.359103ms, path_prettifier: 4.425669ms, autogenerated_exclude: 3.521318ms, source_code: 1.252048ms, exclude-rules: 986.811µs, identifier_marker: 704.888µs, skip_dirs: 394.602µs, max_same_issues: 15.034µs, cgo: 9.933µs, invalid_issue: 7.606µs, uniq_by_
line: 6.214µs, path_shortener: 4.436µs, filename_unadjuster: 3.748µs, max_from_linter: 3.014µs, max_per_file_from_linter: 672ns, fixer: 346ns, skip_files: 311ns, diff: 231ns, exclude: 218ns, sort_results: 204ns, severity-rules: 104ns, path_prefixer: 94ns"
level=info msg="[runner] linters took 16.440293927s with stages: goanalysis_metalinter: 16.419554906s"
level=info msg="File cache stats: 8 entries of total size 176.9KiB"
level=info msg="Memory: 431 samples, avg is 1072.1MB, max is 4950.4MB"
level=info msg="Execution took 43.614943666s"
pkg/ovn/controller/network_qos/network_qos_namespace.go:8:2: import "k8s.io/api/core/v1" imported as "v1" but must be "corev1" according to config (importas)
v1 "k8s.io/api/core/v1"
^
pkg/ovn/controller/network_qos/network_qos_node.go:10:2: import "k8s.io/api/core/v1" imported as "v1" but must be "corev1" according to config (importas)
v1 "k8s.io/api/core/v1"
^
pkg/ovn/controller/network_qos/network_qos_ovnnb.go:10:2: import "github.com/ovn-org/libovsdb/ovsdb" imported as "libovsdb" but must be "" according to config (importas)
libovsdb "github.com/ovn-org/libovsdb/ovsdb"
^
pkg/ovn/controller/network_qos/types.go:13:2: import "k8s.io/apimachinery/pkg/api/errors" imported without alias but must be with alias "apierrors" according to config (importas)
"k8s.io/apimachinery/pkg/api/errors"
^

Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit 4f2f5a1)
change `port` in classifier to `ports` which contains a list of
protocol&port combinations.

Signed-off-by: Xiaobin Qu <[email protected]>
Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit 7ec0249)
cd go-controller && ./hack/update-codegen.sh

Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit ef217b1)
- namespace/pod/node handlers detect possible changes and trigger
  reconciliation by putting networkqos in event queue.
- reconcile networkqos rules in networkqos handler only

Signed-off-by: Xiaobin Qu <[email protected]>
Signed-off-by: Flavio Fernandes <[email protected]>
(cherry picked from commit 7f34252)
Signed-off-by: Xiaobin Qu <[email protected]>
(cherry picked from commit 21fd64a)
@tssurya tssurya force-pushed the OVS-CPU-part2-saga-revert-set1 branch from 17b0bb6 to a000184 Compare May 12, 2025 07:37
tssurya added 2 commits May 12, 2025 09:50
This reverts commit 0ee80bf.

Conflict in gateway_shared_intf.go because of not having
https://github.com/ovn-kubernetes/ovn-kubernetes/pull/5153/files#diff-d3aa58d9b58a0a09264f072df46ab01d0501eb508c4656411ae2dc1ac68fb3c4

Signed-off-by: Surya Seetharaman <[email protected]>
(cherry picked from commit ebb7339)
(cherry picked from commit b3760a1)
This reverts commit b1525c3.

Signed-off-by: Surya Seetharaman <[email protected]>
(cherry picked from commit 936e621)
(cherry picked from commit def2909)
@tssurya
Copy link
Contributor Author

tssurya commented May 12, 2025

/payload 4.20 nightly blocking

Copy link
Contributor

openshift-ci bot commented May 12, 2025

@tssurya: trigger 11 job(s) of type blocking for the nightly release of OCP 4.20

  • periodic-ci-openshift-release-master-ci-4.20-e2e-aws-upgrade-ovn-single-node
  • periodic-ci-openshift-release-master-nightly-4.20-e2e-aws-ovn-upgrade-fips
  • periodic-ci-openshift-release-master-ci-4.20-e2e-azure-ovn-upgrade
  • periodic-ci-openshift-release-master-ci-4.20-upgrade-from-stable-4.19-e2e-gcp-ovn-rt-upgrade
  • periodic-ci-openshift-hypershift-release-4.20-periodics-e2e-aws-ovn-conformance
  • periodic-ci-openshift-release-master-nightly-4.20-e2e-aws-ovn-serial
  • periodic-ci-openshift-release-master-ci-4.20-e2e-aws-ovn-techpreview
  • periodic-ci-openshift-release-master-ci-4.20-e2e-aws-ovn-techpreview-serial
  • periodic-ci-openshift-release-master-nightly-4.20-fips-payload-scan
  • periodic-ci-openshift-release-master-nightly-4.20-e2e-metal-ipi-ovn-bm
  • periodic-ci-openshift-release-master-nightly-4.20-e2e-metal-ipi-ovn-ipv6

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/f89f4770-2f07-11f0-83ad-2891a4479a7f-0

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 15, 2025
@openshift-merge-robot
Copy link
Contributor

PR needs rebase.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants