Skip to content

Conversation

@gangwgr
Copy link
Contributor

@gangwgr gangwgr commented Jan 5, 2026

As per discussion https://redhat-internal.slack.com/archives/CC3CZCQHM/p1762421042028719
CNTRLPLANE-2167:Integrate OpenShift Test Extension (OTE) into oc

@coderabbitai
Copy link

coderabbitai bot commented Jan 5, 2026

Walkthrough

Adds a new oc-tests-ext CLI binary and test image: new Cobra-based command, test extension registry, Makefile targets and Dockerfile to build/package the binary, and module dependencies required for the extension infrastructure.

Changes

Cohort / File(s) Summary
Build system & image targets
Makefile
Restricted GO_BUILD_PACKAGES for CLI builds, added ocp-cli-tests image target, added image-ocp-cli-tests: image-ocp-cli dependency, added oc-tests-ext phony target and its build rule
Container image
images/cli-tests/Dockerfile.rhel
New multi-stage RHEL Dockerfile: builds oc-tests-ext in builder image and packages gzipped binary into final runtime image with labels
CLI implementation
cmd/oc-tests-ext/main.go
New Cobra-based entrypoint oc-tests-ext; adds newOperatorTestCommand() and prepareOperatorTestsRegistry() which registers a single "openshift" extension via oteextension
Go module changes
go.mod
Added direct dependency github.com/openshift-eng/[email protected] and several indirect deps (CEL, ANTLR, genproto, stoewer)
Repository ignore
.gitignore
Added /oc-tests-ext to ignore list

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

✨ Finishing touches
  • 📝 Generate docstrings

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

@gangwgr gangwgr changed the title Test module infra only CNTRLPLANE-2167:Integrate OpenShift Test Extension (OTE) into oc Jan 5, 2026
@openshift-ci-robot
Copy link

openshift-ci-robot commented Jan 5, 2026

@gangwgr: This pull request references CNTRLPLANE-2167 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 task 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-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jan 5, 2026
Copy link

@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: 0

🧹 Nitpick comments (2)
Makefile (1)

76-78: Consider aligning build flags with the main oc target.

The oc-tests-ext build uses a simple go build command without the build flags and ldflags used by the main oc target. This means:

  • Version information won't be injected (from GO_LD_EXTRAFLAGS)
  • Build tags like gssapi, containers_image_openpgp won't be applied

If oc-tests-ext requires any of these capabilities or version metadata, align with the oc target's build configuration.

🔎 Suggested alignment with oc build flags

If version info and build tags are needed:

 oc-tests-ext:
-	go build -o oc-tests-ext ./cmd/oc-tests-ext
+	GO_BUILD_PACKAGES=./cmd/oc-tests-ext GO_BUILD_BINDIR=. $(MAKE) build
 .PHONY: oc-tests-ext

Or if only basic flags are needed:

 oc-tests-ext:
-	go build -o oc-tests-ext ./cmd/oc-tests-ext
+	go build $(GO_BUILD_FLAGS) -ldflags="$(GO_LD_EXTRAFLAGS)" -o oc-tests-ext ./cmd/oc-tests-ext
 .PHONY: oc-tests-ext
cmd/oc-tests-ext/main.go (1)

47-53: Consider making extension parameters configurable for future flexibility.

The extension is created with hardcoded parameters ("openshift", "payload", "oc"). While this is appropriate for current test infrastructure needs, consider whether these should be configurable via flags or environment variables if future use cases require different values.

For now, the hardcoded approach is acceptable for test infrastructure. This comment is just a suggestion for future enhancement if needed.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 6d61f76 and f73fc1b.

⛔ Files ignored due to path filters (295)
  • go.sum is excluded by !**/*.sum
  • vendor/cel.dev/expr/.bazelversion is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/GOVERNANCE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/MAINTAINERS.md is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/MODULE.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/WORKSPACE is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/WORKSPACE.bzlmod is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/checked.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/cloudbuild.yaml is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/eval.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/explain.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/regen_go_proto.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/regen_go_proto_canonical_protos.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/syntax.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/value.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/antlrdoc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_config_set.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_deserialization_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_deserializer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_simulator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_type.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/char_stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/common_token_factory.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/common_token_stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/comparators.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/configuration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/dfa.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/dfa_serializer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/dfa_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/diagnostic_error_listener.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/error_listener.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/error_strategy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/file_stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/input_stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/int_stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/interval_set.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/jcollect.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/lexer_action.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/lexer_action_executor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/lexer_atn_simulator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/ll1_analyzer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/nostatistics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/parser_atn_simulator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/parser_rule_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/prediction_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/prediction_context_cache.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/prediction_mode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/recognizer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/rule_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/semantic_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/statistics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/stats_data.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/token_source.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/token_stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/tokenstream_rewriter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/trace_listener.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/transition.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/tree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/trees.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/cel.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/decls.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/env.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/folding.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/inlining.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/io.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/library.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/macro.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/optimizer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/program.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/prompt.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/templates/authoring.tmpl is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/checker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/cost.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/decls/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/decls/decls.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/env.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/mapping.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/printer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/scopes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/ast/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/ast/ast.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/ast/conversion.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/ast/expr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/ast/factory.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/ast/navigable.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/containers/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/containers/container.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/cost.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/debug/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/debug/debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/decls/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/decls/decls.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/env/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/env/env.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/functions/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/functions/functions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/location.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/operators/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/operators/operators.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/overloads/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/overloads/overloads.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/runes/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/runes/buffer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/source.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/stdlib/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/stdlib/standard.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/any_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/bool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/bytes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/compare.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/double.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/duration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/err.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/int.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/iterator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/json_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/null.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/object.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/optional.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/overflow.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/checked.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/enum.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/equal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/pb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/type.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/ref/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/ref/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/ref/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/timestamp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/comparer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/container.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/field_tester.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/indexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/iterator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/lister.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/mapper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/math.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/receiver.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/sizer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/traits.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/zeroer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/uint.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/unknown.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/activation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/attribute_patterns.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/attributes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/decorators.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/dispatcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/evalstate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/interpretable.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/interpreter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/optimizations.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/planner.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/prune.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/runtimecost.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/BUILD.bazel is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/CEL.g4 is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/CEL.interp is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/CEL.tokens is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/CELLexer.interp is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/CELLexer.tokens is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/cel_base_listener.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/cel_base_visitor.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/cel_lexer.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/cel_listener.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/cel_parser.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/cel_visitor.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/doc.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/generate.sh is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/helper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/input.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/macro.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/unescape.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/unparser.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/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/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/stoewer/go-strcase/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/camel.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/helper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/kebab.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/snake.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/exp/constraints/constraints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/exp/slices/cmp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/exp/slices/slices.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/exp/slices/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/exp/slices/zsortanyfunc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/exp/slices/zsortordered.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/api/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/checked.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/eval.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/explain.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/syntax.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/value.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/rpc/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/internal/editionssupport/editions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/json/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/json/decode_number.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/json/decode_string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/json/decode_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/json/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (5)
  • .gitignore
  • Makefile
  • cmd/oc-tests-ext/main.go
  • go.mod
  • images/cli-tests/Dockerfile.rhel
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • images/cli-tests/Dockerfile.rhel
  • go.mod
  • cmd/oc-tests-ext/main.go
  • Makefile
🧬 Code graph analysis (1)
cmd/oc-tests-ext/main.go (2)
pkg/cli/version/version.go (1)
  • Version (28-32)
pkg/cli/admin/catalog/catalog.go (1)
  • AddCommand (27-33)
🔇 Additional comments (6)
.gitignore (1)

2-2: LGTM!

The addition properly ignores the new oc-tests-ext binary artifact, consistent with existing patterns for other binaries like /oc and /clicheck.

images/cli-tests/Dockerfile.rhel (1)

1-11: LGTM! Clean multi-stage build.

The Dockerfile follows best practices:

  • Multi-stage build minimizes final image size
  • Uses --warn-undefined-variables to catch Makefile issues early
  • Places binary in /usr/bin/ for PATH availability
  • Includes proper metadata labels

The lack of ENTRYPOINT or CMD is appropriate for test tooling that will be explicitly invoked.

Makefile (1)

60-60: LGTM! Image target follows established patterns.

The ocp-cli-tests image target correctly uses the build-image macro with appropriate parameters, consistent with other image targets like ocp-cli and ocp-cli-artifacts.

cmd/oc-tests-ext/main.go (2)

17-21: LGTM! Clean main function.

The implementation follows Kubernetes CLI patterns by using cli.Run for consistent command execution and proper exit code handling.


23-45: LGTM! Well-structured root command.

The root command implementation is clean and follows Cobra best practices:

  • Default help behavior when no subcommands are specified
  • Proper version handling with fallback to "<unknown>"
  • Delegates subcommand registration to the extension registry
go.mod (1)

41-41: No action needed.

The commit 13f4631a80b013a969b7d3d0acefaac754fc5b67 exists in the upstream repository and is a recent, properly signed merge commit from November 25, 2025. All five dependencies checked have no known security vulnerabilities. The use of the pseudo-version appears intentional for accessing the latest development features.

@gangwgr gangwgr force-pushed the test-module-infra-only branch from f73fc1b to addffee Compare January 5, 2026 13:02
Copy link

@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: 1

Fix all issues with AI Agents 🤖
In @images/cli-tests/Dockerfile.rhel:
- Around line 5-9: The final image copies the gzipped binary oc-tests-ext.gz
from the builder stage but does not extract it, so the executable at
/usr/bin/oc-tests-ext.gz is non-runnable; update the final stage to extract the
binary after copying (for example, COPY --from=builder .../oc-tests-ext.gz
/usr/bin/ followed by running gunzip /usr/bin/oc-tests-ext.gz to produce
/usr/bin/oc-tests-ext) and ensure the resulting /usr/bin/oc-tests-ext has
executable permissions (chmod +x) so CI can run it.
🧹 Nitpick comments (1)
Makefile (1)

76-78: Consider aligning the build process with the standard build workflow.

The oc-tests-ext target uses a basic go build command without the build tags (GO_BUILD_FLAGS) and linker flags (GO_LD_EXTRAFLAGS) used by other binaries in this project. This may result in:

  • Missing build tags (e.g., include_gcs, include_oss, containers_image_openpgp, gssapi)
  • Absent version metadata that aids debugging and observability
  • Inconsistent output location compared to other build artifacts
🔎 Proposed changes to align with standard build process
-oc-tests-ext:
-	go build -o oc-tests-ext ./cmd/oc-tests-ext
+oc-tests-ext: GO_BUILD_PACKAGES :=./cmd/oc-tests-ext
+oc-tests-ext: build
 .PHONY: oc-tests-ext

This change ensures oc-tests-ext inherits the same build flags, linker flags, and output conventions as other binaries. If oc-tests-ext genuinely requires a minimal build without these flags, please add a comment explaining the rationale.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between f73fc1b and addffee.

📒 Files selected for processing (2)
  • Makefile
  • images/cli-tests/Dockerfile.rhel
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • images/cli-tests/Dockerfile.rhel
  • Makefile
🔇 Additional comments (1)
Makefile (1)

60-61: LGTM!

The build-image macro call follows the established pattern used for other image targets and correctly references the new Dockerfile.

Comment on lines 5 to 9
RUN make oc-tests-ext --warn-undefined-variables \
&& gzip oc-tests-ext

FROM registry.ci.openshift.org/ocp/4.22:base-rhel9
COPY --from=builder /go/src/github.com/openshift/oc/oc-tests-ext.gz /usr/bin/
Copy link

@coderabbitai coderabbitai bot Jan 5, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Extract the binary in the final stage.

The binary is gzipped in the builder stage (line 6) but copied as a .gz file to /usr/bin/ in the final stage without extraction. A gzipped binary cannot be executed directly, which breaks the intended functionality for CI testing.

🔎 Proposed fix

Option 1 (recommended): Extract during copy

-RUN make oc-tests-ext --warn-undefined-variables \
-      && gzip oc-tests-ext
+RUN make oc-tests-ext --warn-undefined-variables

 FROM registry.ci.openshift.org/ocp/4.22:base-rhel9
-COPY --from=builder /go/src/github.com/openshift/oc/oc-tests-ext.gz /usr/bin/
+COPY --from=builder /go/src/github.com/openshift/oc/oc-tests-ext /usr/bin/

Option 2: Extract in final stage if compression is needed for layer size

 FROM registry.ci.openshift.org/ocp/4.22:base-rhel9
 COPY --from=builder /go/src/github.com/openshift/oc/oc-tests-ext.gz /usr/bin/
+RUN gunzip /usr/bin/oc-tests-ext.gz && chmod +x /usr/bin/oc-tests-ext
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
RUN make oc-tests-ext --warn-undefined-variables \
&& gzip oc-tests-ext
FROM registry.ci.openshift.org/ocp/4.22:base-rhel9
COPY --from=builder /go/src/github.com/openshift/oc/oc-tests-ext.gz /usr/bin/
RUN make oc-tests-ext --warn-undefined-variables
FROM registry.ci.openshift.org/ocp/4.22:base-rhel9
COPY --from=builder /go/src/github.com/openshift/oc/oc-tests-ext /usr/bin/
🤖 Prompt for AI Agents
In @images/cli-tests/Dockerfile.rhel around lines 5-9, The final image copies
the gzipped binary oc-tests-ext.gz from the builder stage but does not extract
it, so the executable at /usr/bin/oc-tests-ext.gz is non-runnable; update the
final stage to extract the binary after copying (for example, COPY
--from=builder .../oc-tests-ext.gz /usr/bin/ followed by running gunzip
/usr/bin/oc-tests-ext.gz to produce /usr/bin/oc-tests-ext) and ensure the
resulting /usr/bin/oc-tests-ext has executable permissions (chmod +x) so CI can
run it.

Copy link
Member

Choose a reason for hiding this comment

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

Is this comment ^^ valid or OTE can run extracted gzipped binary?

Copy link

Choose a reason for hiding this comment

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

🧩 Analysis chain

@ardaguclu Let me investigate how oc-tests-ext is used and whether there's any special handling for gzipped binaries in the OTE framework or CI pipeline.


🏁 Script executed:

#!/bin/bash

# Check how oc-tests-ext is invoked or referenced in CI configs
echo "=== Searching for oc-tests-ext invocation patterns ==="
rg -n "oc-tests-ext" --type=yaml -C3

# Check if there are any extraction scripts or patterns
echo -e "\n=== Checking for gunzip or extraction patterns ==="
rg -n "gunzip|tar.*xz|extract" --type=dockerfile -C2

# Look at other Dockerfiles to see if gzipping binaries is a common pattern
echo -e "\n=== Checking other Dockerfiles for gzip patterns ==="
fd -e rhel -e Dockerfile --exec grep -l "gzip" {}

# Check if there are similar image build patterns
echo -e "\n=== Examining other test-related Dockerfiles ==="
fd "Dockerfile" images/ --exec cat {}

Length of output: 6156


🏁 Script executed:

#!/bin/bash

# Check if there's any entrypoint or CMD that might handle extraction
echo "=== Checking for ENTRYPOINT or CMD in cli-tests Dockerfile ==="
grep -n "ENTRYPOINT\|CMD" images/cli-tests/Dockerfile.rhel

# Look for any wrapper scripts or extraction logic in the codebase
echo -e "\n=== Searching for extraction or wrapper scripts ==="
rg -n "oc-tests-ext" -C5

# Check the main.go to see if there's any self-extraction logic
echo -e "\n=== Checking main.go for any extraction patterns ==="
cat cmd/oc-tests-ext/main.go | head -50

# Search for how openshift-tests-extension is typically used
echo -e "\n=== Checking go.mod for OTE details ==="
grep "openshift-tests-extension" go.mod

# Look for any documentation about OTE binary handling
echo -e "\n=== Searching for README or docs mentioning binary handling ==="
fd -e md . --exec rg -l "oc-tests-ext|test.*extension" {}

Length of output: 3580


@ardaguclu My review comment is valid. Based on the codebase analysis, here's the evidence:

The binary cannot be executed in its gzipped state:

  1. No extraction mechanism exists: The Dockerfile has no ENTRYPOINT or CMD that would extract the binary, and there are no wrapper scripts in the codebase.

  2. Standard executable expected: The main.go shows a standard Cobra CLI with no self-extraction logic. It's a normal Go binary that expects to be directly executable.

  3. Inconsistent with other images: All other Dockerfiles in this repo copy binaries uncompressed:

    # From cli/Dockerfile.rhel
    COPY --from=builder /go/src/github.com/openshift/oc/oc /usr/bin/
    # Not: COPY ... /oc.gz /usr/bin/
  4. Linux cannot execute .gz files: The kernel cannot directly execute gzipped binaries—they must be extracted first.

The fix should remove the gzip step entirely (Option 1 from my original comment):

-RUN make oc-tests-ext --warn-undefined-variables \
-      && gzip oc-tests-ext
+RUN make oc-tests-ext --warn-undefined-variables

 FROM registry.ci.openshift.org/ocp/4.22:base-rhel9
-COPY --from=builder /go/src/github.com/openshift/oc/oc-tests-ext.gz /usr/bin/
+COPY --from=builder /go/src/github.com/openshift/oc/oc-tests-ext /usr/bin/

This matches the pattern used by all other binaries in the repository.

@gangwgr gangwgr force-pushed the test-module-infra-only branch from addffee to 449f971 Compare January 5, 2026 13:05
@openshift-ci-robot
Copy link

openshift-ci-robot commented Jan 5, 2026

@gangwgr: This pull request references CNTRLPLANE-2167 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 task to target the "4.22.0" version, but no target version was set.

Details

In response to this:

As per discussion https://redhat-internal.slack.com/archives/CC3CZCQHM/p1762421042028719
CNTRLPLANE-2167:Integrate OpenShift Test Extension (OTE) into oc

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.

Copy link

@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: 1

Fix all issues with AI Agents 🤖
In @go.mod:
- Line 41: Update the transitive vulnerable CEL dependency by adding or bumping
a direct requirement for github.com/google/cel-go to a release that depends on
cel.dev/expr ≥ 1.17.7 (e.g., bump to a cel-go version ≥ the one that requires
expr 1.17.7), then run go get github.com/google/cel-go@<new-version> and go mod
tidy to regenerate go.sum; ensure go.mod no longer pulls cel.dev/expr v0.24.0
and run tests to verify the build.
🧹 Nitpick comments (2)
cmd/oc-tests-ext/main.go (2)

23-45: Consider removing or utilizing the unused context parameter.

The ctx parameter is declared but never used in the function body. If context propagation isn't needed for the current implementation, consider removing it to improve clarity.

🔎 Proposed fix
-func newOperatorTestCommand(ctx context.Context) *cobra.Command {
+func newOperatorTestCommand() *cobra.Command {
 	registry := prepareOperatorTestsRegistry()
 
 	cmd := &cobra.Command{

And update the call site:

 func main() {
-	command := newOperatorTestCommand(context.Background())
+	command := newOperatorTestCommand()
 	code := cli.Run(command)
 	os.Exit(code)
 }

47-53: Consider extracting magic strings to named constants.

The extension configuration uses hardcoded string literals. While the current implementation is clear, extracting these to constants would improve maintainability if these values need to be referenced elsewhere or changed in the future.

🔎 Proposed refactor
+const (
+	extensionName    = "openshift"
+	extensionPayload = "payload"
+	extensionID      = "oc"
+)
+
 func prepareOperatorTestsRegistry() *oteextension.Registry {
 	registry := oteextension.NewRegistry()
-	extension := oteextension.NewExtension("openshift", "payload", "oc")
+	extension := oteextension.NewExtension(extensionName, extensionPayload, extensionID)
 
 	registry.Register(extension)
 	return registry
 }
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between addffee and 449f971.

⛔ Files ignored due to path filters (296)
  • go.sum is excluded by !**/*.sum
  • vendor/cel.dev/expr/.bazelversion is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/CODE_OF_CONDUCT.md is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/GOVERNANCE.md is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/MAINTAINERS.md is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/MODULE.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/WORKSPACE is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/WORKSPACE.bzlmod is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/checked.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/cloudbuild.yaml is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/eval.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/explain.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/regen_go_proto.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/regen_go_proto_canonical_protos.sh is excluded by !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/syntax.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/cel.dev/expr/value.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/antlrdoc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_config_set.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_deserialization_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_deserializer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_simulator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/atn_type.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/char_stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/common_token_factory.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/common_token_stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/comparators.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/configuration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/dfa.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/dfa_serializer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/dfa_state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/diagnostic_error_listener.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/error_listener.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/error_strategy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/file_stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/input_stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/int_stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/interval_set.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/jcollect.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/lexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/lexer_action.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/lexer_action_executor.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/lexer_atn_simulator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/ll1_analyzer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/nostatistics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/parser_atn_simulator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/parser_rule_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/prediction_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/prediction_context_cache.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/prediction_mode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/recognizer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/rule_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/semantic_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/statistics.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/stats_data.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/token_source.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/token_stream.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/tokenstream_rewriter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/trace_listener.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/transition.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/tree.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/trees.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/antlr4-go/antlr/v4/utils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/cel.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/decls.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/env.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/folding.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/inlining.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/io.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/library.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/macro.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/optimizer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/program.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/prompt.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/templates/authoring.tmpl is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/cel/validator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/checker.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/cost.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/decls/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/decls/decls.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/env.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/mapping.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/printer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/scopes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/checker/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/ast/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/ast/ast.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/ast/conversion.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/ast/expr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/ast/factory.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/ast/navigable.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/containers/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/containers/container.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/cost.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/debug/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/debug/debug.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/decls/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/decls/decls.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/env/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/env/env.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/functions/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/functions/functions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/location.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/operators/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/operators/operators.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/overloads/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/overloads/overloads.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/runes/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/runes/buffer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/source.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/stdlib/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/stdlib/standard.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/any_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/bool.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/bytes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/compare.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/double.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/duration.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/err.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/format.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/int.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/iterator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/json_value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/list.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/map.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/null.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/object.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/optional.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/overflow.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/checked.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/enum.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/equal.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/file.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/pb.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/pb/type.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/ref/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/ref/provider.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/ref/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/timestamp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/comparer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/container.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/field_tester.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/indexer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/iterator.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/lister.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/mapper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/matcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/math.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/receiver.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/sizer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/traits.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/traits/zeroer.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/uint.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/unknown.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/common/types/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/activation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/attribute_patterns.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/attributes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/decorators.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/dispatcher.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/evalstate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/interpretable.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/interpreter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/optimizations.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/planner.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/prune.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/interpreter/runtimecost.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/BUILD.bazel is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/BUILD.bazel is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/CEL.g4 is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/CEL.interp is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/CEL.tokens is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/CELLexer.interp is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/CELLexer.tokens is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/cel_base_listener.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/cel_base_visitor.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/cel_lexer.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/cel_listener.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/cel_parser.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/cel_visitor.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/doc.go is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/gen/generate.sh is excluded by !**/gen/**, !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/helper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/input.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/macro.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/unescape.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/google/cel-go/parser/unparser.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/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/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/stoewer/go-strcase/.gitignore is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/camel.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/helper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/kebab.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/stoewer/go-strcase/snake.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/exp/constraints/constraints.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/exp/slices/cmp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/exp/slices/slices.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/exp/slices/sort.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/exp/slices/zsortanyfunc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/golang.org/x/exp/slices/zsortordered.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/api/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/checked.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/eval.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/explain.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/syntax.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/api/expr/v1alpha1/value.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/rpc/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go is excluded by !**/*.pb.go, !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/internal/editionssupport/editions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/json/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/json/decode_number.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/json/decode_string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/json/decode_token.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/internal/encoding/json/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go is excluded by !vendor/**, !**/vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (4)
  • Makefile
  • cmd/oc-tests-ext/main.go
  • go.mod
  • images/cli-tests/Dockerfile.rhel
🚧 Files skipped from review as they are similar to previous changes (2)
  • Makefile
  • images/cli-tests/Dockerfile.rhel
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • go.mod
  • cmd/oc-tests-ext/main.go
🔇 Additional comments (1)
cmd/oc-tests-ext/main.go (1)

17-21: LGTM!

The main function follows standard Kubernetes CLI patterns using component-base/cli.Run for consistent execution and exit code handling.

github.com/moby/term v0.5.2
github.com/opencontainers/go-digest v1.0.0
github.com/opencontainers/image-spec v1.1.0
github.com/openshift-eng/openshift-tests-extension v0.0.0-20251125140340-13f4631a80b0
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

cat -n go.mod | sed -n '1,250p'

Repository: openshift/oc

Length of output: 13358


🌐 Web query:

golang security advisories cel.dev/expr google/cel-go antlr4 stoewer go-strcase 2025 2026

💡 Result:

Summary of findings (searched 2025–2026):

  1. Expr (cel.dev/expr / github.com/expr‑lang/expr)
  • Multiple disclosed DoS/resource‑exhaustion advisories in 2025:
    • CVE‑2025‑29786 (memory exhaustion from unbounded input; fixed in expr ≥ 1.17.0). [1][2][3]
    • CVE‑2025‑68156 (DoS via several builtin functions causing unbounded recursion; fixed in expr ≥ 1.17.7). [4]
      References: Recorded Future / NVD summaries and vendor distro trackers; GitLab advisory. [1][2][3][4]
  1. antlr4
  • Malicious npm package reports in 2025 (OSV entries for malicious/typo packages related to antlr4 ecosystem: MAL‑2025‑14606 (antlr4‑graps) and MAL‑2025‑38650 (vscode‑antlr4)). These are malicious/typo‑package OSV records (npm), not necessarily vulnerabilities in the upstream ANTLR project but supply‑chain incidents to watch. [5][6]
  1. google/cel‑go (github.com/google/cel‑go / cel.dev CEL implementation)
  • I found release activity but no publicly listed CVE/security advisory specifically for google/cel‑go in 2025–2026 from the searches performed. See project releases. (No matching CVE advisory located in searches.) [7]
  1. stoewer / go‑strcase
  • Project activity and releases/patches in 2025 (e.g., go‑strcase releases and dependency bumps in downstream projects), but no public CVE/security advisory I could find for 2025–2026 in the searches. Example release/PR references. [8][9]

If you want, I can:

  • fetch the primary advisories (NVD / GitHub Security Advisories / vendor release notes) for each item above and assemble exact CVE IDs, affected versions, and upgrade/remediation steps; or
  • monitor these packages (OSV / GitHub advisories / NVD) and alert on new advisories through a watch.

Sources

  • CVE‑2025‑29786 / Expr (advisories / distro trackers): Recorded Future / Amazon ALAS / Rapid7 / Snyk. [1][2][3]
  • CVE‑2025‑68156 / Expr (GitLab advisory entry). [4]
  • OSV malicious package entries for antlr4-related npm packages (MAL‑2025‑14606, MAL‑2025‑38650). [5][6]
  • google/cel‑go releases (repo releases page). [7]
  • stoewer / go‑strcase release/PR records (dependabot/PR and release notes referenced in downstream projects). [8][9]

References (numbered above)

  1. CVE-2025-29786 / Recorded Future / NVD summaries.
  2. AWS/ALAS entry for CVE-2025-29786.
  3. Rapid7 / Snyk coverage of CVE-2025-29786.
  4. GitLab advisory / CVE-2025-68156 for expr.
  5. OSV MAL-2025-14606 (antlr4-graps).
  6. OSV MAL-2025-38650 (vscode-antlr4).
  7. github.com/google/cel-go/releases.
  8. PR/release noting go-strcase bump (stoewer/go-strcase).
  9. downstream project release notes referencing antlr4 runtime and go-strcase updates.

Would you like me to fetch the full advisories (NVD/GitHub/OSV links and exact affected versions + remediation commands)?


Critical: cel.dev/expr v0.24.0 contains known vulnerabilities (CVE-2025-29786, CVE-2025-68156) that have been patched in later versions.

The dependency cel.dev/expr v0.24.0 (line 73, pulled transitively via google/cel-go v0.26.0) is vulnerable to:

  • CVE-2025-29786: Memory exhaustion from unbounded input (fixed in expr ≥ 1.17.0)
  • CVE-2025-68156: Denial-of-service via unbounded recursion in builtin functions (fixed in expr ≥ 1.17.7)

Upgrade google/cel-go and its transitive dependencies to versions that require cel.dev/expr ≥ 1.17.7 to resolve these vulnerabilities before merging.

🤖 Prompt for AI Agents
In @go.mod around line 41, Update the transitive vulnerable CEL dependency by
adding or bumping a direct requirement for github.com/google/cel-go to a release
that depends on cel.dev/expr ≥ 1.17.7 (e.g., bump to a cel-go version ≥ the one
that requires expr 1.17.7), then run go get
github.com/google/cel-go@<new-version> and go mod tidy to regenerate go.sum;
ensure go.mod no longer pulls cel.dev/expr v0.24.0 and run tests to verify the
build.

gangwgr added a commit to gangwgr/release that referenced this pull request Jan 6, 2026
Add cli-tests image build to enable testing of oc-tests-ext binary
in CI rehearsals.

Changes:
- Add cli-tests image to images list with appropriate inputs
- Exclude cli-tests from promotion (test-only image)

This enables:
- Building cli-tests image in CI from PR openshift#2176
- Testing oc-tests-ext integration with origin
- Validating the extension framework before merge

Related:
- oc PR: openshift/oc#2176
- origin PR: https://github.com/gangwgr/origin/pull/new/test-oc-cli
Copy link
Member

@ardaguclu ardaguclu left a comment

Choose a reason for hiding this comment

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

Overall idea looks reasonable to me. But I'd like to understand how are you planning to use this cli-tests image in CI system. Are you sure that this image will successfully run tests against the PRs in oc?. What changes are you planning to add in here https://github.com/openshift/release/blob/master/ci-operator/config/openshift/oc/openshift-oc-main.yaml?.

Comment on lines 5 to 9
RUN make oc-tests-ext --warn-undefined-variables \
&& gzip oc-tests-ext

FROM registry.ci.openshift.org/ocp/4.22:base-rhel9
COPY --from=builder /go/src/github.com/openshift/oc/oc-tests-ext.gz /usr/bin/
Copy link
Member

Choose a reason for hiding this comment

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

Is this comment ^^ valid or OTE can run extracted gzipped binary?

RUN make oc-tests-ext --warn-undefined-variables \
&& gzip oc-tests-ext

FROM registry.ci.openshift.org/ocp/4.22:base-rhel9
Copy link
Member

Choose a reason for hiding this comment

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

If you need oc binary as well, you can use cli image instead of base-rhel9.


$(call build-image,ocp-cli-artifacts,$(IMAGE_REGISTRY)/ocp/4.2:cli-artifacts,./images/cli-artifacts/Dockerfile.rhel,.)

$(call build-image,ocp-cli-tests,$(IMAGE_REGISTRY)/ocp/4.2:cli-tests,./images/cli-tests/Dockerfile.rhel,.)
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
$(call build-image,ocp-cli-tests,$(IMAGE_REGISTRY)/ocp/4.2:cli-tests,./images/cli-tests/Dockerfile.rhel,.)
$(call build-image,ocp-cli-tests,$(IMAGE_REGISTRY)/ocp/4.2:cli-tests,./images/cli-tests/Dockerfile.rhel,.)
image-ocp-tests: image-ocp-cli

Makefile Outdated
oc: build
.PHONY: oc

oc-tests-ext:
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
oc-tests-ext:
oc-tests-ext: GO_BUILD_PACKAGES :=./cmd/oc-tests-ext
oc-tests-ext: build
.PHONY: oc-tests-ext

# $4 - context
$(call build-image,ocp-cli,$(IMAGE_REGISTRY)/ocp/4.2:cli,./images/cli/Dockerfile.rhel,.)

$(call build-image,ocp-cli-artifacts,$(IMAGE_REGISTRY)/ocp/4.2:cli-artifacts,./images/cli-artifacts/Dockerfile.rhel,.)
Copy link
Member

Choose a reason for hiding this comment

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

GO_BUILD_PACKAGES still builds oc-tests-ext binary. It should be updated like this;

GO_BUILD_PACKAGES :=$(strip \
	./cmd/oc/... \
	$(wildcard ./tools/*) \
)

"k8s.io/klog/v2"
)

func main() {
Copy link
Member

Choose a reason for hiding this comment

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

This binary should be added in .gitignore.

@gangwgr
Copy link
Contributor Author

gangwgr commented Jan 6, 2026

Overall idea looks reasonable to me. But I'd like to understand how are you planning to use this cli-tests image in CI system. Are you sure that this image will successfully run tests against the PRs in oc?. What changes are you planning to add in here https://github.com/openshift/release/blob/master/ci-operator/config/openshift/oc/openshift-oc-main.yaml?.

Yes I'm trying like this openshift/origin#30653 and openshift/release#73124
but it's getting too complex to maintain 2 images

Add oc-tests-ext binary support via separate Docker image to avoid
bloating the main CLI image.

Changes:
- Create cmd/oc-tests-ext/main.go to build oc-tests-ext binary
- Create images/cli-tests/Dockerfile.rhel for building oc-tests-ext image
- Add ocp-cli-tests image build target in Makefile (ocp/4.2:cli-tests)
- Gzip oc-tests-ext binary to reduce image size (55MB -> ~24MB)
- Make oc-tests-ext an independent build target in Makefile
- Remove oc-tests-ext from main CLI image (Dockerfile.rhel)

The main CLI image remains lean with only the oc binary, while
oc-tests-ext is available in a separate cli-tests image for CI usage.

Addresses feedback from @ardaguclu to keep test binary separate from
product image and avoid 30% size increase.
@gangwgr gangwgr force-pushed the test-module-infra-only branch from 449f971 to 037dbde Compare January 6, 2026 07:14
Copy link

@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: 0

🧹 Nitpick comments (2)
cmd/oc-tests-ext/main.go (2)

23-45: Consider renaming for clarity.

The function name newOperatorTestCommand contains "Operator" but the command is actually for running "oc tests" as indicated by the usage string and short description. Consider renaming to newOcTestsExtCommand for clarity.

🔎 Proposed rename
-func newOperatorTestCommand(ctx context.Context) *cobra.Command {
+func newOcTestsExtCommand(ctx context.Context) *cobra.Command {
 	registry := prepareOperatorTestsRegistry()
 
 	cmd := &cobra.Command{

And update the call in main:

 func main() {
-	command := newOperatorTestCommand(context.Background())
+	command := newOcTestsExtCommand(context.Background())
 	code := cli.Run(command)
 	os.Exit(code)
 }

47-53: Consider renaming function for clarity.

The function name prepareOperatorTestsRegistry uses "Operator" terminology, but the binary is explicitly named oc-tests-ext and described as running "oc tests as part of OTE." Renaming to prepareOcTestsExtRegistry would align the function name with the actual purpose and binary naming convention.

Regarding the extension parameters NewExtension("openshift", "payload", "oc"): verification requires access to the OpenShift Tests Extension framework documentation, as this is external library usage with no comparable examples in the codebase.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 449f971 and 037dbde.

📒 Files selected for processing (4)
  • .gitignore
  • Makefile
  • cmd/oc-tests-ext/main.go
  • images/cli-tests/Dockerfile.rhel
✅ Files skipped from review due to trivial changes (1)
  • .gitignore
🚧 Files skipped from review as they are similar to previous changes (1)
  • images/cli-tests/Dockerfile.rhel
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • cmd/oc-tests-ext/main.go
  • Makefile
🔇 Additional comments (5)
Makefile (4)

30-33: LGTM! Addresses past review feedback.

The restriction of GO_BUILD_PACKAGES to ./cmd/oc/... correctly excludes oc-tests-ext from default builds, addressing the previous review comment. The new oc-tests-ext target (lines 77-79) provides explicit control for building the test binary separately.


60-61: LGTM! Follows existing image build patterns.

The new ocp-cli-tests image target is structured consistently with other image targets in the Makefile.


65-65: LGTM! Correct dependency order.

The dependency ensures the base ocp-cli image is built before ocp-cli-tests, following the established pattern for other image dependencies.


77-79: LGTM! Well-structured build target.

The oc-tests-ext target correctly sets its own GO_BUILD_PACKAGES scope and follows the established pattern used by the oc target.

cmd/oc-tests-ext/main.go (1)

17-21: LGTM! Standard k8s CLI pattern.

The main function correctly initializes the command with a background context and uses the k8s component-base CLI runner, which is the idiomatic approach for k8s-ecosystem tooling.

@gangwgr
Copy link
Contributor Author

gangwgr commented Jan 6, 2026

@ardaguclu Updated pr as per feedback please take a look

@ardaguclu
Copy link
Member

This PR looks good to me. Thank you
/lgtm
/hold
until we see that all CI jobs are green

@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 Jan 6, 2026
@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jan 6, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 6, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ardaguclu, gangwgr

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:

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 Jan 6, 2026
@gangwgr
Copy link
Contributor Author

gangwgr commented Jan 6, 2026

/test e2e-aws-ovn-serial-1of2

@ardaguclu
Copy link
Member

unfortunately okd-scos-images is known perma failing.
/override ci/prow/okd-scos-images

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 6, 2026

@ardaguclu: Overrode contexts on behalf of ardaguclu: ci/prow/okd-scos-images

Details

In response to this:

unfortunately okd-scos-images is known perma failing.
/override ci/prow/okd-scos-images

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
Contributor

openshift-ci bot commented Jan 6, 2026

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

@gangwgr
Copy link
Contributor Author

gangwgr commented Jan 6, 2026

/verified by ci runs

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jan 6, 2026
@openshift-ci-robot
Copy link

@gangwgr: This PR has been marked as verified by ci runs.

Details

In response to this:

/verified by ci runs

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.

@ardaguclu
Copy link
Member

/hold cancel

@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jan 6, 2026
@openshift-merge-bot openshift-merge-bot bot merged commit dc6d2d4 into openshift:main Jan 6, 2026
16 checks passed
gangwgr added a commit to gangwgr/release that referenced this pull request Jan 6, 2026
Add cli-tests image build to support oc-tests-ext test extension binary.

Changes:
- Add cli-tests image using cli as base (matches Dockerfile.rhel)
- Provide builder image input for build stage
- Exclude cli-tests from promotion (test-only image)

This enables:
- Building cli-tests image containing oc-tests-ext.gz
- Automatic extraction and execution of oc CLI extension tests
- Integration with OpenShift test framework via origin

The cli-tests image contains the oc-tests-ext binary (gzipped, ~24MB)
layered on top of the cli image, providing both oc and oc-tests-ext
for test execution.

Depends-On: openshift/oc#2176 (merged)
gangwgr added a commit to gangwgr/release that referenced this pull request Jan 7, 2026
Add cli-tests image build to support oc-tests-ext test extension binary.

Changes:
- Add cli-tests image using cli as base (matches Dockerfile.rhel)
- Provide builder image input for build stage
- Exclude cli-tests from promotion (test-only image)

This enables:
- Building cli-tests image containing oc-tests-ext.gz
- Automatic extraction and execution of oc CLI extension tests
- Integration with OpenShift test framework via origin

The cli-tests image contains the oc-tests-ext binary (gzipped, ~24MB)
layered on top of the cli image, providing both oc and oc-tests-ext
for test execution.

Depends-On: openshift/oc#2176 (merged)
openshift-merge-bot bot pushed a commit to openshift/release that referenced this pull request Jan 7, 2026
Add cli-tests image build to support oc-tests-ext test extension binary.

Changes:
- Add cli-tests image using cli as base (matches Dockerfile.rhel)
- Provide builder image input for build stage
- Exclude cli-tests from promotion (test-only image)

This enables:
- Building cli-tests image containing oc-tests-ext.gz
- Automatic extraction and execution of oc CLI extension tests
- Integration with OpenShift test framework via origin

The cli-tests image contains the oc-tests-ext binary (gzipped, ~24MB)
layered on top of the cli image, providing both oc and oc-tests-ext
for test execution.

Depends-On: openshift/oc#2176 (merged)
tbuskey pushed a commit to tbuskey/release that referenced this pull request Jan 12, 2026
Add cli-tests image build to support oc-tests-ext test extension binary.

Changes:
- Add cli-tests image using cli as base (matches Dockerfile.rhel)
- Provide builder image input for build stage
- Exclude cli-tests from promotion (test-only image)

This enables:
- Building cli-tests image containing oc-tests-ext.gz
- Automatic extraction and execution of oc CLI extension tests
- Integration with OpenShift test framework via origin

The cli-tests image contains the oc-tests-ext binary (gzipped, ~24MB)
layered on top of the cli image, providing both oc and oc-tests-ext
for test execution.

Depends-On: openshift/oc#2176 (merged)
mgencur pushed a commit to mgencur/release that referenced this pull request Jan 16, 2026
Add cli-tests image build to support oc-tests-ext test extension binary.

Changes:
- Add cli-tests image using cli as base (matches Dockerfile.rhel)
- Provide builder image input for build stage
- Exclude cli-tests from promotion (test-only image)

This enables:
- Building cli-tests image containing oc-tests-ext.gz
- Automatic extraction and execution of oc CLI extension tests
- Integration with OpenShift test framework via origin

The cli-tests image contains the oc-tests-ext binary (gzipped, ~24MB)
layered on top of the cli image, providing both oc and oc-tests-ext
for test execution.

Depends-On: openshift/oc#2176 (merged)
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. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants