Releases: cloudposse/atmos
v0.10.0
Improve imports and deep-merging of variables of any complex types @aknysh (#13)
what
- Improve imports and deep-merging of variables of any complex types
- Use the latest
variant2features (recursive user-defined functions, list of file paths inconfig) for stack configuration module
why
- Simplify code
- Deep-merge any number of import files with any complex structures (maps/objects)
- Deep-merge all variables in this order: global-scoped, component-type-scoped, and component-scoped
- Deep-merge all backend attributes in this order: global-scoped, component-type-scoped, and component-scoped
references
test
✗ . example ⨠atmos stack config eks -s ue2-dev --config-type=vars
"cluster_kubernetes_version": "1.18"
"environment": "ue2"
"namespace": "eg"
"region": "us-east-2"
"stage": "dev"
"test-map":
"a": "a4"
"atr":
"atr1": "1-1"
"atr2": "2-4"
"atr3": 3
"atr4": 4
"atr5": 5
"list":
- "1c"
"atr-2":
"atr1": 1
"atr2": 2
"b": "b2"
"c": "c1"
"d": "d4"
"e": "e4"
"f": "f4"
"g": "g1"
"list":
- 4
- 5
- 6
"list2":
- 1
- 2
- 3
v0.9.0
Add `interactive` mode to Terraform commands. Add 10 levels of `imports` @aknysh (#12)
what
- Add
interactivemode to Terraform commands - Add 10 levels of
imports
why
- Support interactive mode for TF commands that require user input (e.g. when moving TF state from local to remote state)
- The current 5 levels of imports were arbitrary and not enough in some cases
v0.8.0
Hierarchical imports. New stacks config format. Generic Terraform backend @aknysh (#11)
what
- Use hierarchical imports
- Use new stacks config format
- Add generic Terraform backend config
- Simplify
why
-
Hierarchical imports - support
importup to five level deep (so we can, for example, import environment globals into a stack, which in turn can import globals for the entire solution) -
Use new stacks config format - all stack config files use the same schema. No special config files, they are all the same and can be arbitrary named. All Terraform and helmfile vars, commands, and backends are defined in separate sections in any of the config files or imported config files (no pollution of Terraform variables with provided but not declared variables, which will be an error in TF 0.14). All sections in the config files and imported config files are merged together into configs consumed by the relevant modules in the CLI
-
Add generic Terraform backend config - the ability to specify many different Terraform backends (e.g.
s3,remote,vault) and select a particular one per component, stage, environment, or the entire solution
v0.7.1
chmod kubeconfig to 600 to avoid warning messages @Nuru (#10)
what
chmodkubeconfig to600to avoid warning messages
why
- Avoid warnings like
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /dev/shm/uw2-demo-kubecfg
WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /dev/shm/uw2-demo-kubecfg
v0.7.0
Update helmfile CLI @aknysh (#9)
what
- Rename
kubeconfig-profile-patterntohelm-aws-profile-pattern - Use
helm-aws-profile-patternto select an AWS profile for helmfile commands
why
helm-aws-profile-patternis used not only for kubeconfig, but also for helm and helmfile- By default, assume the role specified by the
helm-aws-profile-patternwhen calling the helmfile CLI (still having the option to specify a different AWS profile)
v0.6.0
v0.5.0
Update CLI for Terraform state backend @aknysh (#7)
what
- Update CLI for Terraform state backend
why
- Move the backend config logic from the
variantfiles into YAML configuration - Separate the backend configs from Terraform configs - do not pollute Terraform vars with not-related variables
- Make
terraform-backend.variantcompletely generic - it will work with any backends (e.g.s3,remote) and is completely configuration driven
v0.4.0
Update to `stacks`. Add `import` to all configs. Remove hardcoded settings. Add Terraform S3 backend generation @aknysh (#6)
what
- Update to
stacks(instead ofenvironment/stage) - Update to
components(instead ofprojects) - Add
importto all configs - Remove hardcoded settings
- Add Terraform S3 backend generation
- Simplify
why
- Use
stacksinstead ofenvironment/stageto define configurations - this will allow arbitrary naming the stacks and not tying them to env/stage, as well as separation of stacks for the same environment/stage into different files (e.g. terraform config in one file, helmfiles config in another), or separation of stacks by AWS resources - Add
importto YAML stack configs - allow automatically importing global-globals and stack-globals into each configuration - Remove hardcoded settings - make the CLI generic (no hardcoded namespaces, regions, IAM roles, etc.)
- Add (and simplify) the CLI commands to generate Terraform S3 backend configs for each Terraform component
v0.3.0
Update to support reference architectures @aknysh (#5)
what
- Update to support reference architectures
why
- Rename
opsctltoatmos - Rename
projects/tocomponents/ - Add vendor CLI for synching reference architecture components
- Add terraform-backend CLI to generate Terraform S3 backends for Terraform components
v0.2.1
Allow (ignored) standard options for terraform clean @Nuru (#4)
what
- Allow
terraform cleanto take--stageand--environmentoptions, even though they will be ignored
why
- Some scripts and tools provide those options for all Terraform commands that operate on a project, so it is convenient to allow them to provide the options to
terraform cleaneven if they will be ignored, rather than raise an error about unknown options