Update Atmos manifests validation JSON schema. Improve help for Atmos commands. Deep-merge the `settings.integrations.github` section from stack manifests with the `integrations.github` section from `atmos.yaml` @aknysh (#755)
what
- Update Atmos manifests validation JSON schema
- Improve help and error handling for Atmos commands
- Deep-merge the
settings.integrations.github
section from Atmos stack manifests with theintegrations.github
section fromatmos.yaml
why
-
In Atmos manifests validation JSON schema, don't "hardcode" the
s3
backend section fields, allow it to be a free-form map so the user can define any configuration for it. The Terraforms3
backend can change, can be different for Terraform and OpenTofu. Also, the other backends (e.g. GCP, Azure, remote) are already free-form maps in the validation schema -
When Atmos commands are executed w/o specifying a component and a stack (e.g.
atmos terraform plan
,atmos terraform apply
,atmos terraform clean
), print help for the command w/o throwing errors that a component and stack are missing -
Deep-merging the
settings.integrations.github
section from Atmos stack manifests with theintegrations.github
section fromatmos.yaml
allows configuring the global settings forintegrations.github
inatmos.yaml
, and then override them in the Atmos stack manifests in thesettings.integrations.github
section. Every component in every stack will getsettings.integrations.github
fromatmos.yaml
. You can override any field in stack manifests. Atmos deep-merges theintegrations.github
values from all scopes in the following order (from the lowest to highest priority):integrations.github
section fromatmos.yaml
- stack-level
settings.integrations.github
configured in Atmos stack manifests per Org, per tenant, per region, per account - base component(s) level
settings.integrations.github
section - component level
settings.integrations.github
section
For example:
atmos.yaml
integrations: # GitHub integration github: gitops: opentofu-version: 1.8.4 terraform-version: 1.9.8 infracost-enabled: false
stacks/catalog/vpc.yaml
components: terraform: vpc: metadata: component: vpc settings: integrations: github: gitops: infracost-enabled: true test_enabled: true
Having the above config, the command
atmos describe component vpc -s tenant1-ue2-dev
returns the following deep-merged configuration for the component'ssettings.integrations.github
section:settings: integrations: github: gitops: infracost-enabled: true opentofu-version: 1.8.4 terraform-version: 1.9.8 test_enabled: true
Improve custom command error message for missing arguments @pkbhowmick (#752)
what
- Improved custom command error message for missing arguments including the name of argument for better user's understanding.
why
- If a custom command expects an argument, it should say so with the arguments name.
Fix helmfile demo @osterman (#753)
what
- Enable templates in atmos.yaml so we can use env function to get current work directory
- Do not default
KUBECONFIG
to/dev/shm
as/dev/shm
is a directory, and the kube config should be a YAML file - Fix stack includes
- Set KUBECONFIG from
components.helmfile.kubeconfig_path
if set (previously only set ifuse_eks
was true)
why
- Demo was not working