0.0.6 • Published 6 months ago

@sp-tools/kloud-config v0.0.6

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

🐝 kloud-config

Node module to push configuration and encrypted secrets to AWS.

Installation

# Via yarn
$ yarn add kloud-config

# Via npm
$ npm install kloud-config

Usage

  1. At the root of your application add configuration file called kloud-config.yml.
service: kloud-config-service
provider: ssm

config:
  path: /${stage}/kloud-config/config
  defaults:
    DB_NAME: my-database
    DB_HOST: 3200
  required:
    DB_TABLE: "some database table name for ${stage}"

secret:
  path: /${stage}/kloud-config/secret
  required:
    DB_PASSWORD: "secret database password"
  1. Use kloud-config CLI tool to push your keys to AWS parameter store.
$ kloud-config run --stage <stage> --interactive

Config File

Following is the configuration file will all possible options:

service: kloud-config-service
provider: ssm                                 # Only supports ssm for now.

cfOutputs:                                    # Outputs from cloudformation stacks that needs to be pushed to ssm.
  - some-cloudformation-stack

config:
  path: /${stage}/kloud-config/config                # Base path for params to be added to
  defaults:                                   # Default parameters. Can be overwritten in different environments.
    DB_NAME: my-database
    DB_HOST: 3200
  production:                                 # If keys are deployed to production stage, its value will be overwritten by following
    DB_NAME: my-production-database
  required:                                   # Keys mentioned below will be prompted to be entered.
    DB_TABLE: "some database table name for ${stage}"

secret:
  keyId: some-arn-of-kms-key-to-use .         # If not specified, default key will be used to encrypt variables.
  path: /${stage}/kloud-config/secret                # Base path for params to be added to
  required:
    DB_PASSWORD: "secret database password" . # Parameter to encrypt and add to. Will be encrypted using KMS.
                                              # Above key will be added to /${stage}/kloud-config/secret/DB_PASSWORD
                                              # Value in quote will be displayed as explanation in prompt during interactive run.

CLI

Following is the usage of kloud-config CLI.

Usage: kloud-config [options] [command]

Options:
  -V, --version          output the version number
  -s, --stage [stage]    Specify stage to run on. (required)
  -c, --config [config]  Path to kloud-config configuration (default: "kloud-config.yml")
  -h, --help             output usage information

Commands:
  run [options]          Verify or populate all remote configurations and secrets.
  init                   Initialize kloud-config. Only required to run once.
  list                   List all remote configurations and secrets.

License

Feel free to use the code, it's released using the MIT license.