tflocal - Terraform with LocalStack
This package provides tflocal - a small wrapper script to run Terraform against LocalStack.
Prerequisites
- Python 3.x
pipterraform
How it works
The script uses the Terraform Override mechanism and creates a temporary file localstack_providers_override.tf to configure the endpoints for the AWS provider section. The endpoints for all services are configured to point to the LocalStack API (http://localhost:4566 by default).
Installation
The tflocal command line interface can be installed via pip:
pip install terraform-local
Configurations
The following environment variables can be configured:
TF_CMD: Terraform command to call (default:terraform)AWS_ENDPOINT_URL: hostname and port of the target LocalStack instanceLOCALSTACK_HOSTNAME: (Deprecated) host name of the target LocalStack instanceEDGE_PORT: (Deprecated) port number of the target LocalStack instanceS3_HOSTNAME: special hostname to be used to connect to LocalStack S3 (default:s3.localhost.localstack.cloud)USE_EXEC: whether to useos.execinstead ofsubprocess.Popen(try using this in case of I/O issues)<SERVICE>_ENDPOINT: setting a custom service endpoint, e.g.,COGNITO_IDP_ENDPOINT=http://example.comAWS_DEFAULT_REGION: the AWS region to use (default:us-east-1, or determined from local credentials ifboto3is installed)CUSTOMIZE_ACCESS_KEY: enables to override the static AWS Access Key ID. The following cases are taking precedence over each other from top to bottom:AWS_ACCESS_KEY_IDenvironment variable is setaccess_keyis set in the Terraform AWS providerAWS_PROFILEenvironment variable is set and configuredAWS_DEFAULT_PROFILEenvironment variable is set and configureddefaultprofile's credentials are configured- falls back to the default
AWS_ACCESS_KEY_IDmock value
AWS_ACCESS_KEY_ID: AWS Access Key ID to use for multi account setups (default:test-> account ID:000000000000)
Usage
The tflocal command has the same usage as the terraform command. For detailed usage,
please refer to the man pages of terraform --help.
Change Log
- v0.16.0: Introducing semantic versioning and AWS_ENDPOINT_URL variable
- v0.15: Update endpoint overrides for Terraform AWS provider 5.22.0
- v0.14: Add support to multi-account environments
- v0.13: Fix S3 automatic
use_s3_path_styledetection when setting S3_HOSTNAME or LOCALSTACK_HOSTNAME - v0.12: Fix local endpoint overrides for Terraform AWS provider 5.9.0; fix parsing of alias and region defined as value lists
- v0.11: Minor fix to handle boolean values in S3 backend configs
- v0.10: Add support for storing state files in local S3 backends
- v0.9: Fix unsupported provider override for emrserverless
- v0.8: Configure the endpoint for opensearch service
- v0.7: Add initial support for provider aliases
- v0.6: Fix selection of default region
- v0.5: Make AWS region configurable, add
regionto provider config - v0.4: Fix using use_s3_path_style for S3_HOSTNAME=localhost; exclude
meteringmarketplaceservice endpoint - v0.3: Fix support for -chdir=... to create providers file in target directory
- v0.2: Add ability to specify custom endpoints; pass INT signals to subprocess
- v0.1: Initial release
License
This software library is released under the Apache License, Version 2.0 (see LICENSE).
Metadata
Release files for terraform-local 0.16.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| terraform-local-0.16.0.tar.gz | 14.1 kB | Details |
Release files / terraform-local-0.16.0.tar.gz
| Download URL | terraform-local-0.16.0.tar.gz |
|---|---|
| Size | 14.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3193213c54275d5a2407d01763778a876e45a04daaa48c4a698a64807d757a1e
|
|
BLAKE2b-256 checksum How to use checksums |
aaf769c2981d89c0e074bf15272304fe6843ffcb266cfe044b32f36e23a6e628
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.6
|