Skip to content

Content Bundles

In an air-gapped deployment, all container images and Helm charts are delivered via content bundles -- compressed .zst files downloaded from Artifact Studio and uploaded to the Palette Management Appliance's internal registry.

What Are Content Bundles

Content bundles are compressed archives containing:

  • Container images for all Palette packs (OS, K8s, CNI, CSI, add-ons)
  • Helm charts for pack deployment
  • Pack metadata for the Palette registry

When uploaded to the PMA, the bundles are extracted and their contents are pushed to the internal registry on port 30003. Cluster nodes then pull images from this registry during deployment.

Artifact Studio Login

Field Value
URL https://artifact-studio.spectrocloud.com
Username spectro
Password mV715z##spPSJC

Internet Required for Download

Artifact Studio requires internet access. Download the bundles on an internet-connected machine, then transfer them to the air-gapped environment via USB or approved file transfer.

Pack List

The following packs are included in the content bundles for the Toyota POC:

Infrastructure Packs

Pack Version Type Purpose
edge-native-byoi 2.1.0 OCI Base OS layer (Ubuntu 24.04 with Kairos)
edge-k8s (PXKe) 1.33.6 OCI Kubernetes distribution (kubeadm-based)
cni-cilium-oss 1.18.4 OCI Container networking with eBPF dataplane

Add-on Packs

Pack Version Type Purpose
lb-metallb-helm 0.15.2 OCI Bare metal load balancer (L2 mode)
nginx 1.14.1 OCI Ingress controller
prometheus-operator 80.4.2 OCI Monitoring and alerting stack
virtual-machine-orchestrator 4.8.9 OCI VM Orchestrator (KubeVirt-based)
vm-migration-assistant 4.8.8 OCI VM migration tooling

Download Process

  1. Log in to Artifact Studio
  2. Navigate to Install Palette Enterprise
  3. Select version 4.8.51
  4. Click Show Artifacts
  5. Download the Content Bundle (select "including Ubuntu")
  6. The download produces 9 .zst files

Bundle Files

The content bundle consists of 9 separate .zst compressed files:

File Approximate Size Contents
Bundle 1 Varies Core Palette system images
Bundle 2 Varies Kubernetes distribution images
Bundle 3 ~118 MB Cilium CNI images and charts
Bundle 4 Varies Storage provider images
Bundle 5 Varies Monitoring stack images
Bundle 6 Varies VMO images and dependencies
Bundle 7 Varies VMA images
Bundle 8 Varies Ingress and load balancer images
Bundle 9 Varies Additional pack dependencies

Bundle Sizes

Individual bundle sizes vary by version. The complete set for v4.8.51 is approximately 15-20 GB total. The Cilium bundle (118.4 MB) was the first successfully uploaded and verified during the 4/29 working session.

Upload Process

Step 1: Transfer to Air-Gap Environment

Transfer all 9 .zst files to a machine that can reach the PMA on port 5080. Common methods:

  • USB drive (recommended for large files)
  • Out-of-band file transfer
  • IPMI virtual media (for smaller files)

Step 2: Upload via Local UI

  1. Access the PMA Local UI at https://10.25.232.252:5080
  2. Navigate to Content --> Upload
  3. Select a .zst file and begin upload
  4. Wait for upload and extraction to complete before uploading the next file
  5. Repeat for all 9 .zst files
graph LR
    DL["Download from<br/>Artifact Studio"] --> XFER["Transfer to<br/>Air-Gap"]
    XFER --> UP["Upload to PMA<br/>Local UI :5080"]
    UP --> REG["Internal Registry<br/>:30003"]
    REG --> NODES["Cluster Nodes<br/>Pull Images"]

    style DL fill:#1F7A78,color:#fff
    style XFER fill:#005B5B,color:#fff
    style UP fill:#043736,color:#fff
    style REG fill:#9EB277,color:#fff
    style NODES fill:#1F7A78,color:#fff

Step 3: Sync Pack Registry

After all bundles are uploaded:

  1. Log in to Palette System Console at https://10.25.232.155/system
  2. Navigate to Administration --> Pack Registries
  3. Click Sync to trigger a registry synchronization
  4. Wait for the sync to complete

Step 4: Verify Packs

After sync, verify all required packs are available:

  1. In the Palette tenant console, navigate to Profiles --> Create
  2. Confirm each pack from the Pack List appears in the pack selection UI
  3. Verify correct versions are available

Registry Architecture

graph TB
    subgraph PMA["Palette Management Appliance"]
        LUI["Local UI :5080<br/>(Upload endpoint)"]
        STORE["Content Storage<br/>(500GB disk)"]
        REG["Internal Registry<br/>:30003"]
    end

    ZST[".zst Content Bundles"] -->|Upload| LUI
    LUI -->|Extract| STORE
    STORE -->|Serve| REG

    subgraph Cluster["Bare Metal Cluster"]
        N1["Node 1"] -->|Pull| REG
        N2["Node 2"] -->|Pull| REG
        N3["Node 3"] -->|Pull| REG
    end

Edge Host Registry Configuration

Each bare-metal node is configured to pull images from the PMA internal registry. This is set in the user-data during ISO build:

Registry credentials in user-data
stylus:
  registryCredentials:
    domain: "10.25.232.155:30003/spectro-content"
    username: "admin"
    password: "********"
    insecure: false

Production Migration: Harbor

For production deployment beyond the POC, Toyota can migrate to their existing Harbor registry:

Aspect POC (Internal Registry) Production (Harbor)
Registry PMA built-in (:30003) Dedicated Harbor instance
Image source Content bundles (.zst) Artifactory --> Harbor mirror
Scalability Single PMA Multi-node HA Harbor
RBAC Basic Full Harbor project/team RBAC
Scanning None Harbor vulnerability scanning
Integration None Existing CDC pipeline

The migration path is straightforward:

  1. Deploy Harbor instance in the Toyota environment
  2. Mirror images from PMA internal registry to Harbor
  3. Update cluster profiles to point to Harbor endpoint
  4. Reconfigure edge host registryCredentials to use Harbor

POC Recommendation

Use the PMA internal registry for the POC to eliminate the Harbor/Artifactory dependency from the critical path. This was recommended during the 4/22 prep call and confirmed as the approach for the POC deployment.