Skip to main content

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.

  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'

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

Uploaded Source

Built Distribution

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.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page