origin
Conformance test suite for OpenShift
The conformance test suite for OpenShift, Red Hat's enterprise Kubernetes platform, compiles into a single binary that runs end-to-end tests to verify a cluster behaves correctly.
This repository is the conformance test suite for OpenShift, which is Red Hat's distribution of Kubernetes. Kubernetes is the industry-standard system for running containerized applications across fleets of servers. OpenShift builds on top of it and adds tools for development teams, continuous integration pipelines, and enterprise features.
The repo has gone through several changes in purpose. Before July 2020, it was the main code tracking repository for OKD (the upstream community version of OpenShift) and contained the core binary called hyperkube. Since then, responsibility for that binary moved to a separate fork repository, and this repo now focuses almost entirely on maintaining the openshift-tests binary, which is the tool used to verify that an OpenShift cluster behaves correctly.
The test binary runs end-to-end tests: sequences of actions that simulate real user workflows across the full product stack, not isolated unit tests of individual functions. The README specifies that two end-to-end tests should not overlap by more than ten percent, meaning they should cover distinct areas rather than repeat the same verification. All tests compile into a single binary called openshift-tests, built with a standard make command.
A notable part of the README covers how test exclusions work. Not all Kubernetes tests are compatible with every OpenShift configuration, so the project uses environmental selector files to mark tests that should be skipped in certain cluster setups. These exclusion rules live in two places: one set in the OpenShift fork of Kubernetes (for Kubernetes-native tests), and another set in this repo (for OpenShift-specific tests).
The README also documents the process for keeping this repo in sync with the OpenShift Kubernetes fork through a vendoring script. When changes merge into the Kubernetes fork, a helper script updates the Go module configuration in this repo to pull in the new code. There is also a documented workaround for a checksum verification error that can appear during that process.
Where it fits
- Run end-to-end tests against an OpenShift cluster to verify it behaves correctly after a deployment or upgrade
- Build the openshift-tests binary with make to run conformance checks on a cluster configuration
- Add or update test exclusion rules for Kubernetes tests that are incompatible with specific OpenShift setups
- Sync the test codebase with upstream Kubernetes fork changes using the vendoring script