Skip to content

Conversation

@osterman
Copy link
Member

@osterman osterman commented Dec 5, 2025

what

  • Create unified pkg/generator package with registry pattern for Terraform file generation
  • Implement required_providers and required_version support in stack configurations
  • Add atmos terraform generate required-providers CLI command
  • Auto-generate terraform_override.tf.json with version constraints during terraform commands
  • Update JSON schema to support new configuration fields

why

This feature allows users to pin Terraform and provider versions per component, improving reproducibility and reducing dependency-related issues. The unified generator package consolidates file generation logic for better maintainability.

references

Closes #3124

Implement DEV-3124 to allow pinning Terraform and provider versions per
component using required_version and required_providers in stack
configuration. Includes unified generator package, CLI command, and schema updates.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@osterman osterman requested a review from a team as a code owner December 5, 2025 04:40
@github-actions github-actions bot added the size/xl Extra large size PR label Dec 5, 2025
@github-actions
Copy link

github-actions bot commented Dec 5, 2025

Dependency Review

✅ No vulnerabilities or license issues found.

Scanned Files

None

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 5, 2025

Warning

Rate limit exceeded

@osterman has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 22 minutes and 41 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 38eb63c and f000d70.

📒 Files selected for processing (28)
  • cmd/terraform/generate/required_providers/required_providers.go (1 hunks)
  • cmd/terraform_generate.go (3 hunks)
  • errors/errors.go (1 hunks)
  • internal/exec/stack_processor_merge.go (2 hunks)
  • internal/exec/stack_processor_process_stacks_helpers.go (2 hunks)
  • internal/exec/stack_processor_process_stacks_helpers_extraction.go (1 hunks)
  • internal/exec/stack_processor_process_stacks_helpers_inheritance.go (2 hunks)
  • internal/exec/stack_processor_process_stacks_helpers_overrides.go (2 hunks)
  • internal/exec/stack_processor_utils.go (4 hunks)
  • internal/exec/terraform.go (1 hunks)
  • internal/exec/terraform_generate_required_providers.go (1 hunks)
  • internal/exec/terraform_utils.go (3 hunks)
  • internal/exec/utils.go (4 hunks)
  • pkg/config/const.go (1 hunks)
  • pkg/datafetcher/schema/stacks/stack-config/1.0.json (4 hunks)
  • pkg/generator/errors.go (1 hunks)
  • pkg/generator/generator.go (1 hunks)
  • pkg/generator/generator_test.go (1 hunks)
  • pkg/generator/options.go (1 hunks)
  • pkg/generator/providers/generator.go (1 hunks)
  • pkg/generator/providers/generator_test.go (1 hunks)
  • pkg/generator/registry.go (1 hunks)
  • pkg/generator/required_providers/generator.go (1 hunks)
  • pkg/generator/required_providers/generator_test.go (1 hunks)
  • pkg/generator/varfile/generator.go (1 hunks)
  • pkg/generator/varfile/generator_test.go (1 hunks)
  • pkg/generator/writer.go (1 hunks)
  • pkg/schema/schema.go (2 hunks)
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/dev-3124-pin-provider-versions-of-components-using-terraform

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.

@mergify
Copy link

mergify bot commented Dec 5, 2025

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.

@osterman osterman added the minor New features that do not break anything label Dec 5, 2025
@github-actions
Copy link

github-actions bot commented Dec 5, 2025

Warning

Changelog Entry Required

This PR is labeled minor or major but doesn't include a changelog entry.

Action needed: Add a new blog post in website/blog/ to announce this change.

Example filename: website/blog/2025-12-05-feature-name.mdx

Alternatively: If this change doesn't require a changelog entry, remove the minor or major label.

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/xl Extra large size PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants