This sample walks through the process of login to an OpenShift cluster and deploying a Jenkins Pod in it. It also configures a simple application and then creates a Jenkins job to trigger a build of that application.
The Jenkins job will trigger OpenShift to build+deploy a test version of the application, validate that the deployment works, and then tag the test version into production.
-
Unless you have built OpenShift locally, be sure to grab the latest oc command
-
Login as a normal user
$ oc login
-
Create a project named "test"
$ oc new-project test
-
Run this command to instantiate a Jenkins server and service account in your project:
If your have persistent volumes available in your cluster:
$ oc new-app jenkins-persistent
Otherwise:
$ oc new-app jenkins-ephemeral
Note: This template uses an EmptyDir type volume. If you want to ensure your jenkins configuration/job information is persisted through pod restarts and deployments, you can use the jenkins-persistent-template.json template file which uses a persistent volume but requires additional PersistentVolume setup.
-
View/Manage Jenkins
If you have a router running, run:
$ oc get route
and access the host for the Jenkins route.
If you do not have a router or your host system does not support nip.io name resolution, you can access jenkins directly via the service ip. Determine the jenkins service ip ("oc get svc") and go to it in your browser on port 80. Do not confuse it with the jenkins-jnlp service.
Note: The OpenShift Login plugin by default manages authentication into any Jenkins instance running in OpenShift. When this is the case, and you do intend to access Jenkins via the Service IP and not the Route, then you will need to annotate the Jenkins service account with a redirect URL so that the OAuth server's whitelist is updated and allow the login to Jenkins to complete.
$ oc annotate sa/jenkins serviceaccounts.openshift.io/oauth-redirecturi.1=http://<jenkins_service_ip:jenkins_service_port>/securityRealm/finishLogin --overwrite
Login with the user name you supplied to
oc login
and any non-empty password.
A set of example Jenkins pipelines that illustrate the various OpenShift/Jenkins integration features are available in the 'pipeline' subdirectory.
Some references:
If you run into difficulties running OpenShift or getting the OpenShift Sample
job to complete successfully, start by reading through the troubleshooting guide.
The jenkins-ephemeral and jenkins-persistent templates are sourced from the jenkins image repository via the OpenShift Library, so they should not be directly updated here. Make changes upstream and then run make update-examples
to pull in changes.