Giter Club home page Giter Club logo

openeo-eodc-driver's Introduction

openEO: OpenShift Driver

Information

  • 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:

Installation

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

Requirements

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

Parameters

  • 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. http://openeo.example.com)
  • OPENSHIFT_API URI for accessing the OpenShift API (e.g. http://openshift.example.com)
  • CSW_SERVER URI for accessing CSW server (e.g. http://csw.example.com)

Contributing

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 manage.py test
  • Run service locally: python manage.py runserver
  • Recreate service database: python manage.py recreate_db
  • Seed service database: python manage.py seed_db
  • Drop service database: python manage.py drop_db
  • Migrate service database: python manage.py db migrate
  • Upgrade service database: python manage.py db upgrade

openeo-eodc-driver's People

Contributors

mklan avatar sophieherrmann avatar lforesta avatar gunnarbusch avatar m-mohr avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.