Back to directory
openshift avatar

origin

Conformance test suite for OpenShift. Read more below about its uses, features, and usage.

Clone repository

git clone https://github.com/openshift/origin.git

8,680

Stars

4,800

Forks

447

Watchers

Apache-2.0

License

Origin Kubernetes

Go Report Card GoDoc Licensed under Apache License version 2.0

This repo was previously the core Kubernetes tracking repo for OKD, and where OpenShift's hyperkube and openshift-test binaries were maintained. As of July 2020, the purpose and maintenance strategy of the repo varies by branch.

Maintenance of main and release-x.x branches for 4.6 and above

These branches no longer include the code required to produce hyperkube binaries, and are limited to maintaining the openshift-tests binary. Responsibility for maintaining hyperkube has transitioned to the openshift/kubernetes repo.

Backports and carries against upstream should be proposed to openshift/kubernetes. If changes merged to openshift/kubernetes need to land in origin, it will be necessary to follow up with a PR to origin that bumps the vendoring.

Branch names are correlated across the 2 repositories such that changes merged to a given branch in openshift/kubernetes should be vendored into the same branch in origin (e.g. master in openshift/kubernetes is vendored into main in origin).

NOTE: Vendoring of the main and release-x.x branches of openshift/kubernetes into the equivalent branches in origin is intended to be temporary. At some point in the near future, origin will switch to vendoring origin-specific branches (e.g origin-4.6-kubernetes-1.19.2) to minimize the scope of backports and carries that need to be considered in the context of openshift/kubernetes rebases.

Test exclusion rules

Test exclusion is now handled through environmental selector based filtering rather than test annotations. Environmental selectors allow tests to be filtered or skipped based on the cluster environment and configuration. For example, selectors can be defined that match kube e2e tests that are known to be incompatible with specific OpenShift configurations and exclude those tests from running.

Maintenance of test exclusion rules is split between the openshift/kubernetes and origin repos to ensure that PRs proposed to openshift/kubernetes can be validated against the set of kube e2e tests known to be compatible with OpenShift.

Test exclusion rules for kubernetes e2e tests are maintained in: https://github.com/openshift/kubernetes/blob/master/openshift-hack/cmd/k8s-tests-ext:

Test exclusion rules for openshift e2e tests are maintained in: https://github.com/openshift/origin/blob/main/pkg/test/extensions:

To update test exclusion rules for kube e2e tests, update the environmental selectors in openshift/kubernetes. For OpenShift e2e tests, update the selectors in origin.

Vendoring from openshift/kubernetes

These origin branches vendor k8s.io/kubernetes and some of its staging repos (e.g. k8s.io/api) from our openshift/kubernetes fork. Upstream staging repos are used where possible, but some tests depends on functionality that is only present in the fork.

When a change has merged to an openshift/kubernetes branch that needs to be vendored into the same branch in origin, the hack/update-kube-vendor.sh helper script simplifies updating the go module configuration for all dependencies sourced from openshift/kubernetes for that branch. The script requires either the name of a branch or a SHA from openshift/kubernetes:

$ hack/update-kube-vendor.sh <openshift/kubernetes branch name or SHA>

The script also supports performing a fake bump to validate an as-yet unmerged change to openshift/kubernetes. This can be accomplished by supplying the name of a fork repo as the second argument to the script:

$ hack/update-kube-vendor.sh <branch name or SHA> github.com/myname/kubernetes

Once the script has executed, the vendoring changes will need to be committed and proposed to the repo.

Working around '410 Gone' error

If the script returns '410 Gone' as per the error that follows, it may be that the golang checksum server does not yet know about the target SHA.

go: k8s.io/[email protected] (replaced by github.com/openshift/[email protected]): verifying go.mod: g
ithub.com/openshift/[email protected]/go.mod: reading https://sum.golang.org/lookup/github.com/openshif
t/[email protected]: 410 Gone
        server response: not found:

The workaround is to set GOSUMDB=off to disable the checksum database for the vendoring update:

$ GOSUMDB=off hack/update-kube-vendor.sh <branch name or SHA>

Maintenance of release-4.5, release-4.4 and release-4.3

Releases prior to 4.6 continue to maintain hyperkube in the origin repo in the release-4.x branches. Persistent carries and backports for those branches should continue to be submitted directly to origin. openshift/kubernetes is not involved except for rebases.

End-to-End (e2e) and Extended Tests

End to end tests (e2e) should verify a long set of flows in the product as a user would see them. Two e2e tests should not overlap more than 10% of function and are not intended to test error conditions in detail. The project examples should be driven by e2e tests. e2e tests can also test external components working together.

All e2e tests are compiled into the openshift-tests binary. To build the test binary, run make.

To run a specific test, or an entire suite of tests, read test/extended/README for more information.

Updating external examples

hack/update-external-example.sh will pull down example files from external repositories and deposit them under the examples directory. Run this script if you need to refresh an example file, or add a new one. See the script and examples/quickstarts/README.md for more details.

Releases

This is the 3.11 release of OpenShift Origin. Backwards Compatibility

auth: The auth reconcile command is now deprecated as its functionality is part of the server #20177

The CLI command is now iden...

This is the official release of OpenShift Origin v3.10. Changes Roadmap for the v3.10 release v3.10.0 (2018-08-02) Full Changelog Component updates

Updates to Kubernetes

62085: Fix incorrect atomic...

v3.10.0-rc.0

Pre-release

Jun 20, 2018

Download .zip

This is the first release candidate of OpenShift Origin 3.10. Backwards Compatibility

Moving from legacy API resources (/oapi) to group resources

The server process endpoint now creates resources in...

Mar 30, 2018

Download .zip

This is the official feature release of OpenShift Origin. Changes Roadmap for the v3.9 release v3.9.0 (2018-03-30) Full Changelog Component updates

Updates to Kubernetes

51042: Allow passing request...

Mar 16, 2018

Download .zip

This is a patch release of OpenShift Origin. Changes v3.7.2 (2018-03-16) Full Changelog Component updates

Updates to Kubernetes

49624: Add daemonset to all categories #18478 53690: Fix hpa scaling a...

Contributors

openshift-merge-robot avatar openshift-merge-robot 5,510 commits deads2k avatar deads2k 3,379 commits smarterclayton avatar smarterclayton 3,088 commits openshift-merge-bot[bot] avatar openshift-merge-bot[bot] 1,542 commits soltysh avatar soltysh 1,101 commits liggitt avatar liggitt 984 commits mfojtik avatar mfojtik 950 commits bparees avatar bparees 871 commits danwinship avatar danwinship 640 commits dgoodwin avatar dgoodwin 526 commits

300 contributors by commits. Profile dekhne ke liye kisi bhi developer par click karein.