Skip to main content

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.

  1. Create a directory.
  2. Set the environment variable BUNDLE_DIRECTORY to the newly created directory.
  3. 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'

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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

AssetBundleFramework-0.3.0-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

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

Hashes for AssetBundleFramework-0.3.0.tar.gz
Algorithm Hash digest
SHA256 b834b279fdcfa435f29999e26df050a4913633e14a556172c6b4754220de3a9d
MD5 cc6945ea373815a304c64a68eec5ca42
BLAKE2b-256 968212c5677ca7947578dbca5e0559040fc6fffc6ef998fea0c6f8d6d595eb2d

See more details on using hashes here.

File details

Details for the file AssetBundleFramework-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for AssetBundleFramework-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3834404aff286a527d6f7f8d47cca4ec87fac50687cd5a3ff4a93eb72203c545
MD5 120961ebb7a502cb186d47b5f817351a
BLAKE2b-256 569c74c717d62cdaf49679755525d63ee60b577ec725cd73f0c2766663e14fa0

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page