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.1.1.tar.gz (49.7 kB view details)

Uploaded Source

Built Distribution

tfutility-1.1.1-py3-none-any.whl (37.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tfutility-1.1.1.tar.gz
Algorithm Hash digest
SHA256 0c1ff55e38a1d9b49771aba7da750f213f64f64d95005745190f0c7a16a11565
MD5 74f65df2d231e6f4d2c5f7af9525c6c8
BLAKE2b-256 01e5eeac8511fec68f832270593789b899d647c4d0e89fb7e226bc0808dda414

See more details on using hashes here.

Provenance

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

Publisher: pypi.yml on eieste/tfutility

Attestations:

File details

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

File metadata

  • Download URL: tfutility-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 37.7 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 017e86468b847a4bd960737749e7299c17e7c6a23d5342e5950fa50a15a42698
MD5 87e46bff52c494813e0353afef2e99aa
BLAKE2b-256 a151f8af7e71bfceaa1f49fbb747f0c65180c97b375687a8955a3db41e078f10

See more details on using hashes here.

Provenance

The following attestation bundles were made for tfutility-1.1.1-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