59 lines
1.7 KiB
Bash
Executable File
59 lines
1.7 KiB
Bash
Executable File
#!/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}"
|