commissioner
v2.3.0
Published
Configuration helper for node.js services running with consul and/or Docker
Downloads
14
Maintainers
Readme
commissioner
commissioner
is a small configuration helper for node.js services. It will help you if meet the following:
- use Docker/Docker Compose (linked containers),
- and/or use consul for service discovery,
- you don't want to care about environment in which you application runs, you just want to get IP and port of dependent service.
Example
var service_name = 'redis';
var service_port = 6379;
commisioner(service_name, service_port, function(err, records) {
console.log(records[0].addr);
console.log(records[0].port);
});
or with fallback
var options = {
fallbackAddr: 'localhost',
fallbackPort: 6379
};
commisioner(service_name, service_port, options, function(err, records) {
console.log(records[0].addr);
console.log(records[0].port);
});
Strategy
- Query DNS (SRV) for
<service_name>.consul.service
and return records, if not found goto #2. - Query DNS (SRV) for
<service_name>-<port>.consul.service
and return records, if not found goto 3. - Get ADDR/PORT from ENV (Environment Variables in container) and return, if not found goto 4.
- if fallback ADDR and PORT passed, return them, otherwise return error.