Skip to content

kenperkins/coreos-cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

coreos-cluster Build Status NPM version

Create a fully functional CoreOs Cluster on Rackspace Cloud from any node.js application. A command-line version of coreos-cluster is available on npm as coreos-cluster-cli.

Quick Example

var cluster = require('coreos-cluster');

cluster.createCluster({
  numNodes: 10,
  type: 'performance',
  release: 'beta',
  keyname: 'my-ssh-keyname',
  credentials: {
    username: 'your-user-name',
    apiKey: 'some-key-here',
    region: 'iad'
  }
}, function(err, results) {
  // will callback with a functional cluster
});

Options

  • numNodes - required. Number of nodes. Clusters must have at least 3 nodes
  • type - Optional. performance or onMetal servers, defaults to performance vms
  • release - Optional. coreos release: stable (default), beta or alpha
  • keyname - Optional. Rackspace Cloud Servers SSH keyname. If not provided, will create a new ssh key and include in the results
  • flavor - Optional. The Rackspace Cloud Servers flavor. Defaults to performance1-1 flavor for performance and onmetal-compute1 for onMetal
  • privateNetwork - Optional. Guid for a rackspace private network. Will configure etcd to use the private network.
  • monitoringToken - Optional. Will configure the nodes for Rackspace cloud monitoring.
  • discoveryServiceUrl - Optional. Url for an existing cluster's discovery service. Will add numNodes to current cluster instead of create a new cluster.
  • update - Optional. Update strategies.
  • credentials - Required. The credentials for the create cluster call
    • username - Username for your rackspace account
    • apiKey - Api key for your rackspace account
    • region - Region to create the cluster in
    • useInternal - Optional, use local service net interface if calling from Rackspace Cloud machines

Advanced Usage Example

var cluster = require('coreos-cluster');

cluster.createCluster({
  numNodes: 10,
  type: 'performance',
  release: 'beta',
  keyname: 'my-ssh-keyname',
  discoveryServiceUrl: 'https://discovery.etcd.io/some-guid-here',
  privateNetwork: '4c371711-44ae-15ab-86af-45438fb96a15',
  monitoringToken: 'your-monitoring-token',
  update: {
      group: '0a809ab1-c01c-4a6b-8ac8-6b17cb9bae09',
      server: 'https://customer.update.core-os.net/v1/update/',
      rebootStrategy: 'best-effort'
  },
  credentials: {
    username: 'your-user-name',
    apiKey: 'some-key-here',
    region: 'iad'
  }
}, function(err, results) {
  // will callback with a details of the added nodes
});

Installation

npm install coreos-cluster

Next Steps

As coreos-cluster is built on pkgcloud, the next step is to add a provider option that allows you to use different compute providers within pkgcloud.

About

Create a coreos cluster from node.js

Resources

License

Stars

Watchers

Forks

Packages

No packages published