Skip to main content

An orchestration tool for Terraform

Project description

terraform-worker

The terraform worker was a weekend project to run terraform against a series of definitions (modules). The idea was the configuration vars, provider configuration, remote state, and variables from remote state would all be dynamically generated. The purpose was for building kubernetes deployments, and allowing all of the configuration information to be stored as either yamnl files in github, or have the worker configuration generated by an API which stored all of the deployment configurations in a database.

Using the application

The application expected a mono-repo of terraform, that was broken up into two sections, definitions (which were really just top level modules) and sub-modules. The definitions are put into a worker config in order, with the terraform variables, and remote state variables.

This application has some specifics to the implementation that was being planned, so stores certain credentials in vault, and is perspective about where remote state is stored (DynamoDB in AWS). For the project that was being worked on, this weekend hack project was used as the basis for fully featured Go application that has similar (though much expanded) functionality.

A couple of items also rely on vault, such as SSH keys, and token signing roles and certificates. These are rather implementation specific.

Notes:

This code is uploaded just as a proof of concept to share different ways of working with terraform, and managing a set of terraform resources through the lifecycle. It's similar in nature to tools like terragrunt (though that's much more polished, though didn't fit our particular use case!) which aim to allow a set of terraform code to be made more modular and reusable across different environments.

This was built/designed around Terraform 0.11; 0.12 has some minor changes in configurations that would require updates.

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

terraform-worker-0.2.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distributions

terraform_worker-0.2.0-py3.8.egg (33.2 kB view details)

Uploaded Source

terraform_worker-0.2.0-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file terraform-worker-0.2.0.tar.gz.

File metadata

  • Download URL: terraform-worker-0.2.0.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.2

File hashes

Hashes for terraform-worker-0.2.0.tar.gz
Algorithm Hash digest
SHA256 15fe6e0908fd1eae288d4396f83e3095c6d532014c25a9c8e9c44168377047e3
MD5 8b99fd5615eb7839fc3f683cbb29a935
BLAKE2b-256 a425b55e7fc6798eed2b84d54454a387558cdd94cbf406b91865e69276dd2261

See more details on using hashes here.

File details

Details for the file terraform_worker-0.2.0-py3.8.egg.

File metadata

  • Download URL: terraform_worker-0.2.0-py3.8.egg
  • Upload date:
  • Size: 33.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.2

File hashes

Hashes for terraform_worker-0.2.0-py3.8.egg
Algorithm Hash digest
SHA256 a3ba62faf9278e882237aab1ad1c172b4739c470bb7d1c6fc89209688519c679
MD5 811a27977c3eedba6f58e57c781bce9e
BLAKE2b-256 983b5c47293117ae98cf7c6bccc27c81c71e76a06bccb424458fa9b4f801fa04

See more details on using hashes here.

File details

Details for the file terraform_worker-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: terraform_worker-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 20.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.2

File hashes

Hashes for terraform_worker-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 43380634746fa3f291a89066da5a8fa159f4c7caacb02ba7039e9cd38b2f5a0b
MD5 73418a64b80732b9e953559db80c2b72
BLAKE2b-256 077aa550bb6e37a8bd11a01fca3845d2a89c962fc9fcf2857eca69540b69e8eb

See more details on using hashes here.

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