|
|
@echo off |
|
|
|
|
|
|
|
|
|
|
|
setlocal |
|
|
|
|
|
set SCRIPT_DIR=%~dp0 |
|
|
set PROJECT_ROOT=%SCRIPT_DIR%.. |
|
|
set K8S_DIR=%PROJECT_ROOT%\infra\k8s |
|
|
|
|
|
echo ========================================= |
|
|
echo Phase IV - Deploying to Kubernetes |
|
|
echo ========================================= |
|
|
|
|
|
|
|
|
where kubectl >nul 2>nul |
|
|
if %ERRORLEVEL% neq 0 ( |
|
|
echo Error: kubectl not found. Please install kubectl first. |
|
|
echo See: phase-4\docs\INSTALL-WINDOWS.md |
|
|
pause |
|
|
exit /b 1 |
|
|
) |
|
|
|
|
|
|
|
|
echo. |
|
|
echo Checking cluster connection... |
|
|
kubectl cluster-info >nul 2>nul |
|
|
if %ERRORLEVEL% neq 0 ( |
|
|
echo Error: Cannot connect to Kubernetes cluster. |
|
|
echo Please ensure your cluster is running and kubeconfig is configured. |
|
|
pause |
|
|
exit /b 1 |
|
|
) |
|
|
|
|
|
echo Cluster connected successfully. |
|
|
|
|
|
|
|
|
echo. |
|
|
echo Creating namespace... |
|
|
kubectl apply -f "%K8S_DIR%\namespace.yaml" |
|
|
|
|
|
|
|
|
echo. |
|
|
echo Deploying PostgreSQL... |
|
|
kubectl apply -f "%K8S_DIR%\00-postgres.yaml" |
|
|
|
|
|
echo. |
|
|
echo Deploying Ollama... |
|
|
timeout /t 5 /nobreak >nul |
|
|
kubectl apply -f "%K8S_DIR%\01-ollama.yaml" |
|
|
|
|
|
echo. |
|
|
echo Deploying Backend... |
|
|
timeout /t 5 /nobreak >nul |
|
|
kubectl apply -f "%K8S_DIR%\02-backend.yaml" |
|
|
|
|
|
echo. |
|
|
echo Deploying Chatbot... |
|
|
timeout /t 5 /nobreak >nul |
|
|
kubectl apply -f "%K8S_DIR%\03-chatbot.yaml" |
|
|
|
|
|
echo. |
|
|
echo Deploying Frontend... |
|
|
timeout /t 5 /nobreak >nul |
|
|
kubectl apply -f "%K8S_DIR%\04-frontend.yaml" |
|
|
|
|
|
echo. |
|
|
echo ========================================= |
|
|
echo Deployment Complete! |
|
|
echo. |
|
|
echo Services: |
|
|
kubectl get svc -n todo-app |
|
|
echo. |
|
|
echo Pods: |
|
|
kubectl get pods -n todo-app |
|
|
echo. |
|
|
echo ========================================= |
|
|
echo To access the application: |
|
|
echo 1. For local development, use port-forward: |
|
|
echo kubectl port-forward -n todo-app svc/frontend-service 3000:3000 |
|
|
echo. |
|
|
echo 2. For production, configure an Ingress controller |
|
|
echo ========================================= |
|
|
|
|
|
pause |
|
|
|