Skip to content

Quickstart

By the end of this quickstart you’ll have:

  • Written a uds-bundle.yaml referencing two Zarf packages
  • Created a bundle locally
  • Deployed it to a Kubernetes cluster

To understand how bundles fit into the UDS ecosystem, see Bundles.

  1. Create a uds-bundle.yaml

    Create a new directory and add a uds-bundle.yaml:

    uds-bundle.yaml
    kind: UDSBundle
    metadata:
    name: my-first-bundle
    description: A minimal UDS bundle example
    version: 0.0.1
    packages:
    - name: init
    repository: ghcr.io/zarf-dev/packages/init
    ref: v0.73.1
    - name: dos-games
    repository: ghcr.io/zarf-dev/packages/dos-games
    ref: 1.3.0

    This bundle deploys the Zarf init package followed by dos-games.

  2. Create the bundle

    From the directory containing your uds-bundle.yaml:

    Terminal window
    uds create .

    UDS CLI pulls the referenced Zarf packages from their OCI registries and assembles them into a local tarball:

    uds-bundle-my-first-bundle-amd64-0.0.1.tar.zst
  3. Deploy the bundle

    Terminal window
    uds deploy uds-bundle-my-first-bundle-amd64-0.0.1.tar.zst --confirm

    To deploy from an OCI registry instead:

    Terminal window
    uds deploy ghcr.io/<your-org>/dev/my-first-bundle:0.0.1 --confirm

After deployment, confirm the pods are running:

Terminal window
uds zarf tools kubectl get pods -A

Symptom: bundle architecture mismatch error during deploy.

Solution: Use -a amd64 or -a arm64 to specify the target architecture explicitly.

Symptom: Errors pulling packages from an OCI registry.

Solution: Verify registry credentials with uds zarf tools registry login.

Symptom: A package deployment times out before completing.

Solution: Set timeout on the package in uds-bundle.yaml (e.g., timeout: 10m). To retrieve logs from the most recent operation, run uds logs.