-
Bug
-
Resolution: Unresolved
-
Undefined
-
None
-
None
-
None
This PR separated OpenShift Test Extension (OTE) scaffolding from the Service CA Operator component, enabling comprehensive end-to-end testing within the OpenShift CI/CD pipeline.
-----------------------------------------
Benefits of Separation (The Current Approach)
Dependency Isolation (The Core Reason): This is the most critical benefit.
The Service CA Operator has its own set of dependencies (go.mod) required for its core logic to run. These are typically specific versions of libraries like k8s.io/client-go, k8s.io/api,
github.com/openshift/api, etc.
The OpenShift E2E test framework (which the test extension plugs into) lives in github.com/openshift/origin. The origin repository is massive and has its own, often newer or different, set of dependencies on those same k8s.io and openshift libraries.
By keeping the test code in a separate Go module, you avoid forcing the main operator to align its dependencies with the entire OpenShift test suite. This prevents "dependency hell," where it becomes impossible to find a compatible version of a library that satisfies both the operator and the test framework.
Scope and Build Cleanliness:
The main operator's binary does not need to include any of the testing libraries (ginkgo, gomega, the entire openshift/origin test harness).
This keeps the production go.mod and vendor directory clean and focused only on what's needed to build and run the operator.
Build times for the main component are faster because the Go compiler doesn't have to resolve or compile the large dependency tree of the test suite.
Independent Lifecycles:
The OpenShift test framework can evolve and update its dependencies independently of the Service CA Operator.
The operator team can update its own dependencies as needed for new features or bug fixes without being blocked by a conflicting dependency in the test framework.