nxtgauge-gitops/scripts/sync-base-images.sh
Ashwin Kumar Sivakumar cbc7fb42e6 fix: restore all services after registry wipe
- Fix PostgreSQL endpoints (now auto-creating correctly)
- Fix Forgejo DB connection
- Update retention to keep 10 SHA tags (was 2, too aggressive)
- Update all deployments to use available tags
- Add missing base images to registry (alpine, node, rust, python)
- Protect base images from retention deletion
2026-06-13 00:25:51 +05:30

70 lines
1.9 KiB
Bash
Executable file

#!/bin/bash
# Script to sync base images to registry.nxtgauge.com
# Run this on one of the cluster nodes that has Docker access
REGISTRY="registry.nxtgauge.com"
REGISTRY_USER="admin"
echo "=================================="
echo "Syncing base images to $REGISTRY"
echo "=================================="
# Get registry password from secret
REGISTRY_PASS=$(kubectl get secret -n registry registry-auth -o jsonpath='{.data.htpasswd}' | base64 -d | cut -d':' -f2)
# Login to registry
echo "Logging into registry..."
echo "$REGISTRY_PASS" | docker login $REGISTRY -u $REGISTRY_USER --password-stdin 2>/dev/null || {
echo "Failed to login to registry. Make sure you're running this on a node with kubectl access."
exit 1
}
# Base images required by the project Dockerfiles
images=(
"node:20-alpine"
"rust:alpine"
"alpine:3.20"
"alpine:latest"
"python:3.12-slim"
"docker:27-dind"
"busybox:1.36"
)
for image in "${images[@]}"; do
echo ""
echo "Processing $image..."
# Pull from Docker Hub
echo " Pulling docker.io/$image..."
if docker pull docker.io/library/$image 2>/dev/null; then
SOURCE="docker.io/library/$image"
elif docker pull docker.io/$image 2>/dev/null; then
SOURCE="docker.io/$image"
else
echo " ERROR: Failed to pull $image"
continue
fi
# Tag for registry
TARGET="$REGISTRY/$image"
echo " Tagging as $TARGET..."
docker tag $SOURCE $TARGET
# Push to registry
echo " Pushing to $REGISTRY..."
if docker push $TARGET; then
echo " SUCCESS: $image synced"
else
echo " ERROR: Failed to push $image"
fi
done
echo ""
echo "=================================="
echo "Base image sync complete!"
echo "=================================="
echo ""
echo "Synced images:"
for image in "${images[@]}"; do
echo " - $REGISTRY/$image"
done