github cloudposse/atmos v1.99.0

12 hours ago
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 the integrations.github section from atmos.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 Terraform s3 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 the integrations.github section from atmos.yaml allows configuring the global settings for integrations.github in atmos.yaml, and then override them in the Atmos stack manifests in the settings.integrations.github section. Every component in every stack will get settings.integrations.github from atmos.yaml. You can override any field in stack manifests. Atmos deep-merges the integrations.github values from all scopes in the following order (from the lowest to highest priority):

    • integrations.github section from atmos.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's settings.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 if use_eks was true)

why

  • Demo was not working

Don't miss a new atmos release

NewReleases is sending notifications on new releases.