Framework for managing Aptible Asset Bundles
Project description
ABF - The Asset Bundle Factory
Setup
Locally
When running locally, such as for testing, run-
make clone
If you want to pull in the latest versions of the AssetBundler repositories-
make reclone
Downstream
If you are not running in this repository directly there's a few steps to take.
- Create a directory.
- Set the environment variable
BUNDLE_DIRECTORY
to the newly created directory. - Do a full clone of the
terraform-aws-core
bundle into that directory.
Usage
The top level object is a AssetRepository
.
from abf import AssetRepository
import tempfile
AWSRepo = AssetRepository("aws")
# you can specify a tag (with get_asset_bundle_by_version), ex: v0.4.1
# you can also specify a ref (with get_asset_bundle_by_ref): ex: like "main" branch for development purposes
bundle = AWSRepo.get_asset_bundle_by_version("rds", "0.4.1")
# or
bundle = AWSRepo.get_asset_bundle_by_ref("rds", "main")
# Note these return the classes themselves, not an instance of the class.
ParameterValidationClass = bundle.get_parameter_validator()
PlanValidationClass = bundle.get_plan_validator()
AcceptanceValidationClass = bundle.get_acceptance_validator()
# Temporary directories disappear outside of the context.
# This means all operations have to be enclosed in the with block.
# Use a permanent directory if that is a problem.
with tempfile.TemporaryDirectory() as workdir:
# Returns a TerraformWorkspace from terrapy. By default it will drop you in an `executioner` workspace
workspace = bundle.get_fresh_workspace(workdir)
# Tell the bundle which state backend to use.
workspace.set_backend("s3", {
"bucket": "my_state_bucket",
"key": "my_state_file.state"
"dynamodb_table": "state_locks"
"region": "us-east-1",
})
workspace.init()
workspace.plan()
Environment variables
ABF_DISABLE_HARDLINKS
- disable hard links on git checkout and skip using the--local
flag
FAQ
- On a Mac using docker volumes in a fully dockerized local setup, you may run into this error:
Cloning into '/tmp/<TMP DIRECTORY>/aws/v0.18.0'...\nfatal: failed to create link
from a stderr output when ABF is running git operations. To fix this, you can disable hardlinks with an environment variable here:ABF_DISABLE_HARDLINKS='true'
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
Built Distribution
File details
Details for the file AssetBundleFramework-0.3.0.tar.gz
.
File metadata
- Download URL: AssetBundleFramework-0.3.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b834b279fdcfa435f29999e26df050a4913633e14a556172c6b4754220de3a9d |
|
MD5 | cc6945ea373815a304c64a68eec5ca42 |
|
BLAKE2b-256 | 968212c5677ca7947578dbca5e0559040fc6fffc6ef998fea0c6f8d6d595eb2d |
File details
Details for the file AssetBundleFramework-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: AssetBundleFramework-0.3.0-py3-none-any.whl
- Upload date:
- Size: 19.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3834404aff286a527d6f7f8d47cca4ec87fac50687cd5a3ff4a93eb72203c545 |
|
MD5 | 120961ebb7a502cb186d47b5f817351a |
|
BLAKE2b-256 | 569c74c717d62cdaf49679755525d63ee60b577ec725cd73f0c2766663e14fa0 |