Secret Binary Resource for providing confidential information for the build. Source to provide all input from the outside. This input has to be provided when starting the build. The choice of which input sources we can use in which way depends on the build strategy.  Binary  and  Git  are mutually exclusive source types. All other sources can be combined or used standalone. We will see later in Example 25-1 how this works. All the build information is defined in a central resource object called BuildConfig. We can create this resource either by directly applying it to the cluster or by using the CLI tool  oc , which is the OpenShift equivalent of  kubectl .  oc  supports build specific command for defining and triggering a build. Before we look at BuildConfig, we need to understand two additional concepts spe‐ cific to OpenShift. An  ImageStream  is an OpenShift resource that references one or more container images. It is a bit similar to a Docker repository, which also contains multiple images with different tags. OpenShift maps an actual tagged image to an ImageStreamTag resource so that an ImageStream (repository) has a list of references to ImageStream‐ Tags (tagged images). Why is this extra abstraction required? Because it allows Open‐ Shift to emit events when an image is updated in the registry for an ImageStreamTag. Images are created during builds or when an image is pushed to the OpenShift inter‐ nal registry. That way, build or deployment can listen to these events and trigger a new build or start a deployment. To connect an ImageStream to a deployment, OpenShift uses the DeploymentConfig resource instead of the Kubernetes Deployment resource, which can only use container image references directly. However, you can still use vanilla Deployment resources in Open‐ Shift, if you don’t plan to use ImageStreams. The other concept is a  trigger , which we can consider as a kind of listener to events. One possible trigger is  imageChange , which reacts to the event published because of an ImageStreamTag change. As a reaction, such a trigger can, for example, cause the rebuild of another image or redeployment of the Pods using this image. You can read more about triggers and the kinds of triggers available in addition to the  imageChange trigger in the OpenShift documentation. 224  |  Chapter 25: Image Builder