fix: use OCI archive workflow instead of registry — scp + ctr import on each node

This commit is contained in:
Falkan
2026-03-19 01:33:47 -04:00
parent 8e739f4077
commit cffaaea26d
3 changed files with 18 additions and 85 deletions

View File

@@ -1,13 +1,14 @@
#!/usr/bin/env bash
# build-push.sh — build and push humor-units image to the in-cluster registry
# build-push.sh — build humor-units image and import it into containerd on each node
# Usage: ./build-push.sh [tag]
# Requires: buildah, kubectl
# Requires: buildah, ssh access to nodes, ctr on nodes
set -euo pipefail
TAG="${1:-latest}"
# Use a node IP:NodePort — resolvable from both dev machine and cluster nodes
REGISTRY="${REGISTRY:-<NODE_IP>:30500}"
IMAGE="$REGISTRY/humor-units:$TAG"
IMAGE="humor-units:$TAG"
ARCHIVE="/tmp/humor-units.tar"
# Space-separated list of node SSH targets
NODES="${NODES:-node1 node2}"
echo "==> Building $IMAGE..."
buildah build \
@@ -15,8 +16,16 @@ buildah build \
--tag "$IMAGE" \
"$(dirname "$0")"
echo "==> Pushing $IMAGE..."
buildah push --tls-verify=false "$IMAGE"
echo "==> Exporting to OCI archive $ARCHIVE..."
buildah push "$IMAGE" "oci-archive:${ARCHIVE}:${IMAGE}"
for NODE in $NODES; do
echo "==> Copying to $NODE..."
scp "$ARCHIVE" "$NODE:/tmp/humor-units.tar"
echo "==> Importing on $NODE..."
ssh "$NODE" "ctr -n k8s.io images import /tmp/humor-units.tar && rm /tmp/humor-units.tar"
done
echo "==> Restarting humor-units deployment..."
kubectl rollout restart deployment/humor-units -n default