Skip to content

Latest commit

 

History

History
52 lines (38 loc) · 1.76 KB

TODO.md

File metadata and controls

52 lines (38 loc) · 1.76 KB

goals:

  1. Allow a flat style of managing configurations across disparate contexts and different formats (plaintext vs. encrypted)

    • aggregates plaintext config values and SOPS secrets in one manifest
      • ex: local development vs. docker vs. production environments
  2. Introduce an automated and cohesive way to validate and correlate configurations

    • TODO: allow a gradual introduction of new variable names by automating:
      • introduction of new name for same value (DB_SECRETS -> DATABASE_SECRETS)
      • and deprecation of old name (managing deletion of old DB_SECRETS references)

scope of support:

  • cogs migrate TODO
    • cogs migrate <OLD_KEY_NAME> <NEW_KEY_NAME> [<envs>...]
    • cogs migrate --commit <OLD_KEY_NAME> <NEW_KEY_NAME> (<envs>...)

Aims to allow a gradual and automated migration of key names without risking sensitive environments:

# config.yaml pre migration
DB_SECRETS: "secret_pw"

Should happen in two main steps:

  1. cogs migrate DB_SECRETS DATABASE_SECRETS
  • should default to creating the new key name in all environments
  • creates new variable in remote file or cog manifest
# config.yaml during migration
DB_SECRETS: "secret_pw"
DATABASE_SECRETS: "secret_pw"
  1. cogs migrate --commit DB_SECRETS DATABASE_SECRETS <env>...
  • removes old key name for all <envs> specified
# config.yaml post migration
DATABASE_SECRETS: "secret_pw"
  • should apply to plaintext K/Vs and SOPS encrypted values