Skip to content

WINC-1777: [ote] Add OTE extension binary skeleton#3874

Merged
openshift-merge-bot[bot] merged 1 commit intoopenshift:masterfrom
weinliu:WINC-1536-ote-migration
Apr 2, 2026
Merged

WINC-1777: [ote] Add OTE extension binary skeleton#3874
openshift-merge-bot[bot] merged 1 commit intoopenshift:masterfrom
weinliu:WINC-1536-ote-migration

Conversation

@weinliu
Copy link
Copy Markdown
Contributor

@weinliu weinliu commented Mar 18, 2026

Summary

This PR introduces the initial OTE (OpenShift Tests Extension) binary for
Windows Containers tests, following the same pattern as MCO
(openshift/machine-config-operator#5108) and NTO
(openshift/cluster-node-tuning-operator#1436).

OCP-37362 is used as a pilot case to validate the OTE framework end-to-end.
Tests are registered as plain Go functions via et.ExtensionTestSpecs
(no OpenShift Ginkgo fork required — uses upstream github.com/onsi/ginkgo/v2).

Changes

  • cmd/windows-machine-config-operator-tests-ext/main.go: OTE binary with
    four suites (windows/all, windows/parallel, windows/serial, windows/storage).
    Specs registered manually; no OpenShift Ginkgo fork required.
  • test/extended/winc.go: OCP-37362 as a plain Go function returning error
  • test/extended/utils/cli.go: lightweight oc wrapper; AsAdmin() wired to
    --as=system:admin
  • Makefile: add build-tests-ext target with mkdir -p guard
  • go.mod: add openshift-tests-extension; upstream ginkgo v2.22.2 used
    directly, no fork replace directive

Questions for Mansi

  1. Registration path: Payload path (add to openshift/origin extension
    registry like MCO/NTO) or non-payload ImageStream path (TRT-2295: admit and extract non-payload OTE binaries origin#30863)?

  2. Test client: Should we reuse WMCO's existing test/e2e/ infrastructure
    or keep the minimal wrapper in test/extended/utils/?

Verification

make build-tests-ext                                     OK
./windows-machine-config-operator-tests-ext list         1 test listed
run-test OCP-37362 — PASSED (Azure IPI, OCP 4.20, WMCO v10.20.1)
$ ./windows-machine-config-operator-tests-ext run-test "[sig-windows] Windows_Containers Author:rrasouli-Smokerun-Medium-37362-[wmco] wmco using correct golang version [OTP]"

  Will run 1 of 1 specs
  STEP: Fetch the correct golang version from cluster
  STEP: Compare with golang version in WMCO logs
  SUCCESS! -- 1 Passed | 0 Failed

  { "result": "passed", "duration": 1153 }

Next steps

Jira: WINC-1777

cc @mansikulkarni96

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 18, 2026

Important

Review skipped

Auto reviews are limited based on label configuration.

🚫 Review skipped — only excluded labels are configured. (2)
  • do-not-merge/work-in-progress
  • do-not-merge/hold

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 45394616-d720-496c-819c-c056fee99ea6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This pull request introduces a new OpenShift Tests Extension binary for Windows machine-config-operator tests. Changes include a Makefile target to build the extension binary, a new main.go entry point that registers test suites with Ginkgo-based qualifiers and platform-based filters, updates to go.mod for Ginkgo v2 and OpenShift Tests Extension framework dependencies, and test infrastructure consisting of a suite entry point, CLI wrapper utility for oc command execution, and an initial Windows Containers test validating WMCO version information.

🚥 Pre-merge checks | ✅ 6 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Go Best Practices & Build Tags ⚠️ Warning New Go files lack required build tags and have inconsistent error handling patterns that violate cross-platform Go best practices. Add //go:build windows to main.go for platform isolation. Ensure consistent error wrapping with fmt.Errorf %w throughout cli.go and test utilities.
Platform-Specific Requirements ⚠️ Warning PR introduces OTE test infrastructure with platform filtering capability but lacks platform-specific documentation and constraints implementation. Add platform-specific documentation in README, annotate tests with platform constraints, add inline code comments in main.go, and ensure future tests include platform constraint comments.
✅ Passed checks (6 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Security: Secrets, Ssh & Csr ✅ Passed No Azure/AWS/GCP credentials, secrets, tokens, or passwords detected in test and cmd directories.
Kubernetes Controller Patterns ✅ Passed Pull request introduces test infrastructure (OTE binary, Ginkgo suites, test utilities) with zero controller patterns detected in code—only in vendor dependencies.
Windows Service Management ✅ Passed This custom check is not applicable to the provided pull request. The PR introduces an OpenShift Tests Extension (OTE) binary skeleton for Windows Containers tests, test infrastructure utilities, and build targets—it contains no code that interacts with Windows Service Control Manager, manages service dependencies, handles service startup/shutdown, manages service descriptions, or documents reboot requirements.
Title check ✅ Passed The title accurately reflects the primary change: introducing an OTE (OpenShift Tests Extension) binary skeleton for Windows Containers tests, which is the main objective across all modified files.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@weinliu weinliu force-pushed the WINC-1536-ote-migration branch from 34dcff4 to b2c3b86 Compare March 18, 2026 03:01
@weinliu weinliu changed the title [WINC-1536] Add OTE extension binary skeleton for Windows Containers tests [WINC-1777] Add OTE extension binary skeleton for Windows Containers tests Mar 18, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@cmd/windows-machine-config-operator-tests-ext/main.go`:
- Around line 41-55: The suites named in the ext.AddSuite calls
("windows/conformance/parallel" and "windows/conformance/serial") are only
filtering on the [sig-windows] and serial markers, so they will pick up specs
that aren't marked as conformance; either add a true conformance qualifier to
the e.Suite.Qualifiers (for example include a selector like
name.contains("[Conformance]") or whichever conformance token your tests use) or
rename the e.Suite.Name values to remove "conformance" (e.g.,
"windows/sig-windows/parallel" and "windows/sig-windows/serial") so the suite
name doesn't imply a conformance-only selection; update the two ext.AddSuite
blocks accordingly.

In `@Makefile`:
- Around line 108-111: The build-tests-ext Make target fails on a clean checkout
because it writes to ${OUTPUT_DIR}/bin/... without ensuring the bin directory
exists; update the build-tests-ext recipe to create the directory before running
go build (e.g., run mkdir -p ${OUTPUT_DIR}/bin at the start of the
build-tests-ext recipe) so that the GO_COMPLIANCE_POLICY="exempt_all" go build
-o ${OUTPUT_DIR}/bin/windows-machine-config-operator-tests-ext
./cmd/windows-machine-config-operator-tests-ext step can always create the
output file.

In `@test/extended/utils/cli.go`:
- Around line 35-39: The AsAdmin() method only sets CLI.asAdmin but Run (the
CLI.Run or RunRetriable methods) never uses that flag, so calls like in
test/extended/winc.go still run with the caller kubeconfig; update the CLI.Run
path resolution to honor CLI.asAdmin by switching to the admin kubeconfig/oc
wrapper when asAdmin==true (e.g., select the admin oc binary/path or pass
--kubeconfig pointing to the cluster-admin file) or alternatively remove
AsAdmin() and all callers; modify the Run/RunRetriable implementation to consult
the asAdmin field (and any helper that builds the oc command) so the executed
command actually runs as cluster-admin when AsAdmin() is used.

In `@test/extended/winc.go`:
- Around line 3-4: The test currently scrapes the /version response by
line-splitting (using strings.SplitN and parts[:2]) which can panic on compact
JSON; update the code that constructs goVersion (the logic using strings.SplitN,
parts and lines) to unmarshal the HTTP /version response into a struct (e.g.,
struct { GoVersion string `json:"goVersion"` }) or map[string]string, read the
goVersion field, and then validate the version string by splitting on "." and
checking length before slicing; replace the fragile SplitN/parts logic with this
JSON-unmarshal + safe validation to avoid panics and handle compact responses
robustly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2c42b3a4-e686-402e-807d-3507be7e7cfd

📥 Commits

Reviewing files that changed from the base of the PR and between f3be5c1 and 34dcff4.

⛔ Files ignored due to path filters (294)
  • go.sum is excluded by !**/*.sum, !go.sum
  • vendor/github.com/go-task/slim-sprig/v3/.editorconfig is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/LICENSE.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/crypto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/date.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/defaults.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/dict.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/functions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/network.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/numeric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/reflect.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/regex.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/strings.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/go-task/slim-sprig/v3/url.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/CONTRIBUTORS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/index.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/legacy_java_profile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/legacy_profile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/merge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/profile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/proto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/pprof/profile/prune.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/OWNERS is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/RELEASING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/config/deprecated.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/core_dsl_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/formatter/formatter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/counter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/failer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/focus.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/global/init.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/group.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/node.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/ordering.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/report_entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/spec_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/suite_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/tree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/internal/writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/json_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/reporter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporters/teamcity_report.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/table_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/code_location.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/deprecated_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/deprecation_support.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/enum_support.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/file_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/flags.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/label_filter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/report_entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/types_patch.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/ginkgo/v2/types/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/RELEASING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/format/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/gomega_dsl.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/internal/assertion.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/internal/async_assertion.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/internal/duration_bundle.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/internal/gomega.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/internal/gutil/post_ioutil.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/internal/gutil/using_ioutil.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/internal/polling_signal_error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/internal/vetoptdesc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/and.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/assignable_to_type_of_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/attributes_slice.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_a_directory.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_a_regular_file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_an_existing_file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_closed_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_comparable_to_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_element_of_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_empty_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_equivalent_to_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_false_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_identical_to.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_key_of_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_nil_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_numerically_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_sent_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_temporally_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_true_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/be_zero_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/consist_of.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/contain_element_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/contain_elements_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/contain_substring_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/equal_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_cap_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_each_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_exact_elements.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_existing_field_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_field.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_http_body_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_http_header_with_value_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_http_status_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_key_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_key_with_value_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_len_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_occurred_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_prefix_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_suffix_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/have_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/internal/miter/type_support_iter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/internal/miter/type_support_noiter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/match_error_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/match_json_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/match_regexp_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/match_xml_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/match_yaml_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/not.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/or.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/panic_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/receive_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/satisfy_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/semi_structured_data_support.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/succeed_matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/bipartitegraph.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/bipartitegraphmatching.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/support/goraph/edge/edge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/support/goraph/node/node.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/support/goraph/util/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/type_support.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/matchers/with_transform.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/onsi/gomega/types/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdimages/cmdimages.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdinfo/info.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdlist/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdrun/runsuite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdrun/runtest.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/cmd/cmdupdate/update.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/dbtime/time.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extension.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/environment.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/result.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/result_writer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/spec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/task.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/extensiontests/viewer.html is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/registry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/extension/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/component.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/concurrency.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/environment.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/names.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/output.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/flags/suite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/logging.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/parallel.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/junit/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/byte.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/empty.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int32.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/int64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/set.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/util/sets/string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/openshift-eng/openshift-tests-extension/pkg/version/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pkg/errors/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pkg/errors/.travis.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pkg/errors/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pkg/errors/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pkg/errors/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pkg/errors/appveyor.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pkg/errors/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pkg/errors/go113.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/pkg/errors/stack.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/context/context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/net/html/charset/charset.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/charmap/charmap.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/charmap/tables.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/htmlindex/map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/htmlindex/tables.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/japanese/all.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/japanese/eucjp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/japanese/iso2022jp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/japanese/shiftjis.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/japanese/tables.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/korean/euckr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/korean/tables.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/simplifiedchinese/all.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/traditionalchinese/big5.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/text/encoding/traditionalchinese/tables.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/tools/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/tools/PATENTS is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/tools/cover/profile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/tools/go/ast/edge/edge.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/tools/go/ast/inspector/cursor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/tools/go/ast/inspector/inspector.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/tools/go/ast/inspector/iter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/tools/go/ast/inspector/typeof.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (6)
  • Makefile
  • cmd/windows-machine-config-operator-tests-ext/main.go
  • go.mod
  • test/extended/suite_test.go
  • test/extended/utils/cli.go
  • test/extended/winc.go

@weinliu weinliu force-pushed the WINC-1536-ote-migration branch 3 times, most recently from 9eb7b84 to 67aa255 Compare March 18, 2026 04:49
@rrasouli
Copy link
Copy Markdown

@weinliu Did you use Ginkgo upstream? https://github.com/onsi/ginkgo

@weinliu weinliu force-pushed the WINC-1536-ote-migration branch from 6bd6d4d to d284273 Compare March 19, 2026 12:57
@weinliu
Copy link
Copy Markdown
Contributor Author

weinliu commented Mar 19, 2026

@weinliu Did you use Ginkgo upstream? https://github.com/onsi/ginkgo
@rrasouli Nice catch! Reworked to use upstream Ginkgo by manually registering ExtensionTestSpecs instead of BuildExtensionTestSpecsFromOpenShiftGinkgoSuite() — no OpenShift fork needed now. Updated in the latest commit.

@weinliu weinliu force-pushed the WINC-1536-ote-migration branch from 575ac69 to 6154f66 Compare March 19, 2026 16:04
@weinliu weinliu force-pushed the WINC-1536-ote-migration branch from 4f4e856 to 9b3427c Compare March 24, 2026 22:39
@weinliu
Copy link
Copy Markdown
Contributor Author

weinliu commented Mar 25, 2026

@mansikulkarni96 Konflux is passing now with COPY test test added to the Containerfile.

Quick question on Q2 — should we reuse the existing test/e2e/ infrastructure (providers, clusterinfo, etc.) for future test migration, or keep the minimal oc wrapper in test/extended/utils/? Asking since tests like SSH and MachineSet provisioning will need richer client support down the line.

@weinliu weinliu force-pushed the WINC-1536-ote-migration branch 2 times, most recently from ff38723 to d83aab6 Compare March 27, 2026 04:05
@openshift-ci openshift-ci bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 27, 2026
@weinliu weinliu force-pushed the WINC-1536-ote-migration branch from d83aab6 to 5c275f9 Compare March 27, 2026 04:35
@openshift-ci openshift-ci bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 27, 2026
Copy link
Copy Markdown
Member

@mansikulkarni96 mansikulkarni96 left a comment

Choose a reason for hiding this comment

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

@weinliu the azure-upgrade-test is failing to get deployment up, can you PTAL?

@weinliu weinliu force-pushed the WINC-1536-ote-migration branch from 8e2898d to 0abfaba Compare March 27, 2026 18:04
@weinliu weinliu force-pushed the WINC-1536-ote-migration branch from 4585545 to 74d9113 Compare March 27, 2026 21:10
@weinliu
Copy link
Copy Markdown
Contributor Author

weinliu commented Mar 27, 2026

/retest

@weinliu
Copy link
Copy Markdown
Contributor Author

weinliu commented Mar 28, 2026

/test all

@weinliu
Copy link
Copy Markdown
Contributor Author

weinliu commented Mar 28, 2026

@weinliu the azure-upgrade-test is failing to get deployment up, can you PTAL?
@mansikulkarni96 azure-upgrade-test passed:
https://prow.ci.openshift.org/view/gs/test-platform-results/pr-logs/pull/openshift_windows-machine-config-operator/3874/pull-ci-openshift-windows-machine-config-operator-master-azure-e2e-upgrade/2037696386836729856

@mansikulkarni96
Copy link
Copy Markdown
Member

/approve

@weinliu
Copy link
Copy Markdown
Contributor Author

weinliu commented Mar 31, 2026

@weinliu, please open a PR in the release repo to skip running the e2e test suite for changes under the /ote dir

see skip_if_only_changed in https://github.com/openshift/release/blob/main/ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-master.yaml#L80

Done — opened openshift/release#77183 to add ote/ to skip_if_only_changed for all presubmit jobs.

Comment on lines +4 to +6
approvers:
- rrasouli
- weinliu
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.

Please also add @mansikulkarni96 as backup

weinliu added a commit to weinliu/release that referenced this pull request Mar 31, 2026
Add ote/ to skip_if_only_changed pattern for e2e presubmit jobs so that
changes to test extension code under ote/ do not trigger the full e2e
test suite. lint, unit, and security still run for ote/ changes since
the directory contains Go code.

Related: openshift/windows-machine-config-operator#3874
@weinliu weinliu force-pushed the WINC-1536-ote-migration branch from f140636 to 5557265 Compare March 31, 2026 17:52
weinliu added a commit to weinliu/origin that referenced this pull request Mar 31, 2026
Register wmco-tests-ext.gz in the extension registry so that
openshift-tests can discover and invoke WINC OTE tests automatically
in Prow periodic/presubmit jobs.

Related: openshift/windows-machine-config-operator#3874
weinliu added a commit to weinliu/release that referenced this pull request Mar 31, 2026
Add ote/ to skip_if_only_changed for e2e presubmit jobs so that changes
to test extension code under ote/ do not trigger the full e2e test suite.
lint, unit, and security still run since ote/ contains Go code.

Also regenerate presubmit job configs to match.

Related: openshift/windows-machine-config-operator#3874
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Mar 31, 2026

@weinliu: This pull request references WINC-1777 which is a valid jira issue.

Details

In response to this:

Summary

This PR introduces the initial OTE (OpenShift Tests Extension) binary for
Windows Containers tests, following the same pattern as MCO
(openshift/machine-config-operator#5108) and NTO
(openshift/cluster-node-tuning-operator#1436).

OCP-37362 is used as a pilot case to validate the OTE framework end-to-end.
Tests are registered as plain Go functions via et.ExtensionTestSpecs
(no OpenShift Ginkgo fork required — uses upstream github.com/onsi/ginkgo/v2).

Changes

  • cmd/windows-machine-config-operator-tests-ext/main.go: OTE binary with
    four suites (windows/all, windows/parallel, windows/serial, windows/storage).
    Specs registered manually; no OpenShift Ginkgo fork required.
  • test/extended/winc.go: OCP-37362 as a plain Go function returning error
  • test/extended/utils/cli.go: lightweight oc wrapper; AsAdmin() wired to
    --as=system:admin
  • Makefile: add build-tests-ext target with mkdir -p guard
  • go.mod: add openshift-tests-extension; upstream ginkgo v2.22.2 used
    directly, no fork replace directive

Questions for Mansi

  1. Registration path: Payload path (add to openshift/origin extension
    registry like MCO/NTO) or non-payload ImageStream path (TRT-2295: admit and extract non-payload OTE binaries origin#30863)?

  2. Test client: Should we reuse WMCO's existing test/e2e/ infrastructure
    or keep the minimal wrapper in test/extended/utils/?

Verification

make build-tests-ext                                     OK
./windows-machine-config-operator-tests-ext list         1 test listed
run-test OCP-37362 — PASSED (Azure IPI, OCP 4.20, WMCO v10.20.1)
$ ./windows-machine-config-operator-tests-ext run-test "[sig-windows] Windows_Containers Author:rrasouli-Smokerun-Medium-37362-[wmco] wmco using correct golang version [OTP]"

 Will run 1 of 1 specs
 STEP: Fetch the correct golang version from cluster
 STEP: Compare with golang version in WMCO logs
 SUCCESS! -- 1 Passed | 0 Failed

 { "result": "passed", "duration": 1153 }

Next steps

Jira: WINC-1777

cc @mansikulkarni96

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.

@weinliu weinliu marked this pull request as ready for review April 1, 2026 00:37
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 1, 2026
@openshift-ci openshift-ci bot requested a review from jrvaldes April 1, 2026 00:38
Add initial OTE (OpenShift Tests Extension) binary using a nested module
structure under ote/, isolating OTE dependencies from the operator's
go.mod and vendor tree.

The binary (wmco-tests-ext) is built via make build-tests-ext using
go mod download (no vendor committed for test code). GOFLAGS is explicitly
reset to avoid inheriting -mod=vendor from the CI build environment.
The binary is compressed and placed in the Prow CI image via Dockerfile.ci.

Also adds ote/OWNERS with rrasouli, weinliu, and mansikulkarni96.

Jira: WINC-1777
@weinliu weinliu force-pushed the WINC-1536-ote-migration branch from ac5ee67 to 735e8a0 Compare April 1, 2026 01:37
@jrvaldes
Copy link
Copy Markdown
Contributor

jrvaldes commented Apr 1, 2026

@weinliu please keep this PR as Draft PR until the release repo one merges

@weinliu weinliu marked this pull request as draft April 1, 2026 15:02
@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 Apr 1, 2026
openshift-merge-bot bot pushed a commit to openshift/release that referenced this pull request Apr 1, 2026
Add ote/ to skip_if_only_changed for e2e presubmit jobs so that changes
to test extension code under ote/ do not trigger the full e2e test suite.
lint, unit, and security still run since ote/ contains Go code.

Also regenerate presubmit job configs to match.

Related: openshift/windows-machine-config-operator#3874
@weinliu weinliu marked this pull request as ready for review April 1, 2026 19:19
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 1, 2026
@mansikulkarni96
Copy link
Copy Markdown
Member

/override ci/prow/wicd-unit-vsphere

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Apr 2, 2026

@mansikulkarni96: Overrode contexts on behalf of mansikulkarni96: ci/prow/wicd-unit-vsphere

Details

In response to this:

/override ci/prow/wicd-unit-vsphere

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.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Apr 2, 2026

@weinliu: 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.

HarshwardhanPatil07 pushed a commit to HarshwardhanPatil07/release that referenced this pull request Apr 2, 2026
Add ote/ to skip_if_only_changed for e2e presubmit jobs so that changes
to test extension code under ote/ do not trigger the full e2e test suite.
lint, unit, and security still run since ote/ contains Go code.

Also regenerate presubmit job configs to match.

Related: openshift/windows-machine-config-operator#3874
vimauro pushed a commit to vimauro/release that referenced this pull request Apr 2, 2026
Add ote/ to skip_if_only_changed for e2e presubmit jobs so that changes
to test extension code under ote/ do not trigger the full e2e test suite.
lint, unit, and security still run since ote/ contains Go code.

Also regenerate presubmit job configs to match.

Related: openshift/windows-machine-config-operator#3874
Copy link
Copy Markdown
Contributor

@jrvaldes jrvaldes left a comment

Choose a reason for hiding this comment

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

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Apr 2, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Apr 2, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jrvaldes, mansikulkarni96, weinliu

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

The pull request process is described here

Details Needs approval from an approver in each of these files:
  • OWNERS [jrvaldes,mansikulkarni96]

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

@openshift-merge-bot openshift-merge-bot bot merged commit f5aeeb6 into openshift:master Apr 2, 2026
19 checks passed
acornett21 pushed a commit to acornett21/openshift-release that referenced this pull request Apr 3, 2026
Add ote/ to skip_if_only_changed for e2e presubmit jobs so that changes
to test extension code under ote/ do not trigger the full e2e test suite.
lint, unit, and security still run since ote/ contains Go code.

Also regenerate presubmit job configs to match.

Related: openshift/windows-machine-config-operator#3874
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. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants