This commit is contained in:
2025-12-23 17:41:30 -08:00
parent d6ac68f7d3
commit ff534eb448
18 changed files with 3989 additions and 461 deletions

58
ship.sh Executable file
View File

@@ -0,0 +1,58 @@
#!/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}"