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

Uploaded Source

Built Distribution

terraform_worker-0.3.0-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: terraform-worker-0.3.0.tar.gz
  • Upload date:
  • Size: 12.9 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.3.0.tar.gz
Algorithm Hash digest
SHA256 742ed8f86152d0871bc155dc0733bbcb4c228e7145b9ecbcb4fdda3a9724b04f
MD5 e963c8271a285b36a115eb16672a7436
BLAKE2b-256 f86594d5ce496b2140ba653b64456765b7a0effaab3b4463b245b8993eeb13ce

See more details on using hashes here.

File details

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

File metadata

  • Download URL: terraform_worker-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 34.5 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 28ca837ab8091d42af3ee25bb13fb1b2ff9b78ef4e3c66b7f43b18ca130fd182
MD5 6cfd9e4b0532204a10057145168035a2
BLAKE2b-256 3fd8805ac59fed917ef202120759566d7d2acc097e9d5d2c2a0b80c37c631194

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