Create Your Own Build Pipelines with OpenShift 3.3

In these videos

In his two-part demo, Veer Muchandi walks through creating and editing a build pipeline for use across multiple projects in OpenShift 3.3.

Part 1

Notes for Part 1:
The build configuration used for creating the pipeline is https://github.com/VeerMuchandi/pipeline-example/blob/master/pipeline.yml

Part 2

 
Notes for Part 2:
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’.

build-pipeline-example

Here are the commands 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 development

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

The Author

You can find Veer’s other posts here, which include many other demos and walkthroughs for OpenShift Origin and OpenShift Container Platform.

On Twitter: @VeerMuchandi

Other Videos

View the Entire OpenShift 3 Demo Playlist

For the latest information on OpenShift 3, please visit https://www.openshift.com/.

Categories
News, OpenShift Container Platform, OpenShift Origin, Products, Videos
Tags
, , , , , , ,

3 Responses to “Create Your Own Build Pipelines with OpenShift 3.3”

  1. Veer Muchandi

    OCP 3.3 has released the Pipelines as a Technology Preview feature and is not enabled by default when you install OpenShift. Post installation you would want to do the following to get the above examples to work:

    1. Add this script to /etc/origin/master/master-config.yaml. Refer this page https://docs.openshift.com/container-platform/3.3/install_config/web_console_customization.html#web-console-enable-tech-preview-feature and be extra careful with indentation

    assetConfig:
    extensionScripts:
    – /etc/origin/master/techpreview.js

    content of techpreview.js is the following
    # cat techpreview.js
    window.OPENSHIFT_CONSTANTS.ENABLE_TECH_PREVIEW_FEATURE.pipelines= true;

    2. Add Jenkins pipeline config. You can add this to the end of master-config.yam. Refer this page https://docs.openshift.com/container-platform/3.3/install_config/configuring_pipeline_execution.html and be extra careful with indentation.

    jenkinsPipelineConfig:
    autoProvisionEnabled: true
    parameters: null
    serviceName: jenkins
    templateName: jenkins-ephemeral
    templateNamespace: openshift

    and restart
    systemctl restart atomic-openshift-master

  2. psnively

    Does anyone happen to know how to try this out in the Origin All-in-One VM? Thanks!

  3. shrish

    Hi ,

    I dont know if someone faced the problem with the deployment config.I had to change following in my deployment config in order to get it working.
    —————————————————————
    triggers:

    type: ImageChange
    imageChangeParams:
    automatic: false
    containerNames:
    – myapp
    from:
    kind: ImageStreamTag
    namespace: development
    name: ‘myapp:latest’
    —————————————————————

    One need to specify imageChangeParams: section otherwise it starts picking up images from docker repo instead of internal repo.

Comments are closed.