Files
Maison/samba-api/k8s/deploy.sh
2026-02-10 12:12:11 +01:00

55 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Kubernetes deployment script
set -e
NAMESPACE="samba-api"
IMAGE_TAG=${1:-latest}
echo "Deploying Samba API to Kubernetes..."
# Apply namespace first
echo "Creating namespace..."
kubectl apply -f k8s/namespace.yaml
# Apply RBAC
echo "Applying RBAC configuration..."
kubectl apply -f k8s/rbac.yaml
# Apply ConfigMap and Secrets
echo "Applying configuration..."
kubectl apply -f k8s/configmap.yaml
# Apply Samba DC StatefulSet
echo "Deploying Samba DC..."
kubectl apply -f k8s/samba-dc.yaml
# Wait for Samba DC to be ready
echo "Waiting for Samba DC to be ready..."
kubectl wait --for=condition=Ready pod -l app=samba-dc -n ${NAMESPACE} --timeout=300s
# Apply API deployment
echo "Deploying Samba API..."
kubectl apply -f k8s/deployment.yaml
# Apply services
echo "Applying services..."
kubectl apply -f k8s/service.yaml
# Apply HPA and PDB
echo "Applying autoscaling configuration..."
kubectl apply -f k8s/hpa.yaml
# Wait for deployment to be ready
echo "Waiting for deployment to be ready..."
kubectl wait --for=condition=Available deployment/samba-api -n ${NAMESPACE} --timeout=300s
echo "Deployment completed successfully!"
# Show deployment status
kubectl get all -n ${NAMESPACE}
echo ""
echo "To access the API:"
echo "kubectl port-forward svc/samba-api-service 8000:80 -n ${NAMESPACE}"
echo "Then visit: http://localhost:8000/docs"