• Stars
    star
    137
  • Rank 266,121 (Top 6 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 2 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

cli tool to read any resource off of AWS API. Also generates Terraform import-blocks, and actual Terraform Resource code.

balcony

Build and publish a Docker image to ghcr.io

Build and Deploy Documentation website

balcony is a modern CLI tool that with some killer features:

  • Auto-fill the required parameters for AWS API calls
  • Read the JSON data of any AWS resource in your account
  • Generate Terraform Import Blocks
  • Generate actual .tf Terraform Resource code

balcony uses read-only operations, it does not take any action on the used AWS account.

Visit the Documentation Website

Installation

pip3 install balcony

Visit Installation & QuickStart Page to get started using balcony

# see options
balcony

# list available resources of ec2
balcony aws ec2 

# read a resource
balcony aws s3 Buckets

# show documentation
balcony aws iam Policy --list

# generate terraform import blocks for a resource
balcony terraform-import s3 Buckets

Features

Read any AWS Resource

balcony aws <service> <resource-name> --paginate command reads all resources of a given type in your AWS account.

Related Docs: QuickStart


Generate Terraform Import Blocks

Terraform v1.5 introduced import blocks that allows users to define their imports as code.

balcony terraform-import <service> <resource-name> command generates these import blocks for you.

balcony terraform-import --list to see the list of supported resources.

Related Docs: Generate Terraform Import Blocks Related Docs: Balcony Terraform Import Support Matrix


Generate actual Terraform Resource Code

If you have:

  • initialized terraform project
  • import_blocks.tf file that's generated with balcony terraform-import command

you can run terraform plan -generate-config-out=generated.tf to generate actual .tf resource code.

This feature is achieved with the balcony-terraform-import Docker Image.

Related Docs: Generate Terraform Code with Docker Image


Interactive Wizard to create balcony import configurations

Balcony doesn't know how to create terraform import blocks for all of the AWS resources.

It can be taught how to do it by creating import-configurations yaml files, but it's a manual process. This is where the interactive wizard comes in.

Interactive Wizards asks you required questions to automatically create the import-configurations yaml files.

Related Docs: Terraform Import Configuration Wizard