Skip to main content

Automated Component Testing

Erik Osterman
Cloud Posse

We're excited to announce the completion of the second phase of our Component Testing project, which has added automated testing for 27 components. This milestone follows our successful migration of 160+ Terraform Components from a monorepo to individual repositories, making them more maintainable and testable.

Hello SweetOps!

A few months ago, we embarked on a MASSIVE project to enable Component Testing.

The goal is to improve the stability of our components, detect and fix integration errors, and pave the way for confident delivery of new features. In the first phase, we split the cloudposse/terraform-aws-components monorepo consisting of 160+ Terraform Components into individual repositories in the cloudposse-terraform-components GitHub organization. We updated the cloudposse/github-action-atmos-component-updater GitHub action to rewrite URLs in component manifests automatically, allowing you to smoothly migrate to new repositories.

Current Status

Now, we are happy to announce that we have completed the second phase of this project, introducing automated tests for the first 27 components. Hopefully, you are already using components from the new organization!

The complete list of covered components can be found here.

We've developed a Go-based testing framework built on top of Terratest, optimized specifically for testing Atmos components.
Additionally, we created a step-by-step guide to help you write effective component tests.
You can track the project's progress on this board.

We invite everyone to contribute to this project.

Please like the "Add component tests" issue in the corresponding component repository for which you are interested in prioritizing test coverage. If you want to contribute more, we have the opportunity.

How can you help?

We really need help writing tests.

You can take any "Add component tests" issue with the "Good First Question" label and contribute to the test following our documentation.

We will prioritize reviewing your PRs in the #pr-reviews channel and help ensure they get merged smoothly.. Feel free to DM to @Erik Osterman or @Igor Rodionov in Slack with any questions or feedback.

Join the Conversation!

Want to help shape the future of our Terraform components? We're building it in the open and you're invited.
Join us in the SweetOps Slack to chat about component testing, automation, and all things Terraform.

P.S.: Huge thanks to @RoseSecurity for the first community-driven component test contribution here.

Terraform Component GitHub Repository Has Moved!

Igor Rodionov
Cloud Posse

The GitHub repository for Cloud Posse's Terraform components has migrated to a dedicated GitHub organization. All documentation remains here, but all future updates, contributions, and issue tracking for the source code should now be directed to the respective repositories in the new organization.

We're excited to announce that starting on November 12, 2024, we will begin migrating each component in the cloudposse/terraform-aws-components repository to individual repositories under a new GitHub organization. This change aims to improve the stability, maintainability, and usability of our components.

Why This Migration?

Our goal is to make each component easier to use, contribute to, and maintain. This migration will allow us to:

  • Leverage terratest automation for better testing
  • Implement semantic versioning to clearly communicate updates and breaking changes
  • Improve PR review times and accelerate community contributions
  • Enable Dependabot automation for dependency management
  • And much more!

What to Expect Starting November 12, 2024

Migration Timeline

The migration will begin on November 12 and is anticipated to finish by the end of the following week.

Code Freeze

Starting on November 12, this repository will be set to read-only mode, marking the beginning of a code freeze. No new pull requests or issues will be accepted here after that date.

New Contribution Workflow

After the migration, all contributions should be directed to the new individual component repositories.

Updated Documentation

To support this transition, we are updating our documentation and cloudposse-component updater.

Future Archiving

In approximately six months, we plan to archive this repository and transfer it to the cloudposse-archives organization.

Frequently Asked Questions

Does this affect Terraform modules?

No, only the terraform-aws-components repository is affected. Our Terraform modules will remain where they are.

We are committed to making this transition as seamless as possible. If you have any questions or concerns, please feel free to post them in this issue. Your feedback is important to us, and we appreciate your support as we embark on this new chapter!