Skip to content

Conversation

@everettraven
Copy link
Contributor

@everettraven everettraven commented Sep 15, 2025

Steps to run dummy example:

export OPENSHIFT_TESTS_SKIP_STABLE_CLUSTER=true
export OPENSHIFT_SKIP_EXTERNAL_TESTS=true
export KUBECONFIG={pathToKubeConfig}

./openshift-tests run openshift/dummy-suite --monitor=watch-namespaces --run-multiple

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Sep 15, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 15, 2025

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci openshift-ci bot added the vendor-update Touching vendor dir or related files label Sep 15, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 15, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

The full list of commands accepted by this bot can be found 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

@stbenjam
Copy link
Member

This is an interesting experiment; openshift-tests use of ginkgo has always been weird because of the per-process isolation. I would be curious if openshift/conformance behaves well. IIRC, a number of tests don't do proper clean up ballooning memory usage and even sometimes touch global state that affects other tests.

@stbenjam
Copy link
Member

There are some alternatives to BeforeAll hooks called for in the OTE enhancement, specifically configs: https://github.com/openshift/enhancements/blob/master/enhancements/testing/openshift-tests-extension.md

I'm not sure how the run-multiple will behave with some planned features like intelligent scheduling with exclusions, memory/cpu requirements, etc.

@everettraven
Copy link
Contributor Author

everettraven commented Sep 16, 2025

I'm not sure how the run-multiple will behave with some planned features like intelligent scheduling with exclusions, memory/cpu requirements, etc

I'd be curious to learn more about what all these planned features entail. I've not read through the OTE enhancement in its entirety yet, so if it is explained in more detail there I'll likely see that soon :).

This is an interesting experiment; openshift-tests use of ginkgo has always been weird because of the per-process isolation. I would be curious if openshift/conformance behaves well. IIRC, a number of tests don't do proper clean up ballooning memory usage and even sometimes touch global state that affects other tests.

The ballooning memory usage is something that seems a little more challenging to prevent, and makes sense as a reason for process isolation, but I wonder if that is more of a signal that we should be enforcing implementations of tests to clean up after themselves appropriately?

In theory, the approach I've taken here could still run batches of tests in multiple processes if we wanted to run more tests at a time in an individual process. Ginkgo also has parallelization logic (see https://onsi.github.io/ginkgo/#spec-parallelization)

For tests that don't play nice with other tests, Ginkgo has the notion of spec decorators like Serial (https://onsi.github.io/ginkgo/#serial-specs) that signals to Ginkgo that those particular specs should only be run in series and cannot run with any parallel tests.

I suspect running openshift/conformance as configured today against this change would probably fail, but with the right tweaks might work. I can certainly explore this a bit more in the future.

Signed-off-by: Bryce Palmer <[email protected]>
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Sep 26, 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.

"io"
"strings"
"sync"
//"sync"
Copy link
Contributor

Choose a reason for hiding this comment

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

To be removed

serial, parallel := splitTests(tests, isSerialTest)

if runMultiple {
// TODO: can combine this using ginkgo's serial label?
Copy link
Contributor

Choose a reason for hiding this comment

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

What's the benefit?

Copy link
Contributor Author

@everettraven everettraven Oct 13, 2025

Choose a reason for hiding this comment

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

Ginkgo already has native logic for handling parallel and serial tests. See https://onsi.github.io/ginkgo/#serial-specs

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 18, 2025

@everettraven: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gcp-csi 3ad15cc link true /test e2e-gcp-csi
ci/prow/e2e-aws-csi 3ad15cc link true /test e2e-aws-csi
ci/prow/go-verify-deps 3ad15cc link true /test go-verify-deps
ci/prow/e2e-aws-ovn-microshift 3ad15cc link true /test e2e-aws-ovn-microshift
ci/prow/e2e-aws-ovn-microshift-serial 3ad15cc link true /test e2e-aws-ovn-microshift-serial
ci/prow/e2e-metal-ipi-ovn-ipv6 3ad15cc link true /test e2e-metal-ipi-ovn-ipv6

Full PR test history. Your PR dashboard.

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.

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

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. vendor-update Touching vendor dir or related files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants