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.1.tar.gz
(13.8 kB
view hashes)
Built Distribution
Close
Hashes for AssetBundleFramework-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3198b79d7a599b9dd50c30392dc56a1219ba2e203fe7a5eb281ecfb8e3e7ff7 |
|
MD5 | d09a7da895c728b751d789a6834a564c |
|
BLAKE2b-256 | 7d255a476bb9d8b8d91718e27715ca97e3abb9e06c06b1b59b1deab09a93e55f |
Close
Hashes for AssetBundleFramework-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa10e91bf3bfca4b531f94f3aab0a58b8f75f86a393e3bd419e64485b26f3124 |
|
MD5 | 8f1fdc03d6eccf3109fa4acab7fabe06 |
|
BLAKE2b-256 | 46a20cade7db5c1fb897c6c103ca62c769ee99456ad52d2dbe7b57cef21a9f83 |