The openshift/origin repository serves as the conformance test suite for OpenShift, written in Go. Historically, this repository was the core Kubernetes tracking repository for OKD and maintained OpenShift's hyperkube and openshift-test binaries. However, as of July 2020, the repository's purpose and maintenance strategy diverged based on branch versions, reflecting a significant architectural shift in how OpenShift manages its Kubernetes integration.
For main and release branches covering version 4.6 and above, the repository no longer includes code for producing hyperkube binaries. Instead, it focuses exclusively on maintaining the openshift-tests binary. The responsibility for hyperkube maintenance transitioned to the openshift/kubernetes repository. This separation of concerns means that backports and carries against upstream Kubernetes should be proposed to openshift/kubernetes, with vendoring updates then applied to origin to keep dependencies synchronized. The two repositories maintain correlated branch naming conventions to ensure consistency across the ecosystem.
The repository implements test exclusion through environmental selector-based filtering rather than test annotations. This approach allows tests to be filtered or skipped based on cluster environment and configuration, enabling selective exclusion of Kubernetes e2e tests known to be incompatible with specific OpenShift configurations. Test exclusion rules are split between openshift/kubernetes and origin repositories, with kubernetes e2e test rules maintained in the kubernetes repository and OpenShift-specific e2e test rules maintained in origin under pkg/test/extensions.
End-to-end and extended tests within the repository verify long flows as users would experience them in production. These tests are compiled into the openshift-tests binary and are designed to avoid excessive overlap, with the guideline that two e2e tests should not overlap more than ten percent of function. The repository includes comprehensive testing infrastructure documented in test/extended/README.
GitGenius activity data reveals median issue and pull request response latency of 1.2 hours with a mean of 4078.2 hours, indicating variable response times across the repository's lifecycle. The most active issue labels tracked are lifecycle/rotten with 23 occurrences, lifecycle/frozen with 8, and priority/P2 with 6. Primary contributors and triagers include sebrandon1 with 12 events, pweil- with 11 events, and bparees with 10 events. The repository shares overlapping contributors with kubevirt/kubevirt, kubernetes/kubernetes, and kcp-dev/kcp, indicating deep integration within the broader Kubernetes ecosystem.
For releases prior to version 4.6, specifically release-4.5, release-4.4, and release-4.3, the origin repository continues to maintain hyperkube directly within release-x.x branches. Persistent carries and backports for these older branches are submitted directly to origin rather than through openshift/kubernetes. The repository provides helper scripts like hack/update-kube-vendor.sh to simplify the vendoring process and hack/update-external-example.sh to manage external example files, supporting developers in maintaining the test suite and documentation.