View saved images in an airgap bundle

GerardNguyen
Tue, 13 May 2025 07:02:26 +0000
How do I?

If you have an airgap bundle and need to inspect the container images without extracting the entire bundle, you can use the following commands.

Prerequisites

tar CLI installed

Inspecting Images in an Airgap Bundle

Standard KOTS/kURL Airgap Bundle

tar -Oxzf <path-to-your-bundle>.airgap "airgap.yaml"

Sample output

apiVersion: kots.io/v1beta1
kind: Airgap
metadata:
  creationTimestamp: null
spec:
  appSlug: <app-slug>
  channelID: <channel-id>
  channelName: Stable
  format: docker
  replicatedChartNames:
  - replicated
  - replicated-sdk
  savedImages:
  - quay.io/jetstack/cert-manager-cainjector:v1.17.0
  - quay.io/jetstack/cert-manager-webhook:v1.17.0
  - minio/minio
  - registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.4
  - docker.io/nicholasjackson/fake-service:v0.26.2
  - curlimages/curl:latest
  - quay.io/jetstack/cert-manager-startupapicheck:v1.17.0
  - quay.io/jetstack/cert-manager-controller:v1.17.0
  - alpine
  - docker.io/replicated/replicated-sdk:1.0.0-beta.31
  - registry.k8s.io/ingress-nginx/controller:v1.11.3
  signature: <signature>
  updateCursor: "33"
  versionLabel: v3.0.0
status: {}

Embedded Cluster Airgap Bundle

tar -Oxzf <path-to-your-bundle>.airgap "airgap.yaml"

Sample output

apiVersion: kots.io/v1beta1
kind: Airgap
metadata:
  creationTimestamp: null
spec:
  appSlug: <app-slug>
  channelID: <channel-id>
  channelName: Stable
  embeddedClusterArtifacts:
    additionalArtifacts:
      kots: embedded-cluster/artifacts/kots.tar.gz
      operator: embedded-cluster/artifacts/operator.tar.gz
    binaryAmd64: embedded-cluster/embedded-cluster-amd64
    charts: embedded-cluster/charts.tar.gz
    imagesAmd64: embedded-cluster/images-amd64.tar
    metadata: embedded-cluster/version-metadata.json
    registry:
      dir: embedded-cluster/registry
      savedImages:
      - proxy.replicated.com/anonymous/replicated/embedded-cluster-local-artifact-mirror:v2.0.0-k8s-1.30@sha256:119ff38bce6f4b8907a054503ea9c0888c9d12d027ba28eae57f87d4abedaeb5
  format: docker
  replicatedChartNames:
  - replicated
  - replicated-sdk
  savedImages:
  - alpine
  - docker.io/replicated/replicated-sdk:1.0.0-beta.31
  - registry.k8s.io/ingress-nginx/controller:v1.11.3
  - quay.io/jetstack/cert-manager-controller:v1.17.0
  - curlimages/curl:latest
  - quay.io/jetstack/cert-manager-startupapicheck:v1.17.0
  - quay.io/jetstack/cert-manager-cainjector:v1.17.0
  - quay.io/jetstack/cert-manager-webhook:v1.17.0
  - minio/minio
  - registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.4
  - docker.io/nicholasjackson/fake-service:v0.26.2
  signature: <signature>
  updateCursor: "33"
  versionLabel: v3.0.0
status: {}

Understanding the Output

The output shows:

Application metadata (appSlug, channelID, versionLabel)

All container images included in the bundle under savedImages

For embedded clusters, additional artifacts and images under embeddedClusterArtifacts

This command is useful for verifying the contents of an airgap bundle before deployment or for troubleshooting image-related issues in air-gapped environments.

1 post - 1 participant