Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ aws-assumed-role/
*.iml
.direnv
.envrc
.atmos/
.cache
.atmos

# Compiled and auto-generated files
# Note that the leading "**/" appears necessary for Docker even if not for Git

Expand Down
35 changes: 35 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Repository Guidelines

## Project Structure & Module Organization
- `src/`: Terraform component (`main.tf`, `variables.tf`, `outputs.tf`, `providers.tf`, `versions.tf`, `context.tf`). This is the source of truth.
- `test/`: Go Terratest suite using Atmos fixtures (`component_test.go`, `fixtures/`, `test_suite.yaml`). Tests deploy/destroy real AWS resources.
- `README.yaml`: Source for the generated `README.md` (via atmos + terraform-docs).
- `.github/`: CI/CD, Renovate/Dependabot, labels, and automerge settings.
- `docs/`: Project docs (if any). Keep lightweight and current.

## 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.
- `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`).

## Coding Style & Naming Conventions
- Indentation: Terraform 2 spaces; YAML/Markdown 2 spaces.
- Terraform: prefer lower_snake_case for variables/locals; keep resources/data sources descriptive and aligned with Cloud Posse null-label patterns.
- Lint/format: `terraform fmt -recursive`, TFLint rules per `.tflint.hcl`. Do not commit formatting or lint violations.

## Testing Guidelines
- Framework: Go Terratest with `github.com/cloudposse/test-helpers` and `atmos` fixtures.
- Location/naming: put tests in `test/` and name files `*_test.go`. Add scenarios under `test/fixtures/stacks/catalog/usecase/`.
- Run: `atmos test run`. Ensure AWS credentials are configured; tests may incur AWS costs and will clean up after themselves.

## Commit & Pull Request Guidelines
- Commits: follow Conventional Commits (e.g., `feat:`, `fix:`, `chore(deps):`, `docs:`). Keep messages concise and scoped.
- PRs: include a clear description, linked issues, and any behavioral changes. Update `README.yaml` when inputs/outputs change and run `atmos docs generate readme`.
- CI: ensure pre-commit, TFLint, and tests pass. Avoid unrelated changes in the same PR.

## Security & Configuration Tips
- Never commit secrets. Configure AWS credentials/role assumption externally; the provider setup in `src/providers.tf` supports role assumption via the `iam_roles` module.
- Global quotas must be applied in `us-east-1`; place in the `gbl` stack and set `region: us-east-1` in `vars`.
8 changes: 0 additions & 8 deletions Makefile

This file was deleted.

299 changes: 164 additions & 135 deletions README.md

Large diffs are not rendered by default.

284 changes: 91 additions & 193 deletions README.yaml

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions atmos.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Atmos Configuration — powered by https://atmos.tools
#
# This configuration enables centralized, DRY, and consistent project scaffolding using Atmos.
#
# Included features:
# - Organizational custom commands: https://atmos.tools/core-concepts/custom-commands
# - Automated README generation: https://atmos.tools/cli/commands/docs/generate
#
# Import shared configuration used by all modules
import:
- https://raw.githubusercontent.com/cloudposse-terraform-components/.github/refs/heads/main/.github/atmos/terraform-component.yaml
186 changes: 89 additions & 97 deletions src/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading