Skip to main content

An orchestration tool for Terraform

Project description

terraform-worker

terraform-worker is a command line tool for pipelining terraform operations while sharing state between them. The worker consumese a yaml configuration file which is 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. Following is a sample configuration file and command:

./worker.yaml

terraform:
  providers:
    aws:
      vars:
        region: //aws-region//
        version: "~> 2.61"

  # global level variables
  terraform_vars:
    region: //aws-region//
    environment: dev

  definitions:
    # Either setup a VPC and resources, or deploy into an existing one
    network:
      path: /definitions/aws/network-existing

    database:
      path: /definitions/aws/rds
% worker --aws-profile default --backend s3 terraform --show-output example1

NOTE: When adding a provider from a non-hashicorp source, use a source field, as follows (the source field is only valid for terraform 13+ and is not emitted when using 12):

providers:
...
  kubectl:
    vars:
      version: "~> 1.9"
    source: "gavinbunney/kubectl"

Development

 # virtualenv setup stuf... and then:
 % pip install poetry && make init

Background

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.

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.8.3.linux-x86_64.tar.gz (55.9 kB view details)

Uploaded Source

Built Distribution

terraform_worker-0.8.3-py2.py3-none-any.whl (45.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file terraform-worker-0.8.3.linux-x86_64.tar.gz.

File metadata

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

File hashes

Hashes for terraform-worker-0.8.3.linux-x86_64.tar.gz
Algorithm Hash digest
SHA256 86fff86611362aa3f2fe89c90585abccfd7fe279b36d7b337b7f6ae7d066c9cf
MD5 c70d0897fae09d08567b0af4d63bea26
BLAKE2b-256 22955264c4e1fe3fd5241a77b7fb5f8397189648dddf971827dbf1fea6e4a256

See more details on using hashes here.

File details

Details for the file terraform_worker-0.8.3-py2.py3-none-any.whl.

File metadata

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

File hashes

Hashes for terraform_worker-0.8.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 35b59a807d26b3c4d1e132d46c7b8c973111608f33243179d8671b0ff6e97d35
MD5 e299c7f6e49e42b6c92358851dafed66
BLAKE2b-256 a319d97c42ce21b81d6eae0f6b15fe0caed79a3b536eccb4a9194d1d98501551

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