Skip to content

Bundle artifacts. Move them together.#

Bale captures OCI images and artifacts in a portable bundle. Carry an offline archive or store it in a registry, then push where you choose.

Get started Inspect a bundle

Move a bundle

Capture related images and artifacts, carry them as an OCI layout, and choose the destination registry when you push.

Bundle walkthrough

Use the Go SDK

Build integrations with caller-owned stores, dependency declarations, and confirmed artifact relocation results.

SDK guide

Capture once, move together#

List the images and artifacts you need in bale.yaml, using references you can read:

include:
  - registry.example.com/apps/api:stable
  - registry.example.com/apps/worker:1.4

Create a local bundle, save it for transfer, then restore and push it to the receiving registry:

bale create --layout -f bale.yaml ./release
bale save ./release -o release.tar
# On the receiving side:
bale load -i release.tar ./restored
bale push ./restored mirror.example.com/releases/v1:bundle

Carry release.tar across the offline boundary. Follow the offline walkthrough, or read about destination mappings.

  • Preserve original digests. Capture complete multiarchitecture images, OCI artifacts, nested bundles and selected referrers. Write a recipe.
  • Carry declared dependencies. Include the references an artifact needs and keep their captured resolutions for locked transfers. Declare dependencies or generate them with a plugin.
  • Discover Helm images. Select a registry plugin in the recipe to render a chart profile offline and capture images from workloads, hooks, and subcharts. Prepare a chart.
  • Deploy delivered charts. Read destination attachments through the Helm integration or Flux Operator adapter.
  • Inspect before delivery. Read verified inventories, selected declarations and resolved digests from a registry or local layout. Inspect a bundle.

See registry behavior for authentication and retention settings, and contributing for source builds and documentation checks.