apiVersion: apps/v1 kind: Deployment metadata: name: buzz-sheet labels: app.kubernetes.io/name: buzz-sheet app.kubernetes.io/component: web spec: replicas: 2 revisionHistoryLimit: 3 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0 selector: matchLabels: app.kubernetes.io/name: buzz-sheet app.kubernetes.io/component: web template: metadata: labels: app.kubernetes.io/name: buzz-sheet app.kubernetes.io/component: web spec: automountServiceAccountToken: false terminationGracePeriodSeconds: 30 nodeSelector: kubernetes.io/arch: arm64 securityContext: runAsNonRoot: true runAsUser: 1000 runAsGroup: 1000 fsGroup: 1000 fsGroupChangePolicy: OnRootMismatch seccompProfile: type: RuntimeDefault containers: - name: app image: buzz-sheet-app imagePullPolicy: IfNotPresent ports: - name: http containerPort: 3000 protocol: TCP envFrom: - configMapRef: name: buzz-sheet-config env: - name: DATABASE_URL valueFrom: secretKeyRef: name: buzz-sheet-env key: DATABASE_URL - name: REDIS_URL valueFrom: secretKeyRef: name: buzz-sheet-env key: REDIS_URL - name: S3_ENDPOINT valueFrom: secretKeyRef: name: buzz-sheet-env key: S3_ENDPOINT - name: S3_PUBLIC_URL valueFrom: secretKeyRef: name: buzz-sheet-env key: S3_PUBLIC_URL - name: S3_BUCKET valueFrom: secretKeyRef: name: buzz-sheet-env key: S3_BUCKET - name: S3_ACCESS_KEY_ID valueFrom: secretKeyRef: name: buzz-sheet-env key: S3_ACCESS_KEY_ID - name: S3_SECRET_ACCESS_KEY valueFrom: secretKeyRef: name: buzz-sheet-env key: S3_SECRET_ACCESS_KEY - name: BETTER_AUTH_SECRET valueFrom: secretKeyRef: name: buzz-sheet-env key: BETTER_AUTH_SECRET - name: TURNSTILE_SITE_KEY valueFrom: secretKeyRef: name: buzz-sheet-env key: TURNSTILE_SITE_KEY - name: TURNSTILE_SECRET_KEY valueFrom: secretKeyRef: name: buzz-sheet-env key: TURNSTILE_SECRET_KEY - name: NEXT_SERVER_ACTIONS_ENCRYPTION_KEY valueFrom: secretKeyRef: name: buzz-sheet-env key: NEXT_SERVER_ACTIONS_ENCRYPTION_KEY - name: NEXT_DEPLOYMENT_ID valueFrom: configMapKeyRef: name: buzz-sheet-config key: NEXT_DEPLOYMENT_ID - name: DEPLOYMENT_WEBHOOK_SECRET valueFrom: secretKeyRef: name: buzz-sheet-env key: DEPLOYMENT_WEBHOOK_SECRET optional: true resources: requests: cpu: 500m memory: 1Gi limits: cpu: "1" memory: 2Gi startupProbe: httpGet: path: /api/health port: http failureThreshold: 30 periodSeconds: 2 readinessProbe: httpGet: path: /api/health?ready=1 port: http failureThreshold: 3 periodSeconds: 10 timeoutSeconds: 4 livenessProbe: httpGet: path: /api/health port: http failureThreshold: 3 periodSeconds: 20 timeoutSeconds: 3 securityContext: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] readOnlyRootFilesystem: true volumeMounts: - name: next-cache mountPath: /app/.next/cache - name: temporary mountPath: /tmp volumes: - name: next-cache emptyDir: {} - name: temporary emptyDir: {}