This repository holds OpenShift cluster manifests, component build manifests and CI workflow configuration for OpenShift component repositories for both OKD and OCP.
To setup a CI workflow for a new repository, use make new-repo
.
Configuration files for CI workflows live under ci-operator/
and are split into the following categories:
ci-operator/config
contains configuration for theci-operator
, detailing builds and tests for component repositories. See the contributing guide for details on how to configure new repositories or tests.ci-operator/jobs
contains configuration forprow
, detailing job triggers. In almost all cases, this configuration can be generated automatically from theci-operator
config. For manual edits, see the upstream configuration document for details on how to configure a job, but prefer theci-operator
config whenever possible.ci-operator/templates
contains black-box test workflows for use by theci-operator
. The parent directory's README documents how to use them. See the template document for general information on template tests.ci-operator/infra
contains manifests for infrastructure components used by theci-operator
. Contact a CI Administrator if you feel like one of these should be edited. (legacy: do not add new services here. Usecore-services
orprojects
instead.)
Manifests for important services (like OpenShift CI cluster
and the CI service components that run on it) are present in the
core-services
directory. The services configured in this
directory are critical for some part of the OpenShift project development
workflow, must meet basic quality criteria and must be deployed to the cluster
automatically by a postsubmit job. See its README
for details.
The services
directory contains manifests for services that run
on OpenShift CI cluster and are not critical
for the OpenShift project development workflow, but want to follow the same
quality criteria and automated check and deployment process that the core
services do (DPTP intends to support only
these additional services). See its README for details.
Manifests for cluster provisioning and installation live under cluster/
.
The OpenShift CI cluster is configured with the
manifests under cluster/ci/
. (legacy: do not add new
services here. Use core-services
or
services
instead.)
Clusters that are created by the testing infrastructure for validating OpenShift
are configured with the profiles under cluster/test-deploy/
.
For directions on how to set up clusters for development, see the
README.
Manifests for services that are in development, experimental, legacy or not
critical in some other way are present in the projects
directory. Compared to the core services and
services configuration,
these projects do not need to follow any common structure or conventions other
than clear ownership. They must not interfere with the core services in any way.
Additionally, manifests for building container images for component repositories
live under projects/
. This purpose is deprecated; authors of
components built by manifests in this directory should remove them and ensure
that their component is appropriately built by the ci-operator
instead.
Manifests for building container images for tools live under tools/
.
These tools are either useful in managing this repository or are otherwise useful
commonly across component repositories.