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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 742ed8f86152d0871bc155dc0733bbcb4c228e7145b9ecbcb4fdda3a9724b04f |
|
MD5 | e963c8271a285b36a115eb16672a7436 |
|
BLAKE2b-256 | f86594d5ce496b2140ba653b64456765b7a0effaab3b4463b245b8993eeb13ce |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28ca837ab8091d42af3ee25bb13fb1b2ff9b78ef4e3c66b7f43b18ca130fd182 |
|
MD5 | 6cfd9e4b0532204a10057145168035a2 |
|
BLAKE2b-256 | 3fd8805ac59fed917ef202120759566d7d2acc097e9d5d2c2a0b80c37c631194 |