Visual workflows for Openshift
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
certs
public
routes
views
.editorconfig
.gitignore
.travis.yml
Readme.md
app.js
browser.js
package.json

Readme.md

Openshift Workflows

A client for the OpenShift which provides an interface to the Broker-API for simple deployments as well as more complicated workflows.

Screenshot

Installation

  • Get the latest source code
$ git clone https://github.com/subszero/openshift-workflows.git
  • Install NodeJS and NPM from here

  • Install all dependencies

$ npm install
  • Generate new SSL certificates in the certs/ folder

  • Run the server and open the page in a browser

$ node app.js -b

Configuration files

This application was built to be used with the FreeShift or MegaShift service provided on the Red Hat Cloud. However, it can be used with any deployment of the Openshift Origin. If however, you have tweaked this to include non-standard cartridges and templates, it may be required to make changes in the following configuration files -

  • public/conf/images.json - This file controls the images that are used to display cartridges on the screen.
{
    "Node.js 0.6": "/img/icons/nodejs.png",
    "Zend Server 5.6": "/img/icons/zend.png",
    "Ruby 1.9": "/img/icons/ruby.png",
    "JBoss Application Server 7.1": "/img/icons/jboss_as7.png",
    "Python 2.6": "/img/icons/python.png",
    "Jenkins Server 1.4": "/img/icons/jenkins.png",
    "Ruby 1.8": "/img/icons/ruby.png",
    "JBoss Enterprise Application Platform 6.0": "/img/icons/jboss.png",
    "PHP 5.3": "/img/icons/php.png"
}

The file stores a hash with the name of the cartridge as key and the location of the corresponding image as value.

  • public/conf/templates.json - This file controls the images that are used to display templates on the screen.
{
    "CakePHP": "/img/icons/cakephp.png",
    "CakePHP (TEST)": "/img/icons/cakephp_Test.png",
    "Django": "/img/icons/django.png",
    "Django (Test)": "/img/icons/django_Test.png"
}

The file stores a hash with the name of the template as key and the location of the corresponding image as value.

  • public/conf/rules.json - This file defines dependencies between cartridges and templates, so that a semantically correct workflow can be defined.
{
    "cartridge": {
        "rockmongo-1.1": ["mongodb-2.2"],
        "10gen-mms-agent-0.1": ["mongodb-2.2"],
        "phpmyadmin-3.4": ["mysql-5.1"]
    },
    "template": {
        "cakephp": ["mysql-5.1"],
        "drupal": ["mysql-5.1"],
        "rails": ["mysql-5.1"],
        "wordpress": ["mysql-5.1"]
    }
}

The configuration file has two parts, the cartridge hash, which stores the dependencies of cartridges, ie. "rockmongo-1.1": ["mongodb-2.2"] means that RockMongo cannot be installed without MongoDB installed first. The second part of this configuration file, the template hash, stores the embedded cartridges that are installed along with the template, ie. "cakephp": ["mysql-5.1"] means that CakePHP installs MySQL as one of it's embedded cartridges.

Useful Links

Openshift

Application Architecture

Poster

Technologies used in the backend

Technologies used in the frontend