rain  by aws-cloudformation

CLI tool for AWS CloudFormation template/stack management

created 6 years ago
909 stars

Top 40.8% on sourcepulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

Rain is a command-line tool designed to streamline the development workflow for AWS CloudFormation users. It offers features for interactive deployments, template formatting, log aggregation, and template generation, aiming to improve efficiency and reduce errors in infrastructure management.

How It Works

Rain leverages Go and the AWS SDK for Go v2 to interact with AWS CloudFormation. Its core approach involves providing a unified interface for common CloudFormation tasks. Key features like interactive deployments (rain deploy) offer real-time feedback and parameter prompting. The rain build command utilizes generative AI (via AWS Bedrock) to create template skeletons or policy validation files, enhancing developer productivity. Experimental features like rain forecast aim to predict deployment failures by analyzing templates and target accounts.

Quick Start & Requirements

  • Install: brew install rain (macOS), download binaries from releases, or go install github.com/aws-cloudformation/rain/cmd/rain@latest.
  • Prerequisites: AWS CLI configured with credentials. Optional: AWS Bedrock access for AI-powered template generation.
  • Documentation: https://aws-cloudformation.github.io/rain/

Highlighted Details

  • Supports custom intrinsic functions like !Rain::Embed, !Rain::Include, !Rain::Env, !Rain::S3Http, and !Rain::S3 for advanced template packaging and artifact management.
  • Experimental module system (rain pkg, rain module) enables client-side template composition and integration with AWS CodeArtifact for publishing/installing modules.
  • rain build --prompt and rain build --recommend leverage generative AI for creating CloudFormation templates and policy validation files (OPA Rego, CloudFormation Guard).
  • rain log --chart generates Gantt charts of stack operation durations.

Maintenance & Community

  • Actively developed by the AWS CloudFormation team.
  • Community discussion via Discord.

Licensing & Compatibility

  • Licensed under the Apache 2.0 License.
  • Permissive license suitable for commercial use and integration with closed-source projects.

Limitations & Caveats

  • Several features are marked as experimental (forecast, modules, content deployment), indicating potential for changes or instability.
  • AI-powered template generation requires AWS Bedrock, which incurs costs and needs setup.
Health Check
Last commit

1 week ago

Responsiveness

1 week

Pull Requests (30d)
15
Issues (30d)
1
Star History
23 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.