Skip to content

feat(templates): add global ignore_missing_template_values to atmos.yaml#2158

Open
Copilot wants to merge 6 commits intomainfrom
copilot/add-global-ignore-missing-template
Open

feat(templates): add global ignore_missing_template_values to atmos.yaml#2158
Copilot wants to merge 6 commits intomainfrom
copilot/add-global-ignore-missing-template

Conversation

Copy link
Contributor

Copilot AI commented Mar 9, 2026

  • Add IgnoreMissingTemplateValues field to TemplatesSettings struct in pkg/schema/schema.go
  • Use global setting as fallback in ProcessYAMLConfigFiles (top-level file call) in stack_processor_utils.go
  • Use global setting as fallback when processing imports via importStruct.IgnoreMissingTemplateValues in stack_processor_utils.go
  • Use global setting in validate_stacks.go calls
  • Add test TestGlobalIgnoreMissingTemplateValues to verify the feature works
  • Update documentation in templates.mdx and imports.mdx
  • Add blog post announcement at website/blog/2026-03-09-global-ignore-missing-template-values.mdx
  • Update roadmap dx initiative with new shipped milestone
  • Fix macOS ARM64 test failures (gomonkey SIGBUS): DI refactor for processTerraformComponent, runtime skips for other gomonkey tests
  • Fix website build error: removed blank line inside <dd> tag in imports.mdx that caused MDX parsing to fail
Original prompt

This section details on the original issue you should resolve

<issue_title>Global ignore_missing_template_values option for imported catalogs</issue_title>
<issue_description>### Describe the Feature

Upgrading from atmos 1.168.0 to latest version, the ignore_missing_template_values  (link) seems to be the method found. It would be nice to set this at a global level instead of on every imported catalog otherwise we have to update 100s of catalogs and references.

e.g. instead of this

import:
  - path: "<path_to_atmos_manifest2>"
    context: {}
    skip_templates_processing: false
    ignore_missing_template_values: true

maybe this in atmos.yaml or similar

settings:
  ignore_missing_template_values: true

Expected Behavior

See above

Use Case

See above

Describe Ideal Solution

See above

Alternatives Considered

No response

Additional Context

<agent_instructions>Think deeply. Use PR template. Use semantic commits. Use semantic PR title. Consider the problem and the proposal and see if it makes sense. It's possible that the global config be in a different yaml location. Please consider different options and select the optimum solution for developer/agent/user experience. Be surgical. </agent_instructions>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@mergify mergify bot added triage Needs triage wip Work in Progress: Not ready for final review or merge labels Mar 9, 2026
… imported catalogs

Co-authored-by: nitrocode <7775707+nitrocode@users.noreply.github.com>
Copilot AI changed the title [WIP] Add global ignore_missing_template_values option for catalogs feat(templates): add global ignore_missing_template_values to atmos.yaml Mar 9, 2026
@mergify mergify bot removed the wip Work in Progress: Not ready for final review or merge label Mar 9, 2026
@nitrocode nitrocode added minor New features that do not break anything and removed triage Needs triage labels Mar 9, 2026
@github-actions
Copy link

github-actions bot commented Mar 9, 2026

Warning

Release Documentation Required

This PR is labeled minor or major and requires documentation updates:

  • Changelog entry - Add a blog post in website/blog/YYYY-MM-DD-feature-name.mdx
  • Roadmap update - Update website/src/data/roadmap.js with the new milestone

Alternatively: If this change doesn't require release documentation, remove the minor or major label.

1 similar comment
@github-actions
Copy link

github-actions bot commented Mar 9, 2026

Warning

Release Documentation Required

This PR is labeled minor or major and requires documentation updates:

  • Changelog entry - Add a blog post in website/blog/YYYY-MM-DD-feature-name.mdx
  • Roadmap update - Update website/src/data/roadmap.js with the new milestone

Alternatively: If this change doesn't require release documentation, remove the minor or major label.

@nitrocode nitrocode marked this pull request as ready for review March 9, 2026 19:10
@nitrocode nitrocode requested a review from a team as a code owner March 9, 2026 19:10
@github-actions github-actions bot added the size/m Medium size PR label Mar 9, 2026
@github-actions
Copy link

github-actions bot commented Mar 9, 2026

Warning

Release Documentation Required

This PR is labeled minor or major and requires documentation updates:

  • Changelog entry - Add a blog post in website/blog/YYYY-MM-DD-feature-name.mdx
  • Roadmap update - Update website/src/data/roadmap.js with the new milestone

Alternatively: If this change doesn't require release documentation, remove the minor or major label.

@github-actions
Copy link

github-actions bot commented Mar 9, 2026

Dependency Review

✅ No vulnerabilities or license issues found.

Scanned Files

None

@nitrocode nitrocode removed the minor New features that do not break anything label Mar 9, 2026
@osterman osterman added the minor New features that do not break anything label Mar 9, 2026
@github-actions
Copy link

github-actions bot commented Mar 9, 2026

Warning

Release Documentation Required

This PR is labeled minor or major and requires documentation updates:

  • Changelog entry - Add a blog post in website/blog/YYYY-MM-DD-feature-name.mdx
  • Roadmap update - Update website/src/data/roadmap.js with the new milestone

Alternatively: If this change doesn't require release documentation, remove the minor or major label.

@osterman
Copy link
Member

osterman commented Mar 9, 2026

@copilot please add a minor blog post announcement since this is a new feature and update the roadmap.

…ate_values

Co-authored-by: osterman <52489+osterman@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Mar 9, 2026

@copilot please add a minor blog post announcement since this is a new feature and update the roadmap.

Done in eaff6a7. Added a blog post at website/blog/2026-03-09-global-ignore-missing-template-values.mdx covering the feature, usage, and the difference from skip_templates_processing. Also added a shipped milestone to the dx initiative in the roadmap.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/repos/cloudposse/atmos
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/atmos/atmos/website/node_modules/.bin/docusaurus build (http block)
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/atmos/atmos/website/node_modules/.bin/docusaurus build git tag me b80e94650044bc97f15da0670d692ae1b3268111 /usr/bin/git bsite/docs/cli/c/bin/sh (http block)
  • https://api.github.com/repos/cloudposse/atmos/releases/latest
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/atmos/atmos/website/node_modules/.bin/docusaurus build (http block)
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/atmos/atmos/website/node_modules/.bin/docusaurus build git tag me b80e94650044bc97f15da0670d692ae1b3268111 /usr/bin/git bsite/docs/cli/c/bin/sh (http block)

If you need me to access, download, or install something from one of these locations, you can either:

@nitrocode
Copy link
Member

…nent by using DI instead of gomonkey

Co-authored-by: nitrocode <7775707+nitrocode@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Mar 9, 2026

@copilot fix these broken tests on macos https://github.com/cloudposse/atmos/actions/runs/22870303258/job/66349063827

Fixed in c18a651. The root cause was TestProcessTerraformComponent calling gomonkey.ApplyFunc which panics with an unrecoverable SIGBUS on macOS ARM64 (Apple Silicon) because code pages are read-only.

Fix:

  • Refactored processTerraformComponent to accept executeFn func(schema.ConfigAndStacksInfo) error as a parameter (dependency injection), removing the need for gomonkey entirely in TestProcessTerraformComponent. All 8 subtests now pass directly using lightweight mock functions.
  • Added runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" skip guards to TestExecuteTerraformAffectedComponentInDepOrder and BenchmarkExecuteTerraformAffectedComponentInDepOrder, which still rely on gomonkey for the recursive executeTerraformAffectedComponentInDepOrder function.
  • Updated the single production caller in terraform_query.go to pass ExecuteTerraform explicitly.

@nitrocode
Copy link
Member

…ine inside dd tag

Co-authored-by: nitrocode <7775707+nitrocode@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Mar 9, 2026

@copilot fix the website test errors on https://github.com/cloudposse/atmos/actions/runs/22872481528/job/66365125259?pr=2158

Fixed in 1909391. The MDX compiler was failing because I had added a blank line inside a <dd> tag in imports.mdx — MDX treats blank lines as paragraph separators, so it hit the end of the paragraph before finding the </dd> closing tag. Merged the two sentences into a single paragraph (no blank line) to resolve the parse error.

@codecov
Copy link

codecov bot commented Mar 9, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.15%. Comparing base (b132ba7) to head (1909391).

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #2158   +/-   ##
=======================================
  Coverage   77.15%   77.15%           
=======================================
  Files         942      942           
  Lines       89502    89502           
=======================================
+ Hits        69051    69054    +3     
+ Misses      16394    16389    -5     
- Partials     4057     4059    +2     
Flag Coverage Δ
unittests 77.15% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
internal/exec/stack_processor_utils.go 81.16% <100.00%> (ø)
internal/exec/terraform_query.go 79.62% <100.00%> (ø)
internal/exec/terraform_utils.go 73.88% <100.00%> (ø)
internal/exec/validate_stacks.go 82.66% <100.00%> (ø)
pkg/schema/schema.go 87.70% <ø> (ø)

... and 4 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

minor New features that do not break anything size/m Medium size PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Global ignore_missing_template_values option for imported catalogs

3 participants