55 lines
1.3 KiB
Bash
Executable File
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" |