# Kubernetes Deployment Manifests This directory contains Kubernetes manifests for deploying Veza Platform to production. ## Structure ``` k8s/ ├── namespace.yaml # Namespace definition ├── configmap.yaml # Configuration values ├── secrets.yaml.example # Example secrets (DO NOT COMMIT REAL SECRETS) ├── ingress.yaml # Ingress configuration ├── backend-api/ │ ├── deployment.yaml # Backend API deployment │ └── service.yaml # Backend API service ├── frontend/ │ ├── deployment.yaml # Frontend deployment │ └── service.yaml # Frontend service ├── chat-server/ │ ├── deployment.yaml # Chat server deployment │ └── service.yaml # Chat server service └── stream-server/ └── (see veza-stream-server/k8s/production/) ``` ## Prerequisites - Kubernetes cluster 1.24+ - kubectl configured - Docker images built and pushed to registry - Secrets configured (see secrets.yaml.example) ## Deployment Steps ### 1. Create Namespace ```bash kubectl apply -f k8s/namespace.yaml ``` ### 2. Create Secrets ```bash # Copy example and fill in real values cp k8s/secrets.yaml.example k8s/secrets.yaml # Edit secrets.yaml with real values kubectl create secret generic veza-secrets \ --from-env-file=k8s/secrets.yaml \ -n veza-production ``` ### 3. Create ConfigMap ```bash kubectl apply -f k8s/configmap.yaml ``` ### 4. Deploy Services ```bash # Backend API kubectl apply -f k8s/backend-api/ # Frontend kubectl apply -f k8s/frontend/ # Chat Server kubectl apply -f k8s/chat-server/ # Stream Server (if separate) kubectl apply -f veza-stream-server/k8s/production/ ``` ### 5. Create Ingress ```bash kubectl apply -f k8s/ingress.yaml ``` ## Verification ```bash # Check pods kubectl get pods -n veza-production # Check services kubectl get svc -n veza-production # Check ingress kubectl get ingress -n veza-production # View logs kubectl logs -f deployment/veza-backend-api -n veza-production ``` ## Scaling ```bash # Scale backend API kubectl scale deployment veza-backend-api --replicas=5 -n veza-production # Scale frontend kubectl scale deployment veza-frontend --replicas=3 -n veza-production ``` ## Updates ```bash # Update image kubectl set image deployment/veza-backend-api \ backend-api=veza-backend-api:v1.1.0 \ -n veza-production # Rollout status kubectl rollout status deployment/veza-backend-api -n veza-production ``` ## Troubleshooting ```bash # Describe pod kubectl describe pod -n veza-production # Get events kubectl get events -n veza-production --sort-by='.lastTimestamp' # Port forward for debugging kubectl port-forward deployment/veza-backend-api 8080:8080 -n veza-production ```