apiVersion: apps/v1 kind: Deployment metadata: name: ohmyform-api namespace: {{ .namespace }} spec: replicas: 1 strategy: type: Recreate selector: matchLabels: component: api template: metadata: labels: component: api spec: securityContext: runAsNonRoot: true runAsUser: 9999 runAsGroup: 9999 seccompProfile: type: RuntimeDefault containers: - name: api image: ohmyform/api:1.0.3 ports: - name: http containerPort: 3000 protocol: TCP env: - name: PORT value: "3000" - name: DATABASE_DRIVER value: postgres - name: DATABASE_URL valueFrom: secretKeyRef: name: ohmyform-secrets key: dbUrl - name: SECRET_KEY valueFrom: secretKeyRef: name: ohmyform-secrets key: secretKey - name: REDIS_URL value: "redis://:$(REDIS_PASSWORD)@{{ .redis.host }}:6379" - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: ohmyform-secrets key: redis.password - name: CREATE_ADMIN value: "TRUE" - name: ADMIN_EMAIL value: "{{ .adminEmail }}" - name: ADMIN_USERNAME value: admin - name: ADMIN_PASSWORD valueFrom: secretKeyRef: name: ohmyform-secrets key: adminPassword resources: limits: cpu: "500m" memory: 512Mi ephemeral-storage: 1Gi requests: cpu: 50m memory: 128Mi ephemeral-storage: 50Mi livenessProbe: httpGet: path: /_health port: 3000 initialDelaySeconds: 60 timeoutSeconds: 5 periodSeconds: 15 failureThreshold: 6 readinessProbe: httpGet: path: /_health port: 3000 initialDelaySeconds: 30 timeoutSeconds: 3 periodSeconds: 10 failureThreshold: 3 securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: false restartPolicy: Always