apiVersion: apps/v1 kind: Deployment metadata: name: veza-frontend namespace: veza-production labels: app: veza-frontend component: web version: v1.0.0 spec: replicas: 3 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0 selector: matchLabels: app: veza-frontend template: metadata: labels: app: veza-frontend version: v1.0.0 spec: containers: - name: frontend image: veza-frontend:latest imagePullPolicy: Always ports: - name: http containerPort: 80 protocol: TCP env: - name: VITE_API_URL valueFrom: configMapKeyRef: name: veza-config key: api-url resources: requests: cpu: "100m" memory: "128Mi" limits: cpu: "500m" memory: "256Mi" readinessProbe: httpGet: path: /health port: 80 scheme: HTTP initialDelaySeconds: 5 periodSeconds: 5 timeoutSeconds: 3 successThreshold: 1 failureThreshold: 3 livenessProbe: httpGet: path: /health port: 80 scheme: HTTP initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 5 successThreshold: 1 failureThreshold: 3 terminationGracePeriodSeconds: 30