Skip to content

docs(ansible): add documentation and examples for Ansible integration#2108

Merged
osterman merged 8 commits intomainfrom
add-ansible-documentation-and-examples
Feb 26, 2026
Merged

docs(ansible): add documentation and examples for Ansible integration#2108
osterman merged 8 commits intomainfrom
add-ansible-documentation-and-examples

Conversation

@RoseSecurity
Copy link
Contributor

@RoseSecurity RoseSecurity commented Feb 24, 2026

what

  • This pull request introduces a comprehensive demo example, documentation updates, and test cases. The changes expand the Atmos component model to include Ansible alongside Terraform, Helmfile, and Packer, and provide users with clear guidance and examples for configuring, running, and testing Ansible playbooks through Atmos.

  • Added a complete demo-ansible example, including stack manifests, catalog defaults, Ansible playbook, inventory, Atmos configuration, and .gitignore entries for Ansible artifacts. This demonstrates variable handling, catalog pattern, and per-environment overrides for Ansible components. [1] [2] [3] [4] [5] [6] [7] [8]
  • Introduced test cases for the demo example to verify stack listing, variable resolution, and dry-run functionality for Ansible playbooks.
  • Updated Atmos documentation to describe Ansible component support, including configuration schema, directory structure, and usage patterns in atmos.yaml and stack manifests. [1] [2]
  • Revised component overview and configuration docs to include Ansible as a supported component type, updating descriptions, tables, and directory structure examples. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
  • Enhanced the ansible-playbook command reference with embedded example files and an interactive demo, improving clarity and real-world applicability. [1] [2] [3]\

why

  • These changes collectively make Ansible a first-class citizen in Atmos, providing users with practical examples, test coverage, and detailed documentation for configuration management and automation workflows.

Summary by CodeRabbit

  • New Features

    • Ansible added as a first-class component type with playbook, inventory, vars, and dry-run support (prints command in dry-run).
  • Documentation

    • Comprehensive Ansible docs, configuration guides, examples and CLI pages added; site navigation updated to surface Ansible content and demo.
  • Tests

    • New test suite validating the Ansible demo workflows (dev/prod, describe, dry-run).
  • Chores

    • Updated ignore rules to exclude CI-managed lockfiles and build artifacts.

- Add demo-ansible example with hello-world playbook, catalog, and dev/prod stacks
- Add test cases for stack listing, describe component, and dry-run
- Add new doc pages: Ansible components, CLI configuration, stack configuration
- Update existing docs to consistently include Ansible alongside Terraform, Helmfile, and Packer
- Add Ansible feature card to features overview
- Add EmbedFile/EmbedExample usage in playbook command docs
- Update file-browser plugin with demo-ansible tags and docs mapping
- Remove accidentally committed build artifacts (.docusaurus/, package-lock.json)
@RoseSecurity RoseSecurity requested review from a team as code owners February 24, 2026 19:47
@github-actions github-actions bot added the size/l Large size PR label Feb 24, 2026
@mergify
Copy link

mergify bot commented Feb 24, 2026

Important

Cloud Posse Engineering Team Review Required

This pull request modifies files that require Cloud Posse's review. Please be patient, and a core maintainer will review your changes.

To expedite this process, reach out to us on Slack in the #pr-reviews channel.

@mergify mergify bot added the needs-cloudposse Needs Cloud Posse assistance label Feb 24, 2026
@github-actions
Copy link

github-actions bot commented Feb 24, 2026

Dependency Review

✅ No vulnerabilities or license issues found.

Scanned Files

None

@RoseSecurity RoseSecurity added the no-release Do not create a new release (wait for additional code changes) label Feb 24, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 24, 2026

📝 Walkthrough

Walkthrough

Adds first-class Ansible component support: demo example, tests, CLI dry-run plumbing, describe/stack processing, executor dry-run behavior, extensive docs and website updates, and minor .gitignore updates.

Changes

Cohort / File(s) Summary
Git Configuration
/.gitignore, examples/demo-ansible/.gitignore
Ignore website package-lock and Docusaurus cache; ignore Ansible vars and retry files in the demo.
Demo Example Structure
examples/demo-ansible/README.md, examples/demo-ansible/atmos.yaml, examples/demo-ansible/components/ansible/hello-world/site.yml, examples/demo-ansible/components/ansible/hello-world/inventory.ini, examples/demo-ansible/stacks/...
Add a complete demo-ansible example: atmos config, playbook, inventory, catalog, and dev/prod stacks.
Tests
tests/test-cases/demo-ansible.yaml, internal/exec/describe_component_test.go, internal/exec/describe_stacks_test.go
Add tests validating stack listing, component describe JSON assertions, and ansible-playbook dry-run behavior; new DescribeComponent/DescribeStacks Ansible tests (duplicate test instance noted).
Core CLI / Exec Logic
cmd/ansible/ansible.go, internal/exec/describe_component.go, internal/exec/describe_stacks.go
Read dry-run flag into ConfigAndStacksInfo; extend component detection and DescribeStacks processing to fully support Ansible (templating, YAML functions, derived components, base path resolution).
Ansible Executor
pkg/component/ansible/executor.go
Executor prints constructed command and returns when dry-run is enabled (skips execution).
Website / Docs
website/docs/... (many files), website/plugins/file-browser/index.js, website/sidebars.js
Add comprehensive Ansible docs across CLI/config, stacks, components, features, examples; register demo-ansible in plugin maps and sidebar.
Documentation Examples
website/docs/cli/commands/ansible/ansible-playbook.mdx
Embed example file references and update command examples to use the new demo.

Sequence Diagram(s)

sequenceDiagram
  participant CLI as CLI
  participant Describe as DescribeStacks
  participant Executor as AnsibleExecutor
  participant FS as Filesystem

  CLI->>Describe: request describe/list (includes ansible)
  Describe->>FS: read stack manifests & component files
  Describe->>Describe: process templates / yaml functions
  Describe->>CLI: return configAndStacksInfo (includes DryRun flag)
  CLI->>Executor: run ansible-playbook (with config)
  Executor->>FS: read playbook / inventory
  alt Dry-run
    Executor->>CLI: print constructed command and exit
  else Execute
    Executor->>CLI: spawn ansible-playbook process
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • osterman
  • aknysh
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 54.55% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the primary changes in the changeset: adding documentation and examples for Ansible integration to Atmos.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch add-ansible-documentation-and-examples

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (3)
website/docs/components/ansible.mdx (1)

1-6: description frontmatter field is missing.

Other component docs (e.g., components.mdx) include a description for SEO and sidebar tooltips. Worth adding for consistency.

✏️ Proposed addition
 ---
 title: Using Ansible
 sidebar_position: 6
 sidebar_label: Ansible
 id: ansible
+description: Run Ansible playbooks with the same stack-based configuration used for Terraform and Helmfile. Stack variables are automatically passed via --extra-vars.
 ---
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@website/docs/components/ansible.mdx` around lines 1 - 6, The Ansible docs
frontmatter is missing the SEO/tooltip `description` field; add a `description:
"..."` entry to the MDX frontmatter block at the top of ansible.mdx (alongside
title, sidebar_position, sidebar_label, id) with a short summary of the page (a
one-sentence description) so it matches other component docs like components.mdx
and enables consistent SEO and sidebar tooltips.
website/docs/cli/configuration/components/ansible.mdx (1)

68-87: "Example Configuration" section duplicates the "Configuration" section above.

The YAML block on lines 70-77 is byte-for-byte identical to lines 19-29. One of these sections should be removed or the "Example Configuration" block should show a more realistic/extended example.

♻️ Suggested cleanup
-## Example Configuration
-
-<File title="atmos.yaml">
-```yaml
-components:
-  ansible:
-    command: ansible
-    base_path: components/ansible
-```
-</File>
-
-With this configuration, you can run Ansible commands through Atmos:
+With this configuration, you can run Ansible commands through Atmos:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@website/docs/cli/configuration/components/ansible.mdx` around lines 68 - 87,
The "Example Configuration" section duplicates the earlier "Configuration" YAML
for the ansible component; remove the duplicate YAML block under the "Example
Configuration" heading or replace it with a more realistic/extended example.
Locate the ansible component YAML (the block showing components: ansible:
command: ansible base_path: components/ansible) and either delete the repeated
block or expand it to show additional realistic keys (e.g., env vars, inventory
path, extra_args) and adjust the subsequent example commands (the atmos ansible
playbook/version snippets) to match the extended example. Ensure only one
authoritative configuration example for the ansible component remains and the
headings remain consistent.
website/docs/stacks/components/ansible.mdx (1)

11-11: EmbedFile is imported but never used.

The import at line 11 can be dropped since no <EmbedFile> element appears anywhere in the file.

♻️ Proposed fix
 import File from '@site/src/components/File'
 import Intro from '@site/src/components/Intro'
-import EmbedFile from '@site/src/components/EmbedFile'
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@website/docs/stacks/components/ansible.mdx` at line 11, Remove the unused
import of the EmbedFile component by deleting the line that imports EmbedFile
(the "import EmbedFile from '@site/src/components/EmbedFile'" statement) since
no <EmbedFile> element is used in the document; if you intended to embed a file,
instead add the corresponding <EmbedFile .../> usage where required, otherwise
simply remove the import to clean up the module.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@website/docs/components/ansible.mdx`:
- Line 72: Update the sentence "Command line flags take precedence over stack
manifest settings:" to hyphenate "command-line" (i.e., change it to
"Command-line flags take precedence over stack manifest settings:") to fix the
minor grammar issue in the ansible.mdx content.
- Around line 28-32: The docs show "command: ansible" but the ansible playbook
flow delegates to the ansible-playbook binary; update the example and any
schema/defaults to "command: ansible-playbook" to match the actual delegated
binary used by the playbook runner (verify references such as the ansible
playbook handler in code like AnsiblePlaybook, any ansible.go execution strings,
and the other docs file command.mdx) so examples and defaults align with the
real binary.

In `@website/docs/stacks/command.mdx`:
- Around line 165-172: The docs currently imply ansible.command in
_defaults.yaml applies to all Ansible invocations but the code path that runs
playbooks hardcodes the binary name (the playbook execution in executor.go that
invokes "ansible-playbook"), so update the documentation to state that
ansible.command only affects non-playbook subcommands and does not change the
binary used for atmos ansible playbook; advise two practical remedies: set
ansible.command to the full path of the ansible-playbook binary (e.g.,
/opt/venv/bin/ansible-playbook), or use a wrapper/symlink inside the virtualenv
to expose ansible-playbook at the expected name, or note that changing the
playbook behavior requires modifying the playbook invocation in executor.go to
use the configured ansible.command.

In `@website/docs/stacks/components/ansible.mdx`:
- Around line 196-200: Update the example and/or explanatory text around the
`<context>-<component>.ansible.vars.yaml` naming line to clarify that
`<context>` is the full Atmos context string (e.g., `acme-plat-prod-us-east-1`),
not just the short stack name; either change the example
`prod-webserver.ansible.vars.yaml` to a representative one like
`acme-plat-prod-us-east-1-webserver.ansible.vars.yaml` or add a parenthetical
explaining what `<context>` resolves to, and ensure the doc line referencing
`<context>-<component>.ansible.vars.yaml` is updated accordingly.

---

Nitpick comments:
In `@website/docs/cli/configuration/components/ansible.mdx`:
- Around line 68-87: The "Example Configuration" section duplicates the earlier
"Configuration" YAML for the ansible component; remove the duplicate YAML block
under the "Example Configuration" heading or replace it with a more
realistic/extended example. Locate the ansible component YAML (the block showing
components: ansible: command: ansible base_path: components/ansible) and either
delete the repeated block or expand it to show additional realistic keys (e.g.,
env vars, inventory path, extra_args) and adjust the subsequent example commands
(the atmos ansible playbook/version snippets) to match the extended example.
Ensure only one authoritative configuration example for the ansible component
remains and the headings remain consistent.

In `@website/docs/components/ansible.mdx`:
- Around line 1-6: The Ansible docs frontmatter is missing the SEO/tooltip
`description` field; add a `description: "..."` entry to the MDX frontmatter
block at the top of ansible.mdx (alongside title, sidebar_position,
sidebar_label, id) with a short summary of the page (a one-sentence description)
so it matches other component docs like components.mdx and enables consistent
SEO and sidebar tooltips.

In `@website/docs/stacks/components/ansible.mdx`:
- Line 11: Remove the unused import of the EmbedFile component by deleting the
line that imports EmbedFile (the "import EmbedFile from
'@site/src/components/EmbedFile'" statement) since no <EmbedFile> element is
used in the document; if you intended to embed a file, instead add the
corresponding <EmbedFile .../> usage where required, otherwise simply remove the
import to clean up the module.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 8fdf9b6 and 9876cf5.

📒 Files selected for processing (27)
  • .gitignore
  • examples/demo-ansible/.gitignore
  • examples/demo-ansible/README.md
  • examples/demo-ansible/atmos.yaml
  • examples/demo-ansible/components/ansible/hello-world/inventory.ini
  • examples/demo-ansible/components/ansible/hello-world/site.yml
  • examples/demo-ansible/stacks/catalog/hello-world.yaml
  • examples/demo-ansible/stacks/deploy/dev.yaml
  • examples/demo-ansible/stacks/deploy/prod.yaml
  • tests/test-cases/demo-ansible.yaml
  • website/docs/cli/commands/ansible/ansible-playbook.mdx
  • website/docs/cli/configuration/components/ansible.mdx
  • website/docs/cli/configuration/components/index.mdx
  • website/docs/components/ansible.mdx
  • website/docs/components/components-overview.mdx
  • website/docs/components/components.mdx
  • website/docs/intro/features.mdx
  • website/docs/stacks/command.mdx
  • website/docs/stacks/components/ansible.mdx
  • website/docs/stacks/components/index.mdx
  • website/docs/stacks/dependencies.mdx
  • website/docs/stacks/env.mdx
  • website/docs/stacks/settings/index.mdx
  • website/docs/stacks/stacks.mdx
  • website/docs/stacks/vars.mdx
  • website/plugins/file-browser/index.js
  • website/sidebars.js

coderabbitai[bot]
coderabbitai bot previously approved these changes Feb 24, 2026
osterman
osterman previously approved these changes Feb 24, 2026
@RoseSecurity
Copy link
Contributor Author

@aknysh Does this PR look good? Just adding some documentation for the Atmos Ansible integration work

@osterman
Copy link
Member

@RoseSecurity the tests are failing:

--- FAIL: TestCLICommands (260.37s)
    --- FAIL: TestCLICommands/demo-ansible_list_stacks (0.28s)
        cli_test.go:1303: Reason: stdout did not match pattern "dev".
        cli_test.go:1304: Output: ""
        cli_test.go:1303: Reason: stdout did not match pattern "prod".
        cli_test.go:1304: Output: ""
        cli_test.go:1646: Stdout mismatch for test: demo-ansible list stacks
    --- FAIL: TestCLICommands/demo-ansible_describe_component_hello-world_-s_dev (0.28s)
        cli_test.go:1281: Reason: Expected exit code 0, got 1
        cli_test.go:1170: Description: Verify hello-world component vars are resolved correctly in dev stack.
        cli_test.go:1303: Reason: stdout did not match pattern "\"app_name\": \"my-app\"".
        cli_test.go:1304: Output: ""
        cli_test.go:1303: Reason: stdout did not match pattern "\"app_version\": \"1.0.0-dev\"".
        cli_test.go:1304: Output: ""
        cli_test.go:1303: Reason: stdout did not match pattern "\"app_port\": 8080".
        cli_test.go:1304: Output: ""
        cli_test.go:1646: Stdout mismatch for test: demo-ansible describe component hello-world -s dev
        cli_test.go:1412: JSON validation failed: unexpected end of JSON input
        cli_test.go:1420: Error at offset 0, context: ......
        cli_test.go:1179: Format validation failed for test: demo-ansible describe component hello-world -s dev
        cli_test.go:1180: Description: Verify hello-world component vars are resolved correctly in dev stack.
    --- FAIL: TestCLICommands/demo-ansible_describe_component_hello-world_-s_prod (0.28s)
        cli_test.go:1281: Reason: Expected exit code 0, got 1
        cli_test.go:1170: Description: Verify hello-world component vars are resolved correctly in prod stack.
        cli_test.go:1303: Reason: stdout did not match pattern "\"app_name\": \"my-app\"".
        cli_test.go:1304: Output: ""
        cli_test.go:1303: Reason: stdout did not match pattern "\"app_version\": \"2.0.0\"".
        cli_test.go:1304: Output: ""
        cli_test.go:1303: Reason: stdout did not match pattern "\"app_port\": 443".
        cli_test.go:1304: Output: ""
        cli_test.go:1646: Stdout mismatch for test: demo-ansible describe component hello-world -s prod
        cli_test.go:1412: JSON validation failed: unexpected end of JSON input
        cli_test.go:1420: Error at offset 0, context: ......
        cli_test.go:1179: Format validation failed for test: demo-ansible describe component hello-world -s prod
        cli_test.go:1180: Description: Verify hello-world component vars are resolved correctly in prod stack.
    --- FAIL: TestCLICommands/demo-ansible_ansible_playbook_dry-run (0.28s)
        cli_test.go:1281: Reason: Expected exit code 0, got 1
        cli_test.go:1170: Description: Verify dry-run prints the ansible-playbook command without executing.
        cli_test.go:1303: Reason: stdout did not match pattern "ansible-playbook".
        cli_test.go:1304: Output: ""
        cli_test.go:1303: Reason: stdout did not match pattern "site.yml".
        cli_test.go:1304: Output: ""
        cli_test.go:1646: Stdout mismatch for test: demo-ansible ansible playbook dry-run

@github-actions github-actions bot added size/xl Extra large size PR and removed size/l Large size PR labels Feb 26, 2026
@mergify
Copy link

mergify bot commented Feb 26, 2026

Warning

This PR exceeds the recommended limit of 1,000 lines.

Large PRs are difficult to review and may be rejected due to their size.

Please verify that this PR does not address multiple issues.
Consider refactoring it into smaller, more focused PRs to facilitate a smoother review process.

@codecov
Copy link

codecov bot commented Feb 26, 2026

Codecov Report

❌ Patch coverage is 61.90476% with 64 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.49%. Comparing base (bb2d800) to head (a370967).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
internal/exec/describe_stacks.go 63.22% 38 Missing and 19 partials ⚠️
pkg/component/ansible/executor.go 0.00% 3 Missing ⚠️
cmd/ansible/ansible.go 0.00% 1 Missing and 1 partial ⚠️
internal/exec/describe_component.go 75.00% 1 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff            @@
##             main    #2108    +/-   ##
========================================
  Coverage   76.49%   76.49%            
========================================
  Files         831      831            
  Lines       79088    79254   +166     
========================================
+ Hits        60497    60625   +128     
- Misses      14819    14835    +16     
- Partials     3772     3794    +22     
Flag Coverage Δ
unittests 76.49% <61.90%> (+<0.01%) ⬆️

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

Files with missing lines Coverage Δ
cmd/ansible/ansible.go 93.93% <0.00%> (-2.94%) ⬇️
internal/exec/describe_component.go 69.00% <75.00%> (-0.05%) ⬇️
pkg/component/ansible/executor.go 41.28% <0.00%> (-0.45%) ⬇️
internal/exec/describe_stacks.go 71.27% <63.22%> (-1.91%) ⬇️

... 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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@internal/exec/describe_component.go`:
- Around line 447-459: The code currently only falls back to Ansible when Packer
returns errUtils.ErrInvalidComponent; change the gate so any Packer failure will
attempt the Ansible path. In the block around tryProcessWithComponentType use
baseParams (baseParams.configAndStacksInfo/result and baseParams.componentType =
cfg.AnsibleComponentType) and call tryProcessWithComponentType(&baseParams)
regardless of whether errors.Is(err, errUtils.ErrInvalidComponent) (i.e., remove
or invert that conditional); keep the existing handling that on an Ansible error
you set result.ComponentSection[cfg.ComponentTypeSectionName] = "" and return
the error.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between ba328d6 and 6e6c5d1.

📒 Files selected for processing (4)
  • cmd/ansible/ansible.go
  • internal/exec/describe_component.go
  • internal/exec/describe_stacks.go
  • pkg/component/ansible/executor.go

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
internal/exec/describe_stacks_test.go (1)

226-243: Add the missing dev app_port assertion.

The test validates dev app_name/app_version but skips dev app_port (expected in PR goals and failing CLI cases). Adding it strengthens regression coverage.

Suggested patch
 	val, err = u.EvaluateYqExpression(&atmosConfig, stacksMap, ".dev.components.ansible.hello-world.vars.app_version")
 	assert.Nil(t, err)
 	assert.Equal(t, "1.0.0-dev", val)
+
+	val, err = u.EvaluateYqExpression(&atmosConfig, stacksMap, ".dev.components.ansible.hello-world.vars.app_port")
+	assert.Nil(t, err)
+	assert.Equal(t, 8080, val)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/exec/describe_stacks_test.go` around lines 226 - 243, Test is
missing an assertion for the dev component's app_port; add a call to
u.EvaluateYqExpression(&atmosConfig, stacksMap,
".dev.components.ansible.hello-world.vars.app_port"), assert the error is nil,
and assert the returned value equals the expected dev port (e.g. 80) using the
same pattern as the existing dev and prod assertions to mirror the prod app_port
check.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@internal/exec/describe_stacks_test.go`:
- Around line 226-243: Test is missing an assertion for the dev component's
app_port; add a call to u.EvaluateYqExpression(&atmosConfig, stacksMap,
".dev.components.ansible.hello-world.vars.app_port"), assert the error is nil,
and assert the returned value equals the expected dev port (e.g. 80) using the
same pattern as the existing dev and prod assertions to mirror the prod app_port
check.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 6e6c5d1 and a611b8e.

📒 Files selected for processing (2)
  • internal/exec/describe_component_test.go
  • internal/exec/describe_stacks_test.go

@RoseSecurity
Copy link
Contributor Author

@osterman Fixed the outputs and such!

@osterman osterman enabled auto-merge (squash) February 26, 2026 21:15
@osterman osterman merged commit d18a81a into main Feb 26, 2026
56 checks passed
@osterman osterman deleted the add-ansible-documentation-and-examples branch February 26, 2026 21:42
@mergify mergify bot removed the needs-cloudposse Needs Cloud Posse assistance label Feb 26, 2026
@github-actions
Copy link

github-actions bot commented Mar 3, 2026

These changes were released in v1.208.0.

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

Labels

no-release Do not create a new release (wait for additional code changes) size/xl Extra large size PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants