# OADP CI Reference
###### tags: `CI_Contributors`
Onboarding and Guides
---
* Start here for OpenShift CI:
* [getting started guide](https://docs.ci.openshift.org/docs/how-tos/onboarding-a-new-component/)
* [optional operator guide](https://docs.ci.openshift.org/docs/how-tos/testing-operator-sdk-operators/)
Related links that may help:
* https://github.com/openshift/release#ci-workflow-configuration
* https://github.com/openshift/release/tree/master/ci-operator/jobs
* https://github.com/redhat-operator-ecosystem/release
Reference
---
### base_images
* Provides a mapping of named `ImageStreamTags` which will be available for use in container image builds. The list of base images describe which images are going to be necessary outside of the pipeline. The key will be the alias that other steps use to refer to this image.
* [Read more about Configuring Inputs in CI-operator](https://docs.ci.openshift.org/docs/architecture/ci-operator/#configuring-inputs)

### build_root
* Defines the ImageStreamTag in which dependencies exist for building executables and non-image artifacts. BuildRootImage supports two ways to get the image that the pipeline will cache on. The one way is to take the reference from an image stream, and the other from a dockerfile.
* [Read more about build-root-image in CI-operator](https://docs.ci.openshift.org/docs/architecture/ci-operator/#build-root-image)

### images
* Images describes the `images` that are built baseImage of the project as part of the release process. The name of each image is its "to" value and can be used to build only a specific image.
* [Read more about building container-images in CI-operator](https://docs.ci.openshift.org/docs/architecture/ci-operator/#building-container-images)
* There are two images: line 16 Oadp-operator and line 23 test-oadp-operator. These two images are similar except test-oadp-operator image has 777 permissions to download required dependencies and access to certain directories while executing E2E test. This solution is temporary to solve multiple permission denied errors. Detailed documentation of this approach:
* [Promotion(to an integration ImageStream): Solution for Permission Denied](https://docs.google.com/document/d/1XzJjMyIRLfPTMw_rbkJjc0CvxPGqFfIEhTXi7uTOi3Q/edit)
* Here OADP-Operator is built using [docker file](https://github.com/openshift/oadp-operator/blob/master/Dockerfile)
* This image has OADP- Operator + PR
* inputs (line 18 - 21): image is built FROM quay.io/app-sre/boilerplate:image-v2.1.0 as builder; however CI does not have access to the image so it is substituted by ocp_builder_rhel-8-golang-1.16-openshift-4.9 (initialized in base image line 6)
Test-oadp-operator:https://github.com/openshift/oadp-operator/blob/master/build/ci-Dockerfile
### Operators
* Operator describes the operator bundle(s) that is built by the project
* bundles: Line 19 to 20
Bundles define a dockerfile and build context to build a bundle
substitutions:Line 21 to 23
Substitutions describes the pullspecs in the operator manifests that must be substituted with the pull specs of the images in the CI registry
https://github.com/openshift/oadp-operator/blob/master/deploy/olm-catalog/bundle/manifests/oadp-operator.v99.0.0.clusterserviceversion.yaml
[link](https://github.com/openshift/release/blob/master/ci-operator/config/openshift/oadp-operator/openshift-oadp-operator-master.yaml)