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.