# How to configure a CI/CD pipeline for eDivorce on OpenShift
# Uploading Templates into OpenShift
- Create a project to house the Jenkins instance that will be responsible for promoting application images (via OpenShift ImageStreamTagS) across environment; the exact project name used was "edivorce".
- Create the BuildConfiguration within this project using the ```oc``` command and "edivorce-build-template.yaml" file in the templates directory:
1. Clone the project from Github, and then ```cd``` into the openshift/templates directory.
- Deploy a Jenkins instance with persistent storage into the edivorce project using the web gui
- Install the Promoted Builds Jenkins plugin
- Configure a job that has an OpenShift ImageStream Watcher as its SCM source and promotion states for each environment
- In each promotion configuration, tag the target build's image to the appropriate promotion level; this was done using a shell command because the OpenShift plugins do not appear to handle parameter subsitution inside promotions properly.
- Create an OpenShift project for each "environment" (e.g. DEV, TEST, PROD); Exact names used were jag-csb-edivorce-dev, jag-csb-edivorce-test, jag-csb-edivorce-prod
- Configure the access controls to allow the Jenkins instance to tag imagestreams in the environment projects, and to allow the environment projects to pull images from the eDivorce project:
1. Give the dev/test/prod projects access to ImageStreams stored in the tools project
@ -58,7 +90,7 @@ There are several environments set up for different purposes within OpenShift. T
# How to access OpenShift for eDivorce
# How to access OpenShift for eDivorce
## Web UI
## Web UI
- Login to https://console.pathfinder.gov.bc.ca:8443; you'll be prompted for GitHub authorization.
- Login to https://console.pathfinder.gov.bc.ca:8443; you'll be prompted for GitHub authorization. You must be part of the BCDevOps Github organization, and you must have access to the eDivorce projects.
## Command-line (```oc```) tools
## Command-line (```oc```) tools
- Download OpenShift [command line tools](https://github.com/openshift/origin/releases/download/v1.2.1/openshift-origin-client-tools-v1.2.1-5e723f6-mac.zip), unzip, and add ```oc``` to your PATH.
- Download OpenShift [command line tools](https://github.com/openshift/origin/releases/download/v1.2.1/openshift-origin-client-tools-v1.2.1-5e723f6-mac.zip), unzip, and add ```oc``` to your PATH.
@ -71,19 +103,13 @@ There are several environments set up for different purposes within OpenShift. T
# Data management operations
# Data management operations
todo: add instructions on how to 'oc rsh' into the django pod to manage the postgresql pod
# Background reading/Resources
[Free OpenShift book](https://www.openshift.com/promotions/for-developers.html) from RedHat – good overview
[Red Hat Container Development Kit](http://developers.redhat.com/products/cdk/overview/)
OpenShift CI/CD pieline Demos:
- https://www.youtube.com/watch?v=65BnTLcDAJI
- https://www.youtube.com/watch?v=wSFyg6Etwx8
You can either use the terminal window in the OpenShift console or the ```oc rsh``` command to get to the command line on the postgresql pod.
```
oc rsh postgresql-2-qp0oh
psql -d default
\dt
```
** the pod identifiers change regularly, you need to find the current one