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
AssetBundleFramework-0.1.0.tar.gz
(13.7 kB
view hashes)
Built Distribution
Close
Hashes for AssetBundleFramework-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e46cd76426b79e5c37c4c60147c10a90c707a85ce639d743a4662c6d34077e7e |
|
MD5 | 69fca8cde87616a909ba2f7148d8abcc |
|
BLAKE2b-256 | 4f3454ce0a3cfe9bc7999128cd696aafb55296911e7e1bafda8cabad2cbc5bbb |
Close
Hashes for AssetBundleFramework-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 617071149c6e751e2fb6247e3ace8ef7c167ce55d5c07ec71a0354100f843a50 |
|
MD5 | bd2050dce952dc46521c5db0bddb5b7d |
|
BLAKE2b-256 | cbf94f544ec22a13cb47dce25b4de8eb7879bcf7726c613aa94090c326807d85 |