The build configuration used for creating the pipeline is https://github.com/VeerMuchandi/pipeline-example/blob/master/pipeline.yml
The initial Jenkinsfile is https://github.com/VeerMuchandi/pipeline-example/blob/master/Jenkinsfile1.txt
The edited Jenkinsfile is https://github.com/VeerMuchandi/pipeline-example/blob/master/Jenkinsfile2.txt
In this example, the pipeline runs in the CICD Project. We will build and deploy an application first in a project named 'Development'. Later we will push the image created into a project named 'Testing'.
Here are the commands I used from the OpenShift CLI:
Creating a development
Project and to provide edit
access to the jenkins
service account in the development
project.
oc new-project development
oc policy add-role-to-user edit system:serviceaccount:cicd:jenkins -n development
Creating a testing
Project . Provide edit
access to the jenkins
service account in the testing
project. Then provide image-puller
access, so that testing
project can pull an image from the development
project.
oc new-project testing
oc policy add-role-to-user edit system:serviceaccount:cicd:jenkins -n testing
oc policy add-role-to-group system:image-puller system:serviceaccounts:testing -n development
To create a deployment configuration in the testing
project that points to the image from development project, create a service and route:
oc create deploymentconfig myapp --image=<<RegistryServiceIP>>:5000/development/myapp:promoteToQA
oc expose dc myapp --port=8080
oc expose svc myapp