app like that
Terraprep
Terraprep

Terraprep is a command-line utility for configuring and deploying Terraform or Opentofu remote backends. It supports multiple cloud platforms, integrates with existing workflows, and provides predefined starter templates for infrastructure deployment.

Features

Build terraform remote backends

Allows devops and infrastructure teams to deploy and configure remote backends for terraform on public cloud platforms.

Multiple remote backend type support

Supports major cloud platforms including AWS, Google Cloud, and Azure, integrating with existing pipelines.

Be productive, safer and faster

Handles remote backend storage creation with configurations, allowing teams to streamline their workflows.

Integrates with existing workflows

Works with current Terraform workflows, enabling operations like init, plan, apply, and destroy.

Predefined starter templates

Offers predefined, reusable terraform CDK and pipeline templates to quickly deploy infrastructure.

Enterprise Landing zone support

Generates templates and directory structures for enterprise landing zone deployments.

Multiple Remote Backends

Terraprep lets you create multiple types of remote backends without manual intervention, managing creation before running Terraform.

Predefined Starter Templates

Generates starter templates specific to remote backends for quick initiation and testing of Terraform configurations.

Integration with Existing Pipelines

Terraprep can be integrated into new or existing pipelines by adding steps before running Terraform, complementing it as a command-line utility.

Manual Installation

You can manually download Terraprep binaries from their Releases page based on your platform.

Automated Installation for MacOS

Instructions to download and install Terraprep using Homebrew. Commands for fetching and unzipping the files are provided.

Automated Installation for Linux

Instructions to download and install Terraprep using apt-get. Commands for fetching and unzipping the files are provided.

Automated Installation for Windows

Instructions to download and install Terraprep using Chocolatey or PowerShell. Specific commands for installation are provided.

Remote Backend Creation Without Cloud Portal

Terraprep allows you to create remote backends without using a cloud platform console or portal. It involves configuring the backend using Terraprep commands, such as initializing Terraprep and creating the backend from configuration files.

Integrating with Existing Templates

Terraprep helps in rapidly testing existing Terraform templates with the created backend. You can create PostgreSQL or similar backends and use Terraform commands to integrate existing infrastructure templates.

Command-line Backend Creation

Users can create remote backends via the command line without needing interactive prompts. This feature allows users to input values directly via command-line arguments, thus increasing efficiency in backend setup.

Azure Backend

Provides support for managing resources using the Azure backend.

GCP Backend

Facilitates resource management using the Google Cloud Platform backend.

Postgres Command

Offers command functionalities for interacting with Postgres databases.

Core Commands

Manage the essential functionality of Terraprep. These are used to initialize, manage, view both core and backend configurations, and validate dependencies.

Backend Commands

Manage and configure Terraprep using supported remote backends. They also generate Terraform templates with backend configurations compatible with Terraform.

Globals & Flags

Global commands/subcommands and flags are available for use with both core and backend commands. Users should refer to the specific sections for understanding command usage.

terraprep init

Initializes the terraprep configuration. It is recommended to run this command when using terraprep for the first time.

terraprep validate

Runs validation steps against dependencies needed by terraprep to carry out tasks.

terraprep config

Allows management and viewing of current running configurations for terraprep. Includes the 'show' subcommand to display stored configurations.

flag: -c, --core

Used with the config command to show the core configuration of terraprep.

flag: -p, --postgres

Used with the config command to show the postgres backend configuration.

flag: -g, --gcp

Used with the config command to show the gcp backend configuration.

Google Cloud Storage (gcs) Buckets

Supports creation of GCS remote backend using the command 'gcp'. Provides a specific command to implement this backend.

Postgres Database

Supports creation of Postgres remote backend using the command 'pg'. Provides a specific command to implement this backend.

Google Cloud Platform backend creation support

Provides support for creating backends on Google Cloud Platform with complimentary Terraform templates.

Postgres backend creation support

Offers support for creating Postgres backends with complimentary Terraform templates.

Google Cloud Storage (GCS) buckets

Terraprep supports creation of GCS remote backends. Provides detailed documentation via the GCP backend command.

Postgres database

Terraprep supports creation of Postgres remote backends. Detailed instructions can be accessed using the PG backend command.

Azure Blob Storage

Terraprep supports creation of AzureRM remote backends. Further details available through the Azure backend command.

Azurerm backend creation support

This feature provides support for creating backends using Azurerm, along with complimentary Terraform templates.

Version Flag

Use the '-v' or '--version' flag to see the version information of Terraprep.

Help Flag

Use the '-h' or '--help' flag to access more details about the available commands, subcommands, or flags for Terraprep.

subcommand: init

Initializes the corresponding backend configuration for the selected backend. Usage: terraprep <supported-backend> init.

subcommand: create

Creates the backend resources on the selected backend. Usage: terraprep <supported-backend> create.

option: backend

Provides details of the selected backend. Usage: terraprep <supported-backend> create backend.

option: terraform

Generates the terraform templates based on the configurations. Usage: terraprep <supported-backend> create terraform.

GCP Backend Command

The 'gcp' backend command leverages the Google Cloud SDK for authentication and supports the creation of new Google Cloud Platform storage buckets as a remote backend. Users need to have the gcloud CLI installed, configured, and authenticated against Google Cloud Platform to use this command.

Postgres Command

Terraprep supports the creation of new Azure storage accounts with blob containers using the `terraprep postgres` command.

Environment Variables

The command supports several environment variables for backend setup, including Pghost, Pgport, Pguser, Pgpassword, Pgsslmode, and Pgdatabase. If not set, terraprep prompts for values or suggests defaults.

Encrypted Password Storage

Terraprep ensures that plaintext values of the $PGPASSWORD environment variable are not stored.

Azure Backend Command

Leverages the Azure SDK for authentication. Requires the Azure CLI to be installed, configured, and authenticated against the Azure cloud platform. Supports the creation of new Google Cloud Platform storage buckets as a remote backend.