terrap-cli

command module
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 4, 2023 License: Apache-2.0 Imports: 1 Imported by: 0

README

Terrap, by Sirrend

License GitHub go.mod Go version (subdirectory of monorepo)


Simplify your Provider version upgrades with Terrap - a powerful CLI tool that scans your system and identifies any required changes.
The tool offers clear and actionable notifications, helping you streamline the upgrade process and avoid any potential errors or complications.

🔍 Terrap is an alpha version project, therefore some data might be partial.

Resources

Constraints 🧱

  1. Supported Terraform Core versions: >=0.13.
  2. Every provider which uses Terraform Core 0.13 or higher.

Good To Know 💡

Terrap decides which Terraform version to use in the following order:

  1. The latest installed Terraform version found locally.

  2. If the TERRAP_TERRAFORM_VERSION environment variable is set, Terrap will use the version specified as long as it matches the >=0.13 constraint.
    Set environment variable on mac/linux:

    export <var>=<value>
    

    Set environment variable on windows:

    $Env:TERRAP_TERRAFORM_VERSION = "0.13"
    
  3. If none of the above is applicable, Terrap will download the latest available version.

How to Download ⬇️

Clone sirrend/terrap-cli
git clone https://github.com/sirrend/terrap-cli
cd terrap-cli

go build -o terrap .

chmod +x terrap
mv terrap /usr/local/bin/
Brew
brew tap sirrend/sirrend
brew install terrap

Validate terrap is working by executing terrap.

Quick Start ⏩

Initialize my First Workspace
  1. CD to the local Terraform folder you want to work with.
    cd < /terraform/folder/path >

  2. Initialize a new Terrap workspace where you would run terraform apply with terrap init.

    Important!
    As Terrap runs terraform init under the hood, it would need every configuration component you normally use when executing the command.
    It can be environment variables, the .aws/credentials file, etc.

  3. Scan your workspace with: terrap scan

https://user-images.githubusercontent.com/47568615/236044850-3473952a-4169-4d63-beb7-cf1664afc35a.mov

Features 🚀

Scan for changes with scan

Scan your infrastructure for changes in the following provider version for a safe and easy upgrade!
Looking for a specific resource type changes? Use the --data-sources --resources and --provider flags.

Stay up-to-date with whats-new

Ready to explore what's new in the following version of your provider? Simply execute terrap whats-new.
Looking to delve into a specific version of your provider? Specify the desired version with --fixed-providers <provider>:<version> to explore what's new and improved.

Which Providers are Supported?

Run terrap providers get-supported to get a list of all supported providers and version ranges.
You can use the --filter flag if you're looking for something specific.

What's the Future Hold 🔮

  1. Bulk updates - straight to a version of your choosing.
  2. Automatic Upgrades - you write, Terrap upgrades.
  3. Expanding Terrap's providers support.

Something's Wrong? Tell Us! 🚨

You can open an issue either directly from the CLI using terrap open-issue or through the GitHub UI.

Want to contribute? 🍀 Lucky us!

  1. Checkout from the main branch.
  2. Add your code with the proper documentation.
  3. Open a PR with a detailed explanation of the functionality you want to add.

Documentation

Overview

Copyright © 2023 Sirrend

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL