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.3.0.tar.gz
(14.3 kB
view hashes)
Built Distribution
Close
Hashes for AssetBundleFramework-0.3.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b834b279fdcfa435f29999e26df050a4913633e14a556172c6b4754220de3a9d |
|
MD5 | cc6945ea373815a304c64a68eec5ca42 |
|
BLAKE2b-256 | 968212c5677ca7947578dbca5e0559040fc6fffc6ef998fea0c6f8d6d595eb2d |
Close
Hashes for AssetBundleFramework-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3834404aff286a527d6f7f8d47cca4ec87fac50687cd5a3ff4a93eb72203c545 |
|
MD5 | 120961ebb7a502cb186d47b5f817351a |
|
BLAKE2b-256 | 569c74c717d62cdaf49679755525d63ee60b577ec725cd73f0c2766663e14fa0 |