apiVersion: apps/v1 kind: Deployment metadata: name: trading-dashboard namespace: customer1 labels: app: trading-dashboard spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: trading-dashboard template: metadata: labels: app: trading-dashboard annotations: checksum/config: trading-dashboard-config spec: terminationGracePeriodSeconds: 30 securityContext: runAsNonRoot: true runAsUser: 1000 fsGroup: 1000 containers: - name: dashboard image: ghcr.io/sirius0xdev/trading-dashboard:latest imagePullPolicy: Always ports: - containerPort: 8000 name: http resources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 512Mi securityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities: drop: - ALL envFrom: - configMapRef: name: trading-dashboard-config env: - name: DB_USER valueFrom: secretKeyRef: name: trading-db-credentials key: username - name: DB_PASSWORD valueFrom: secretKeyRef: name: trading-db-credentials key: password startupProbe: httpGet: path: /api/health port: 8000 initialDelaySeconds: 15 periodSeconds: 5 failureThreshold: 6 livenessProbe: httpGet: path: /api/health port: 8000 initialDelaySeconds: 30 periodSeconds: 30 readinessProbe: httpGet: path: /api/health port: 8000 initialDelaySeconds: 5 periodSeconds: 10