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
.
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
});
numNodes
- required. Number of nodes. Clusters must have at least 3 nodestype
- Optional. performance
or onMetal
servers, defaults to performance
vmsrelease
- 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 resultsflavor
- 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.
group
- The update group, can be "master", "stable", "alpha", "beta", or a UUID for a custom CoreUpdate group.server
- Server to get updates from, e.g. https://public.update.core-os.net or https://customer.update.core-os.netrebootStrategy
- When to reboot after an update. E.g. best-effort, etcd-lock, reboot, off.credentials
- Required. The credentials for the create cluster call
username
- Username for your rackspace accountapiKey
- Api key for your rackspace accountregion
- Region to create the cluster inuseInternal
- Optional, use local service net interface if calling from Rackspace Cloud machinesvar 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
});
npm install coreos-cluster
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
.