Implement schema validation for vendoring and CLI schemas @samtholiya (#1147)
## what- Add
atmos validate schema
command to verify the YAML structure of the atmos CLI
why
- Ensures that configuration files follow the correct YAML structure
- Prevents misconfigurations and errors caused by invalid or malformed YAML
- Adds an extra layer of validation by enforcing schema compliance when applicable
- Improves reliability and usability of the CLI by catching issues early
Fix `atmos terraform clean` command for Terraform components in sub-directories @haitham911 (#1195)
what
- optimize
atmos terraform clean
to find all component paths and delete the relevant files - unit test for clean component in subfolders
why
- Support components in subfolders
Fix initial stack name when using the two-arg form of `!terraform.output` @ohaibbq (#1226)
what
- Fix initial stack name when using the two-arg form of
!terraform.output
why
Given
# atmos.yaml
stacks:
name_template: "{{.settings.context.project_id}}--{{.settings.context.product}}"
# stacks/apps/app/staging.yaml
settings:
context:
project_id: staging
product: app
components:
terraform:
apps/app:
vars:
project_number: "{{ .settings.context.project_number }}"
location: "{{ .settings.context.location }}"
# Pass the `connection-name` output from our `postgres-instance` component to the jii-texting app
cloudsql_instance: !terraform.output postgres-instance connection_name
# The 'name' output uses the name of the first bucket, so ensure that the ETL bucket is the first one in the list
etl_bucket_name: !terraform.output gcs-buckets name
postgres-instance:
# ...
!terraform.output
will fail in describe_stacks.go
with the following message:
ERRO no config found for the component 'postgres-instance' in the stack manifest 'app/staging'