kURL: Pods cannot pull images from the kURL registry despite pushing images from the airgap bundle.

Amanda Jennewein
Amanda Jennewein
  • Updated

Author: Amanda Jennewein

Updated: June 2024

Audience: Self-hosted Airgap Replicated - KOTS


In an air-gapped installation, the kURL registry stores the application images. The registry add-on can remove unused images, and KOTS triggers this functionality in specific scenarios.

For example, when upgrading to an application version that does not use specific images anymore, those images will be removed from the registry if:
1- The application does not support rollbacks.
2- The images are not listed in the additionalImages section of the KOTS application spec.
3- The garbage collection for images was not manually disabled.

There is a known bug in the registry add-on where if an image is garbage collected, it can no longer be used even if it is pushed again.


1- Restart the registry pods:

kubectl rollout restart deploy/registry -n kurl

2- Re-push the image(s) from the airgap bundle using the CLI:

kubectl kots admin-console push-images \
  </path/to/bundle.airgap> \
  $(kubectl get svc registry -n kurl -o jsonpath='{.spec.clusterIP}')/<app-slug> \
  --registry-username kurl \
  --registry-password $(kubectl get secret registry-creds -o=jsonpath='{.data.\.dockerconfigjson}' | base64 -d | grep -Po '"password"\s*:\s*"\K[^"]+')

Replace </path/to/bundle.airgap> with the path to the airgap bundle.
Replace <app-slug> with the application slug.


Now, to prevent the issue from happening in the future, you can do one of the following:

Replicated Documentation

kURL - pods fail to pull images from the kURL registry even though images were pushed from the airgap bundle

Please feel free to leave feedback in the comments below.

Related to

Was this article helpful?

0 out of 0 found this helpful

Have more questions? Submit a request



Article is closed for comments.