Using Ghost on OpenShift Container Platform

To demonstrate a multi-tiered web application, I used ghost, the microblogging platform to deploy the application using kustomize. Kustomize is a higher-level orchestration of the steps to deploy an application with environment specific overlays.


  1. Clone the repository
git clone
  1. Install kustomize
$ brew install kustomize
  1. Login to your cluster using oc.

  2. Generate a randomized password

$ ENV_PASS=$(openssl rand -hex 10)
$ echo ${ENV_PASS}

Note, save the output…

  1. Generate the working url for the cluster/ghost app.
$ export WEB_DOMAIN=https://web-route-ghost.apps.$(oc get cluster -o yaml | grep domain | awk '{print $NF}')
$ echo ${WEB_DOMAIN}
  1. Change to the ghost/deploy directory using cd openshift-demo/ghost/deploy

  2. Create the secret for the database

$ cat secrets/01_db_secret.yml | sed "s|ENV_PASS|${ENV_PASS}|" | oc apply -f -
  1. Create the configmap for the Ghost app URL.
$ cat secrets/02_web_cm.yml | sed "s|WEB_DOMAIN|${WEB_DOMAIN}|" | oc apply -f -
  1. Create the deployment for the website
$ oc apply -k overlays/dev
namespace/ghost configured
service/db-service unchanged
service/web unchanged
persistentvolumeclaim/db-pvc unchanged
persistentvolumeclaim/web-content unchanged
deployment.apps/ghost-db unchanged
deployment.apps/web unchanged unchanged
  1. To clean it up you can run…
$ oc delete -k overlays/dev
namespace "ghost" deleted
service "db-service" deleted
service "web" deleted
persistentvolumeclaim "db-pvc" deleted
persistentvolumeclaim "web-content" deleted
deployment.apps "ghost-db" deleted
deployment.apps "web" deleted "web-route" deleted
  1. To see your website URL, you can grab the config map.
$ oc get cm -o yaml
  1. Navigate to the URL, such as to start setting up your site.

Note, if I had time, I would have generated a non-privileged user for MySQL and used that on the MySQL instance.








Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.