OpenShift Console

The Open Developer Platform provides access to a FINOS OpenShift Container Platform instance (also called FINOS OpenShift Console), the leading enterprise Kubernetes distribution, so that developers can try out integrations with other containers, build and test containerised architectures and enable continuously deployed code build pipelines.

Access is granted (free of charge) to all FINOS Contributors (see below); in this page we guide contributors to request access, understand the OpenShift FINOS setup and execute the first tests.

If you want to use OpenShift to power code build pipelines, check out the Continuous Delivery documentation page.


How to get access

In order to access the FINOS OpenShift Console, it is necessary to comply with the following requirements:

  1. You must be a contributor of a FINOS project
  2. You must have an account on developers.redhat.com; you can also sign up with your GitHub credentials

To request access, send an email to help@finos.org, with the following info:

  1. Name, surname and company
  2. Corporate email address
  3. GitHub ID
  4. Red Hat Login ID (when logged into Red Hat Developers portal, go to the account page)
  5. FINOS Projects and Working Groups

The FINOS Infra team will create a project for your project, grant permissions to your Red Hat user and notify you via email the link to access the FINOS OpenShift Console.

Glossary

Before getting into more details, please read below the terms inherited by OpenShift (and related) technologies.

  1. OpenShift V3 - A layered system designed to expose underlying Docker-formatted container image and Kubernetes concepts
  2. Kubernetes - The industry leading open source container orchestration framework
  3. Projects - A Kubernetes Namespace that contains (and isolates) resources
  4. Images A binary that includes all of the requirements for running a single container
  5. Image Streams - Resource that can be used to automatically perform an action when new images are created
  6. Containers The basic units of OpenShift Origin applications
  7. Pods One or more containers deployed together on one host, and the smallest compute unit that can be defined, deployed, and managed
  8. Services Internal load balancer that identifies a set of replicated pods and proxies the connections it receives to them
  9. Secrets Provide a mechanism to hold sensitive information, such as passwords, to decouple sensitive content from the pods
  10. Builds Process of transforming input parameters into a resulting object; OpenShift Online supports Source to Image (S2I) and Pipeline types; although the Foundation have successfully tested both strategies, the S2I seems to be more flexible
  11. Deployment (Config) - Resource that accepts triggers (ie Image Streams) and deploys pods
  12. Templates  Describes a set of objects that can be parameterized and processed to produce a list of objects for creation by OpenShift Origin

Interacting with FINOS OpenShift

There 2 main ways to interact with OpenShift:

  1. Web Console on manage.openshift.com ; not all operations are available across all resources, but it's very handy to review the service status, check logs, force restarts and other administrative tasks
  2. OpenShift CLI (oc) ; everything can be done via CLI; this is normally used to initially setup a project, run local tests and integrate OpenShift in build pipelines. You will need a session token to authenticate via the CLI, that you can copy from the Command Line Tools page in the Web Console (you must be logged in)

Initial commands

Below are some initial commands to get started with the OpenShift CLI, also including some we found useful in the past.

# Login on FINOS OpenShift - copy from https://console.pro-us-east-1.openshift.com/console/command-line
export OC_TOKEN=...
oc login https://api.pro-us-east-1.openshift.com --token=$OC_TOKEN

# List of projects
oc projects

# Select a specific project; all next commands will refer to that project
oc project my_bot

# Show list of services, builds, pods and deployments for the current project
oc status

# Import an image from Docker Hub
oc import-image maoo/s2i-java-binary --all --confirm

# Processes an OpenShift template definition and passes parameter values
oc process -f bot_template.yaml -p BOT_NAME=my_botname | oc create -f -

# Start an OpenShift build, passing an archive or a folder
oc start-build my_botname --from-archive=./target/archive.zip --wait=true
oc start-build my_botname --from-dir=./target/my_botname --wait=true

# Deletes all resources with label 'app' equals to 'my_botname'
oc delete all -l app=my_botname