ember-cli-deploy-consul-config

An EmberCLI Deploy plugin to retrieve config values from Hashicorp's Consul

Usage no npm install needed!

<script type="module">
  import emberCliDeployConsulConfig from 'https://cdn.skypack.dev/ember-cli-deploy-consul-config';
</script>

README

ember-cli-deploy-consul-config

An EmberCLI Deploy plugin to retrieve config from Consul and add it to process.env for use by other plugins' config

This plugin pulls the specified keys from Consul and puts the values on process.env so that they can be referenced in config/deploy.js by other plugin's configs.

What is an ember-cli-deploy plugin?

A plugin is an addon that can be executed as a part of the ember-cli-deploy pipeline. A plugin will implement one or more of the ember-cli-deploy's pipeline hooks.

For more information on what plugins are and how they work, please refer to the Plugin Documentation.

Quick Start

To get up and running quickly, do the following:

  • Install this plugin
$ ember install ember-cli-deploy-consul-config
  • Place the following configuration into config/deploy.js
ENV['consul-config'] = {
  host: '<consul-host>',
  port: <consul-port>,
  keys: {
    'config/aws-access-token': 'AWS_ACCESS_TOKEN'
  }
}
  • Acess the config property in config/deploy.js
ENV.s3 = {
  awsAccessToken: process.env.AWS_ACCESS_TOKEN
}
  • Run the pipeline
$ ember deploy production

Why would I use this plugin?

You would use this plugin if you want to store configuration values in Consul's KV store, instead of as environment variables on the machine that is running ember-cli-deploy.

Installation

Run the following command in your terminal:

ember install ember-cli-deploy-consul-config

ember-cli-deploy hooks implemented

For detailed information on what plugin hooks are and how they work, please refer to the Plugin Documentation.

  • configure
  • setup

Configuration Options

For detailed information on how configuration of plugins works, please refer to the Plugin Documentation.

host

The Consul host.

Default: 'localhost'

port

The Consul port.

Default: 8500

secure

Whether or not to enable HTTPS.

Default: true

token

An ACL token to be included with each request to Consul.

Default: null

keys (required)

An object containing properties that map the keys on Consul to the process.env property you'd like to access the config value with. For example, the following config:

// config/deploy.js

ENV['consul-config'] = {
  keys: {
    'config/aws-access-token': 'AWS_ACCESS_TOKEN'
  }
};

would make the the config value available at process.env.AWS_ACCESS_TOKEN.

Prerequisites

This plugin has no prerequisites.

Running tests

$ npm test

Made with :heart: by The Kayako Engineering Team