node package manager
It’s your turn. Help us improve JavaScript. Take the 2017 JavaScript Ecosystem Survey »

fh-target-openshift3

fh-target-openshift3

A module to provide pluggable express middleware to FeedHenry APIs for targeting OpeShift V3.

Note: Current existing targets are part of the fh-supercore module. This one has been designed as a standalone module instead.

Using https://github.com/fheng/grunt-fh-build for building.

Usage

var openshift3Target = require('fh-target-openshift3')({logger : logger.getLogger() }); // logger from supercore passed in
// suggested way to build params
var params = _.extend(req.body, req.params);
params.appProps = req.appProps; // app props from millicore call
params.title = 'someuniqueapplicationname'; // all lower case, no spaces
params.mbaasConf = req.mbaasConf; // the mBaaS target config object right from Mongo
params.millicore = { url : '', ...}; // millicore config object as per supercore

// then, interact with target
openshift3Target.host(params, function(err, hostRes){
  console.log(hostRes.url);
});

openshift3Target.deploy(params, function(err, cacheKeyPollingResult){
  
});

Templates

Templates are STI-based build definitions which provide a series of objects to OpenShift for creating an application. At present, only one build template will exist, providing support for

  • A Node.js app
  • A MongoDB Database
  • A Redis instance

This template can be expanded in future to provide more production-suitable templates which include Mongo replicas, clusters Redis.

MBaaS Template

If using the MBaaS Template, the images to use for each service can be configured by setting the templateImages param:

params.templateImages = {
  mongodb: 'myregistry.example.com/mongodb_image:latest',
  redis: 'myregistry.example.com/redis_image:latest',
  fhstatsd: 'myregistry.example.com/fh-statsd_image:latest',
  fhmetrics: 'myregistry.example.com/fh-metrics_image:latest',
  fhmessaging: 'myregistry.example.com/fh-messaging_image:latest',
  fhmbaas: 'myregistry.example.com/fh-mbaas_image:latest'
};

Usage

This module is not published yet so 'npm link' is used.

Pull down the module and npm install. Then npm link. After that, move to the super core folder and npm link fh-target-openshift3, and all should be good to go.

Integration Tests

Integration tests are written in Mocha and rely on environment variables. To run:

export OS_HOST="someOpenShiftHost.com:8443"
export OS_NAMESPACE="someProjectName"
export OS_TOKEN="1a2bYourBearerTokenHere"
export OS_GIT_URL="some git url e.g. git://github.com/cianclarke/helloworld-cloud.git"
export OS_ROUTE_HOSTNAME="some hostname e.g.inttest.openshift-devops.feedhenry.net"
# then run te tests
grunt fh:integrate

more...

coming soon...

TODO: Add copyright, license, and so forth.