Deploying the Application via Command Line Interface

We can deploy our application via the OpenShift Command Line Interface (CLI).

Installing the Client

We should begin by downloading the OpenShift 3.11 origin and extract the archived file to $HOME/bin directory. Then, we should add the directory to the $PATH variable. In Linux, we can append the following line to our .bashrc file.

export PATH="$HOME/bin/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/:$PATH"

Now, we can test that your installation works by calling the help command.

oc --help

The OKD 3.11 documentation explains how to use OpenShift with different commands.

Login

Let's login to OpenShift using the token obtained from the Web User Interface. We recommend to keep the web user interface open if you want to see visually how your deployment is progressing.

oc login "https://rahti.csc.fi:8443" --token=<hidden>

Check OpenShift and Kubernetes versions.

oc version
oc v3.11.0+0cbc58b
kubernetes v1.11.0+d4cacc0
features: Basic-Auth GSSAPI Kerberos SPNEGO

Server https://rahti.csc.fi:8443
openshift v3.11.0+7876dd5-361
kubernetes v1.11.0+d4cacc0

Creating a Project

We denote the user defined parameters using variables.

PROJECT="app"
APP="genie"
REPO="https://github.com/csc-training/GenieWebApp.jl"

We can create a new project.

oc new-project $PROJECT

If a project already exists, we can change to existing project instead.

oc project $PROJECT

We can list existing projects

oc projects
You have one project on this server: "app".

Using project "app" on server "https://rahti.csc.fi:8443".

We can show an overview of our current project.

oc status
In project app on server https://rahti.csc.fi:8443

You have no services, deployment configs, or build configs.
Run 'oc new-app' to create an application.

Deploying the Application

Create new application, build the Docker container for the repository and deploy it to OpenShift

oc new-app $REPO --name=$APP

Creating a Secure Route

We can expose the application to the internet by creating a Route.

oc create route edge \
    --insecure-policy="Redirect" \
    --service=$APP \
    --hostname="$APP.rahtiapp.fi"

Application should now be available in https://$APP.rahtiapp.fi.

Adding Persistent Storage

We can create a persistent storage and mount it to the application with a Persistent Volume Claim (PVC).

oc set volume dc/$APP \
    --add \
    --name="volume-1" \
    --type="PersistentVolumeClaim" \
    --claim-name="genie-volume" \
    --claim-mode="ReadWriteMany" \
    --claim-size="1G" \
    --mount-path="/home/genie/app/data"

Rebuilding Application

If we update our application and want to propagate the changes to the server, can start a new build.

oc start-build $APP