0.0.6 • Published 6 months ago
@sp-tools/kloud-config v0.0.6
🐝 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
- 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"
- 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.