67 lines
1.7 KiB
Bash
Executable File
67 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Local deployment script for OpenShift
|
|
# Usage: ./deploy-local.sh [IMAGE_TAG]
|
|
|
|
set -e
|
|
|
|
# Configuration
|
|
IMAGE_NAME="resource-governance"
|
|
REGISTRY="andersonid"
|
|
NAMESPACE="resource-governance"
|
|
TAG=${1:-"latest"}
|
|
|
|
echo "Local Deploy to OpenShift"
|
|
echo "========================="
|
|
echo "Image: $REGISTRY/$IMAGE_NAME:$TAG"
|
|
echo "Namespace: $NAMESPACE"
|
|
echo ""
|
|
|
|
# Check if logged into OpenShift
|
|
if ! oc whoami > /dev/null 2>&1; then
|
|
echo "ERROR: Not logged into OpenShift. Run: oc login"
|
|
exit 1
|
|
fi
|
|
|
|
echo "SUCCESS: Logged into OpenShift as: $(oc whoami)"
|
|
echo ""
|
|
|
|
# Apply manifests
|
|
echo "Applying manifests..."
|
|
oc apply -f k8s/namespace.yaml
|
|
oc apply -f k8s/rbac.yaml
|
|
oc apply -f k8s/configmap.yaml
|
|
|
|
# Update deployment image
|
|
echo "Updating deployment image..."
|
|
oc set image deployment/$IMAGE_NAME $IMAGE_NAME=$REGISTRY/$IMAGE_NAME:$TAG -n $NAMESPACE || true
|
|
|
|
# Apply deployment, service and route
|
|
echo "Applying deployment, service and route..."
|
|
oc apply -f k8s/deployment.yaml
|
|
oc apply -f k8s/service.yaml
|
|
oc apply -f k8s/route.yaml
|
|
|
|
# Wait for rollout
|
|
echo "Waiting for rollout..."
|
|
oc rollout status deployment/$IMAGE_NAME -n $NAMESPACE --timeout=300s
|
|
|
|
# Verify deployment
|
|
echo "Verifying deployment..."
|
|
oc get deployment $IMAGE_NAME -n $NAMESPACE
|
|
oc get pods -n $NAMESPACE -l app.kubernetes.io/name=$IMAGE_NAME
|
|
|
|
# Get route URL
|
|
ROUTE_URL=$(oc get route $IMAGE_NAME-route -n $NAMESPACE -o jsonpath='{.spec.host}' 2>/dev/null || echo "")
|
|
if [ -n "$ROUTE_URL" ]; then
|
|
echo ""
|
|
echo "Application deployed successfully!"
|
|
echo "URL: https://$ROUTE_URL"
|
|
echo "Status: oc get pods -n $NAMESPACE -l app.kubernetes.io/name=$IMAGE_NAME"
|
|
else
|
|
echo "WARNING: Route not found. Check: oc get routes -n $NAMESPACE"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Deploy completed!"
|