explaingit

openshift/origin

8,650GoAudience · ops devopsComplexity · 4/5Setup · hard

TLDR

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.

Mindmap

mindmap
  root((openshift/origin))
    Purpose
      Conformance tests
      End-to-end verification
      Cluster validation
    Test Design
      Simulate user workflows
      Single binary output
      Low test overlap rule
    Exclusions
      Environmental selectors
      Incompatible test marking
      Two exclusion locations
    Maintenance
      Vendoring script
      Kubernetes fork sync
      Checksum workaround
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run end-to-end tests against an OpenShift cluster to verify it behaves correctly after a deployment or upgrade

USE CASE 2

Build the openshift-tests binary with make to run conformance checks on a cluster configuration

USE CASE 3

Add or update test exclusion rules for Kubernetes tests that are incompatible with specific OpenShift setups

USE CASE 4

Sync the test codebase with upstream Kubernetes fork changes using the vendoring script

Tech stack

GoKubernetesOpenShift

Getting it running

Difficulty · hard Time to first run · 1day+

Requires a running OpenShift cluster to execute tests against, the binary itself cannot be used standalone without cluster access.

In plain English

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.

Copy-paste prompts

Prompt 1
How do I build the openshift-tests binary from the openshift/origin repo using make on a Linux machine?
Prompt 2
Show me how to add a test exclusion selector in openshift/origin so a specific Kubernetes test is skipped on clusters without a certain feature enabled.
Prompt 3
How does the vendoring script in openshift/origin work, and how do I run it after changes merge into the OpenShift Kubernetes fork?
Prompt 4
What is the rule about end-to-end test overlap in openshift/origin, and how do I check whether a new test I'm writing overlaps with an existing one?
Prompt 5
Walk me through the openshift/origin repo structure and explain which parts are still active versus what moved to separate repositories after July 2020.
Open on GitHub → Explain another repo

← openshift on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.