what
-
Update Atmos Manifest JSON Schema
-
Improve Atmos vendoring
-
Add "Configure Terraform Backend" to "Quick Start"
-
Add Atmos Design Patterns docs
-
Update/improve docs
why
-
Update Atmos Manifest JSON Schema: the schema was improved after testing on many infrastructure configurations
-
Improve Atmos vendoring: 1) add local files and folders; 2) add
tags
-
With Atmos vendoring, you can copy components and other artifacts from the following sources:
- Copy all files from an OCI Registry into a local folder
- Copy all files from Git, Mercurial, Amazon S3, Google GCP into a local folder
- Copy all files from an HTTP/HTTPS endpoint into a local folder
- Copy a single file from an HTTP/HTTPS endpoint to a local file
- Copy a local file into a local folder (keeping the same file name)
- Copy a local file to a local file with a different file name
- Copy a local folder (all files) into a local folder
-
The
tags
in each source specifies a list of tags to apply to the component. This allows you to only vendor the components that have the specified tags by executing a commandatmos vendor pull --tags <tag1>,<tag2>
# atmos vendor pull # atmos vendor pull --component vpc-mixin-1 # atmos vendor pull -c vpc-mixin-2 # atmos vendor pull -c vpc-mixin-3 # atmos vendor pull -c vpc-mixin-4 # atmos vendor pull --tags test # atmos vendor pull --tags networking,storage apiVersion: atmos/v1 kind: AtmosVendorConfig metadata: name: example-vendor-config description: Atmos vendoring manifest spec: # `imports` or `sources` (or both) must be defined in a vendoring manifest imports: - "vendor/vendor2" - "vendor/vendor3.yaml" sources: # `source` supports the following protocols: local paths (absolute and relative), OCI (https://opencontainers.org), # Git, Mercurial, HTTP, HTTPS, Amazon S3, Google GCP, # and all URL and archive formats as described in https://github.com/hashicorp/go-getter. # In 'source', Golang templates are supported https://pkg.go.dev/text/template. # If 'version' is provided, '{{.Version}}' will be replaced with the 'version' value before pulling the files from 'source'. # Download the component from the AWS public ECR registry (https://docs.aws.amazon.com/AmazonECR/latest/public/public-registries.html). - component: "vpc" source: "oci://public.ecr.aws/cloudposse/components/terraform/stable/aws/vpc:{{.Version}}" version: "latest" targets: - "components/terraform/infra/vpc3" # Only include the files that match the 'included_paths' patterns. # If 'included_paths' is not specified, all files will be matched except those that match the patterns from 'excluded_paths'. # 'included_paths' support POSIX-style Globs for file names/paths (double-star `**` is supported). # https://en.wikipedia.org/wiki/Glob_(programming) # https://github.com/bmatcuk/doublestar#patterns included_paths: - "**/*.tf" - "**/*.tfvars" - "**/*.md" # Tags can be used to vendor component that have the specific tags # `atmos vendor pull --tags test` # Refer to https://atmos.tools/cli/commands/vendor/pull tags: - test - networking - component: "vpc-flow-logs-bucket" source: "github.com/cloudposse/terraform-aws-components.git//modules/vpc-flow-logs-bucket?ref={{.Version}}" version: "1.323.0" targets: - "components/terraform/infra/vpc-flow-logs-bucket/{{.Version}}" excluded_paths: - "**/*.yaml" - "**/*.yml" # Tags can be used to vendor component that have the specific tags # `atmos vendor pull --tags networking,storage` # Refer to https://atmos.tools/cli/commands/vendor/pull tags: - test - storage - component: "vpc-mixin-1" source: "https://raw.githubusercontent.com/cloudposse/terraform-null-label/0.25.0/exports/context.tf" targets: - "components/terraform/infra/vpc3" # Tags can be used to vendor component that have the specific tags # `atmos vendor pull --tags test` # Refer to https://atmos.tools/cli/commands/vendor/pull tags: - test - component: "vpc-mixin-2" # Copy a local file into a local folder (keeping the same file name) # This `source` is relative to the current folder source: "components/terraform/mixins/context.tf" targets: - "components/terraform/infra/vpc3" # Tags can be used to vendor component that have the specific tags # `atmos vendor pull --tags test` # Refer to https://atmos.tools/cli/commands/vendor/pull tags: - test - component: "vpc-mixin-3" # Copy a local folder into a local folder # This `source` is relative to the current folder source: "components/terraform/mixins" targets: - "components/terraform/infra/vpc3" # Tags can be used to vendor component that have the specific tags # `atmos vendor pull --tags test` # Refer to https://atmos.tools/cli/commands/vendor/pull tags: - test - component: "vpc-mixin-4" # Copy a local file into a local file with a different file name # This `source` is relative to the current folder source: "components/terraform/mixins/context.tf" targets: - "components/terraform/infra/vpc3/context-copy.tf" # Tags can be used to vendor component that have the specific tags # `atmos vendor pull --tags test` # Refer to https://atmos.tools/cli/commands/vendor/pull tags: - test
-
-
Add Atmos Design Patterns docs
Atmos Design Patterns describe core concepts, principles, insights and best practices to structure and organize infrastructures, components and stacks to design for organizational complexity and provision multi-account enterprise-grade environments for complex organizations. Atmos Design Patterns help the infrastructure designers and architects to leverage the expertise of other skilled architects in creating reusable, robust, flexible, and maintainable solutions.