Overview

The first time a user creates a build configuration using the Pipeline build strategy, OpenShift Container Platform looks for a template named jenkins-ephemeral in the openshift namespace and instantiates it within the user’s project. The jenkins-ephemeral template that ships with OpenShift Container Platform creates, upon instantiation:

  • a deployment configuration for Jenkins using the official OpenShift Container Platform Jenkins image

  • a service and route for accessing the Jenkins deployment

  • a new Jenkins service account

  • rolebindings to grant the service account edit access to the project

Cluster administrators can control what is created by either modifying the content of the built-in template, or by editing the cluster configuration to direct the cluster to a different template location.

To modify the content of the default template:

$ oc edit template jenkins-ephemeral -n openshift

To use a different template, such as the jenkins-persistent template which uses persistent storage for Jenkins, add the following to your master configuration file:

jenkinsPipelineConfig:
  autoProvisionEnabled: true (1)
  templateNamespace: openshift (2)
  templateName: jenkins-persistent (3)
  serviceName: jenkins-persistent-svc (4)
  parameters: (5)
    key1: value1
    key2: value2
1 Defaults to true if unspecified. If false, then no template will be instantiated.
2 Namespace containing the template to be instantiated.
3 Name of the template to be instantiated.
4 Name of the service to be created by the template upon instantiation.
5 Optional values to pass to the template during instantiation.

When a Pipeline build configuration is created, OpenShift Container Platform looks for a Service matching serviceName. This means serviceName must be chosen such that it is unique in the project. If no Service is found, OpenShift Container Platform instantiates the jenkinsPipelineConfig template. If this is not desirable (if you would like to use a Jenkins server external to OpenShift Container Platform, for example), there are a few things you can do, depending on who you are.

  • If you are a cluster administrator, simply set autoProvisionEnabled to false. This will disable autoprovisioning across the cluster.

  • If you are an unpriviledged user, a Service must be created for OpenShift Container Platform to use. The service name must match the cluster configuration value of serviceName in the jenkinsPipelineConfig. The default value is jenkins. If you are disabling autoprovisioning because you are running a Jenkins server outside your project, it is recommended that you point this new service to your existing Jenkins server. See: Integrating External Services

The latter option could also be used to disable autoprovisioning in select projects only.

OpenShift Jenkins Client Plugin

The OpenShift Jenkins Client Plugin is a Jenkins plugin which aims to provide a readable, concise, comprehensive, and fluent Jenkins Pipeline syntax for rich interactions with an OpenShift API Server. The plugin leverages the OpenShift command line tool (oc) which must be available on the nodes executing the script.

For more information about installing and configuring the plugin, please use the links provided below which reference the official documentation.

Are you a developer looking for information about using this plugin? If so, see OpenShift Pipeline Overview.

OpenShift Jenkins Sync Plugin

This Jenkins plugin keeps OpenShift BuildConfig and Build objects in sync with Jenkins Jobs and Builds.

The OpenShift jenkins Sync Plugin provides the following:

  • Dynamic job/run creation in Jenkins.

  • Dynamic creation of slave pod templates from ImageStreams, ImageStreamTags, or ConfigMaps.

  • Injecting of environment variables.

  • Pipeline visualization in the OpenShift web console.

  • Integration with the Jenkins git plugin, which passes commit information from OpenShift builds to the Jenkins git plugin.

For more information about this plugin, see: