From d9d5d29e8bb92715759d3ba2581096f5247a85d3 Mon Sep 17 00:00:00 2001 From: pelegpor Date: Wed, 6 Sep 2023 19:11:14 +0300 Subject: [PATCH] docs: add how to manage AWS storages using Configu recipe --- .../configu-over-asm-and-paramstore.mdx | 173 ++++++++++++++++++ content/Recipes/img/aws-diagram.png | Bin 0 -> 47081 bytes content/sidebar.json | 4 + 3 files changed, 177 insertions(+) create mode 100644 content/Recipes/configu-over-asm-and-paramstore.mdx create mode 100644 content/Recipes/img/aws-diagram.png diff --git a/content/Recipes/configu-over-asm-and-paramstore.mdx b/content/Recipes/configu-over-asm-and-paramstore.mdx new file mode 100644 index 0000000..371edd5 --- /dev/null +++ b/content/Recipes/configu-over-asm-and-paramstore.mdx @@ -0,0 +1,173 @@ +--- +id: configu-over-asm-and-param-store +slug: configu-over-asm-and-param-store +title: Managing ASM and AWS Param Store using Configu Orchestrator (open-source) +--- + +Today's dev teams are tasked with managing Config Ops on the _platform_ as well, +Configu lets you only worry about your application [schemas](/config-schema), with Configu providing the rest of what's needed, including managing the diffrent storage platforms +and validating your new config values. Check out the tutorial below that shows how to use [Configu Orchestrator (open-source)](https://github.com/configu/configu) to manage +[AWS Secret Manager (ASM)](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) and [AWS Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html). + +![image](./img/aws-diagram.png) + +To complete the tutorial, you'll need: +- [AWS Secret Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) +- [AWS Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) +- [Configu's CLI](/cli-setup) +- [hackathon-starter application](https://github.com/sahat/hackathon-starter) + + +By default `Configu Orchestrator` will use the AWS IIM file as the authentication method, no need to login + + +As most applications already have configuration files, In this example, we will use the `.env.example` file from the hackathon-starter repo: + +`.env.example` + +```bash +BASE_URL=http://localhost:8080 +MONGODB_URI=mongodb://localhost:27017/test +SITE_CONTACT_EMAIL=youremail@yourdomain.com + +SESSION_SECRET=Your Session Secret goes here + +MAILGUN_USER=postmaster@sandbox697fcddc09814c6b83718b9fd5d4e5dc.mailgun.org +MAILGUN_PASSWORD=29eldds1uri6 + +SMTP_USER=none +SMTP_PASSWORD=none + +SENDGRID_API_KEY=hdgfadsfahg---apikey---hdgfadsfahg + +NYT_KEY=9548be6f3a64163d23e1539f067fcabd:5:68537648 + +LASTFM_KEY=c8c0ea1c4a6b199b3429722512fbd17f +LASTFM_SECRET=is cb7857b8fba83f819ea46ca13681fe71 + +SNAPCHAT_ID=181f414f-9581-4498-be9a-a223d024cf10 +SNAPCHAT_SECRET=DyswCZGyuZl5BBEA1yWlcjyAoONB-_qw8WNodhc4hr4 + +FACEBOOK_ID=754220301289665 +FACEBOOK_SECRET=41860e58c256a3d7ad8267d3c1939a4a + +INSTAGRAM_ID=9f5c39ab236a48e0aec354acb77eee9b +INSTAGRAM_SECRET=5920619aafe842128673e793a1c40028 + +GITHUB_ID=cb448b1d4f0c743a1e36 +GITHUB_SECRET=815aa4606f476444691c5f1c16b9c70da6714dc6 + +... + +``` + +## Step 1 - Create schema declaration + +Instead of maintaining a `.env` file for each environment or duplicating the keys again and again to sync and insert configurations between the ASM and the Parameter Store, +create a `.cfgu` schema declaration for this service, so that each change will only have to be made once (only the key in the schema) and then the values will be initialized by the same interface. +We will use the `init` command to generate it and for this example, we can also use the `--import` flag to auto-generate it from the existing `.env` file: + +```bash +configu init --import .env.example --defaults --types --name app +``` + + +`--types` will automatically generate the types for you, based on the supported types. If you use this flag, always check and verify that the generated types are accurate + + +`app.cfgu.json` + +```json +{ + "BASE_URL": { + "type": "URL", + "default": "http://localhost:8080" + }, + "MONGODB_URI": { + "type": "String", + "default": "mongodb://localhost:27017/test" + }, + "SITE_CONTACT_EMAIL": { + "type": "Email", + "default": "youremail@yourdomain.com" + }, + "SESSION_SECRET": { + "type": "String", + "default": "Your Session Secret goes here" + }, + + ... + + "GITHUB_ID": { + "type": "String", + "default": "cb448b1d4f0c743a1e36" + }, + "GITHUB_SECRET": { + "type": "String", + "default": "815aa4606f476444691c5f1c16b9c70da6714dc6" + } + ... +} +``` + + +Although saving configurations in the source control is considered to be bad practice, the Cfgu format is designed to be part of the code as it doesn't include any sensitive values. +Doing that increases developers' velocity and helps them avoid leaving the terminal/IDE. + + +## Step 2 - Use defaults for local development + + +For the full instructions please follow the `hackathon-starter` [getting started guide](https://github.com/sahat/hackathon-starter/blob/master/README.md#getting-started) + + +Running a local environment was never easier, run Configu seamlessly with your app. + + ```bash + configu eval --schema "./app.cfgu.json" --defaults | configu export --run "node app.js" + ``` + +## Step 3 - Manage configs in AWS using Configu Orchestrator + +Using a single set of commands we can control any store from local files to secret managers. +In the following example, we will manage our configs over our AWS secret manager (ASM) and Parameter Store. + +### Authenticate AWS + +By default, Configu's CLI uses the standard authentication method AWS uses, if you have an IIM file with the right permissions, there's no special action to take. + +### Upsert values + +```bash +configu upsert --store "aws-parameter-store" --set "prod" --schema "./app.cfgu.json" \ + -c "BASE_URL=http://app.yourdomain.com" \ + -c "SITE_CONTACT_EMAIL=info@yourdomain.com" +``` + +```bash +configu upsert --store "aws-secrets-manager" --set "prod" --schema "./app.cfgu.json" \ + -c "MONGODB_URI=mongodb://username:password@X.X.X.X:27017/prod" \ + -c "GITHUB_ID=ff12r1d4f0c7435t4r7y" \ + -c "GITHUB_SECRET=5875trfhud4764445ttr2f1c16b9c705d48yy4ee6y" +``` + +We can also easily add configs to additional environments like `test` + +```bash +configu upsert --store "aws-parameter-store" --set "test" --schema "./app.cfgu.json" \ + -c "BASE_URL=http://app.test.yourdomain.com" -c "SITE_CONTACT_EMAIL=test@yourdomain.com" \ +&& configu upsert --store "aws-secrets-manager" --set "test" --schema "./app.cfgu.json" \ + -c "MONGODB_URI=mongodb://username:password@X.X.X.X:27017/test" -c "GITHUB_ID=ff12r1-test-435t4r7y" -c "GITHUB_SECRET=5875trfhud476444-test-1c16b9c705d48yy4ee6y" +``` + +### Export values + +Similar to the way we previously used the Cfgu defaults we can evaluate and export from any store we need. + +```bash +configu eval --store "aws-parameter-store" --set "prod" --schema "./app.cfgu.json" \ + | configu eval --store "aws-secrets-manager" --set "prod" --schema "./app.cfgu.json" \ + | configu export --format 'HelmValues' > 'prod.yml' +``` + +You're done! diff --git a/content/Recipes/img/aws-diagram.png b/content/Recipes/img/aws-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..3091e52e89cd279094dfcfa5bda66cdd264d59e6 GIT binary patch literal 47081 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 literal 0 HcmV?d00001 diff --git a/content/sidebar.json b/content/sidebar.json index 0809218..df87cf4 100644 --- a/content/sidebar.json +++ b/content/sidebar.json @@ -176,6 +176,10 @@ { "title": "Managing HashiCorp Vault using Configu", "slug": "hc-vault-w-configu" + }, + { + "title": "Managing ASM and AWS Param Store", + "slug": "configu-over-asm-and-param-store" } ] }