Government of British ColumbiaGovernment of British Columbia

DevHub

beta
Resource Information

License

OpenShift Components

A trove of apps/components/stuff/things that are usable by anyone running OpenShift - in particular BC Gov teams "doing" Agile/DevOps.

For the most part (maybe 100%...), this repo contains the OpenShift build and/or deployment templates for building and/or running things in OpenShift - it does not contain the "things" themselves.

This is heavily under development and documentation may be scant. You've been warned.

In its current form, this repo is a central place for the DevOps team to collect artifcats for the shared things it is providing, but also about "discovery" by teams of shared things that are available so fewer wheels are reinvented within BC Gov.

apps

This folder contains artifacts for useful team "support applications". These are things that team would generally install and use, rather than using as the basis of custom development.

Taiga

Taiga is a user-friendly Agile project management and collaboration tool with functionality somewhere between Trello and Jira. The assets provided here enable a team to deploy their own Taiga instance within an OpenShift project space.

cicd

Docker files to build Jenkins builder images

Android

This image contains OpenJSK >= 1.8.0 and the Android SDK manager / tools for gradle builds. See the Docker file for more precise version information.

BDD Stack

Python3

This image contains Python 3 and support tools like pip.

Python 3 & node.js 6.11

This image contains Python 3 (with pip) and RedHat node.js 6.11 (with npm).

node.js 6.11 && node.js 8.11

This image contains stock node.js 6.11 with the latest npm (>= 6.0.0), yarn, and nsp cli tools installed globally; see NODE_HOME to find installed components.

npm > 5.7.0 has the ci option that greatly increases package install in a ci environment. Consider using it!

Image Reference 172.50.0.2:5000/openshift/jenkins-slave-node6:latest

Sonar

Zap

db

Docker files to build data storage images

  • PostGIS RHEL7 PostgreSQL 9.6 base image with PostGIS 2.4 extension(s).

How To

These images are manually built (and rebuild) when the Jenkins slave image is updated. Contact your friendly neighbourhood DevOps lead if you need something built or keep reading to do-it-yourself.

To build your own image, and add it to the registry, but keep it private to your image stream(s) you can use the OpenShift build.json template in this repo with the following command (make sure you're in tools ;) ):

oc process -f build.json \
-p NAME=jenkins-slave-node \
-p OUTPUT_IMAGE_TAG=6 \
-p GIT_REPO_URL=https://github.com/BCDevOps/openshift-components.git \
-p SOURCE_CONTEXT_DIR=cicd/nodejs6 | oc create -f -
ParameterOptionalDescription
NAMENOThe name of your image
GITREPOURLYESThe location of the repository
SOURCECONTEXTDIRYESThe path to the Dockerfile

You normally dont need to change GIT_REPO_URL unless you've cloned the repo and have added or changed Dockerfiles.

You can then check the Web GUI or use oc get builds to see the build progress. When done you'll have a newly minted Docker image you can use; just reference the image from your own image stream rather than OpenShift For example:

Image StreamReference
OpenShift172.50.0.2:5000/openshift/jenkins-slave-node
Your Project172.50.0.2:5000/mycool-project-tools/jenkins-slave-node

Pro Tip

You can use the following command to find the latest version for a particular majour version:

curl -s https://nodejs.org/dist/latest-v8.x/ | \
sed -E 's/<[^>]*>//g' | \
grep 'linux-x64.tar.xz' | \
awk '{ print $1 }' | \
awk -F\- '{ print $2 }'

Update the Docker files with this version (and create PR).