#!/bin/bash set -e REGISTRY="harbor.scottyah.com/secure" IMAGE_NAME="awards" TAG="${1:-latest}" echo "Building Docker image..." docker build -t "${REGISTRY}/${IMAGE_NAME}:${TAG}" . echo "Pushing image to registry..." docker push "${REGISTRY}/${IMAGE_NAME}:${TAG}" echo "Creating secrets from .env.local..." if [ -f .env.local ]; then # Create temporary directory for secret files SECRET_TMPDIR=$(mktemp -d) trap "rm -rf $SECRET_TMPDIR" EXIT # Extract variables from .env.local into files HAS_SECRET_VARS=false while IFS= read -r line || [ -n "$line" ]; do # Skip comments and empty lines [[ "$line" =~ ^#.*$ ]] && continue [[ -z "$line" ]] && continue # Extract ADMIN_USERNAME if [[ "$line" =~ ^ADMIN_USERNAME=(.*)$ ]]; then echo -n "${BASH_REMATCH[1]}" > "$SECRET_TMPDIR/admin-username" HAS_SECRET_VARS=true fi # Extract ADMIN_PASSWORD_HASH if [[ "$line" =~ ^ADMIN_PASSWORD_HASH=(.*)$ ]]; then echo -n "${BASH_REMATCH[1]}" > "$SECRET_TMPDIR/admin-password-hash" HAS_SECRET_VARS=true fi done < .env.local if [ "$HAS_SECRET_VARS" = true ]; then kubectl delete secret awards-secret -n awards --ignore-not-found kubectl create secret generic awards-secret -n awards --from-file="$SECRET_TMPDIR" echo "Awards secret created from .env.local" else echo "No secret variables found in .env.local" fi else echo "No .env.local file found, skipping secret creation" fi echo "Applying Kubernetes configuration..." kubectl apply -f k8s.yaml echo "Restarting deployment..." kubectl rollout restart deployment/awards-dep -n awards echo "Deployment complete!" echo "Image: ${REGISTRY}/${IMAGE_NAME}:${TAG}"