Skip to main content

TfUtility provides different tools for Terraform Developers

Project description

TfUtility

Validate

Documentation:

tfutility allows performing commands on terraform/tofu files. This commands can be different things. Currently, there are possibilities to check if a module block has remote sources. Or import or moved blocks have creation dates on them.

It also allows TF-Stack Developers to swap the sources of marked modules.

For all of these Functions, show the Samples Below or read the Documentation

Setup

Install via PIP

Install tfutility via pip

$ pip install tfutility

Run tfutility in command line

$ tfutility

for detailed Examples visit the Documentation

Use with Docker

docker run -it --rm -v $(pwd):/workspace ghcr.io/eieste/tfutility:1.0.9 forcedremotesource /workspace

Use with pre-commit

Quick-Reference

The following Options are currently available

@importdate

The importdate decorator should help you to keep your code clean. You should be able to delete imports after the stack has been successfully rolled out. this decorator is useful to avoid removing import blocks too early or forgetting them

Example:

    # @importdate(create="01-12-1970", expire="05-01-1971)
    import {
        ...
    }

Execute the following command to check if the import was "expired"

tfutility importdate /workspace

you can also overwrite the expire date with your own duration like:

tfutility importdate --expire-after 60 /workspace

The --expire-after value is in Days.

If --allow-failure is not set the Application wil exit with exitcode 1 and without --silent it logs all expired imports

@moveddate

This has the same Reason like @importdate

Decorator in Terraform

    # @moveddate(create="01-12-1970", expire="05-01-1971)
    moved {
        ...
    }

Execute the following command to check if the moved was "expired"

tfutility moveddate /workspace

@sourceswap

This command allows to swap between remote and local sources.

    # @sourceswap(remote_version="0.0.1", remote_source="example.com/examplemodule/local", source="../../examplemodule")
    module {
        source = "../../examplemodule"
    }

To Swap all Sources in your workspace you can execute the following command

tfutility sourceswap --swap-to local /workspace
tfutility sourceswap --swap-to remote /workspace

@forcedremotesource

Decorator in Terraform

    # @forceremotecheck
    module {
        source = "../
    }

Execute the following command to check if all module blocks has an remote source.

tfutility forcedremotesource /workspace

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tfutility-1.0.11.tar.gz (49.2 kB view details)

Uploaded Source

Built Distribution

tfutility-1.0.11-py3-none-any.whl (37.4 kB view details)

Uploaded Python 3

File details

Details for the file tfutility-1.0.11.tar.gz.

File metadata

  • Download URL: tfutility-1.0.11.tar.gz
  • Upload date:
  • Size: 49.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for tfutility-1.0.11.tar.gz
Algorithm Hash digest
SHA256 a105df526a351c61057814a2f210bdeeca68484e09cddd709f737833aea51aa1
MD5 56ff366312f053fdfc12555a968ef013
BLAKE2b-256 73e6a53e5fcb45ee78acef1a1462234660f828c68184a15f7625ea53db8119ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for tfutility-1.0.11.tar.gz:

Publisher: pypi.yml on eieste/tfutility

Attestations:

File details

Details for the file tfutility-1.0.11-py3-none-any.whl.

File metadata

  • Download URL: tfutility-1.0.11-py3-none-any.whl
  • Upload date:
  • Size: 37.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for tfutility-1.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 fd1b7da1658e68dccb879418fae955c02fc9a0dcccf7a48150a440538c2f2b09
MD5 f40585204017c25db94bc0d6bf591c8e
BLAKE2b-256 9bfa2517c35cd4e4496b683f0d2afea68aa588b1ce54ee5d8b507a7925f30fb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tfutility-1.0.11-py3-none-any.whl:

Publisher: pypi.yml on eieste/tfutility

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page