openEO driver for Redhat OpenShift Origin
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

openEO: OpenShift Driver


  • version: 0.3
  • Python: 3.6.2
  • Databases: Postgres, Redis
  • Message Broker: RabbitMQ
  • Dependencies: Flask, Nameko

The openEO OpenShift driver provides openEO API functionality on top of RedHat's OpenShift Origin. A flask REST client on route /jobs is provided.

For more information on OpenShift please visit:


Template File

The template file (template.json) is an OpenShift descriptive file that is used to implement an environment and its parameterized objects.A template can be processed and the included objects will be created in the project namespace. The openEO Openshift template file uses references to the public git repository to build and deploy the required services (/services). For further information please visit: OpenShift Templates


Installation Steps

  • Log into OpenShift instance usuing OpenShift Client Tools (oc): oc login <openshift_api_url>
  • Create new project for openEO: oc new-project <openeo_project_name>
  • Create new project for job execution: oc new-project <execution_project_name>
  • Create a service account: oc create serviceaccount robot
  • Grant admin role to service account: oc policy add-role-to-user admin system:serviceaccounts:test:robot
  • Fill out parameters in OpenShift template file (template.json)
  • Change to the created OpenShift openEO project: oc project <openeo_project_name>
  • Download the template.json from the git repository
  • Process the template and create objects: oc process template.json | oc create -f -
  • The project will now be setup in the openeo namespace and can be accesses over the host name that was specified in the template file


  • EXECUTION_NAMESPACE: Namspace of OpenSHift project for job execution (e.g. "execution-environment")
  • SERVICEACCOUNT_TOKEN: Permanent token of a service account in the execution namespace that can bus used to access the OpenShift API
  • STORAGE_CLASS: Storage class for PersitantVolumeClaims that should be used (e.g. "storage-write")
  • OPENEO_API URI for accessing the openEO API (e.g.
  • OPENSHIFT_API URI for accessing the OpenShift API (e.g.
  • CSW_SERVER URI for accessing CSW server (e.g.


Developing Locally

MiniShift is a tool for local development by launching a single node OpenShift cluster. It can be downloaded at MiniShift Furthermore, for developing locally on an external cluster the port of the pods in the project namespace can be forwarded to a local machine:

  • Login into the OpenShift instance: oc login <openshift_api_url>
  • Switch to openEO project: oc project <openeo_project_name>
  • Get names of pods in project: oc get pods
  • Forward ports of pods that are needed for developing (e.g. database/service): oc port-forward <pod> [<local_port>:]<pod_port> [[<local_port>:]<pod_port> ...]
  • E.g. oc port-forward -p openeo-user-postgres-1-s2da 5432:5432

Further Commands:

  • Delete all objects in namespace (except secrets and pvcs): oc delete all --all
  • Run service test: python test
  • Run service locally: python runserver
  • Recreate service database: python recreate_db
  • Seed service database: python seed_db
  • Drop service database: python drop_db
  • Migrate service database: python db migrate
  • Upgrade service database: python db upgrade