apiVersion: apps/v1 kind: Deployment metadata: name: loomio spec: replicas: 1 selector: matchLabels: component: web template: metadata: labels: component: web spec: containers: - name: loomio image: {{ .image }} command: - /bin/bash - -c - | set -e bundle exec rake db:schema:load db:seed bundle exec thrust puma -C config/puma.rb ports: - containerPort: 3000 name: http env: - name: RAILS_ENV value: production - name: SITE_NAME value: {{ .appName }} - name: CANONICAL_HOST value: {{ .domain }} - name: PUBLIC_APP_URL value: https://{{ .domain }} - name: SUPPORT_EMAIL value: {{ .supportEmail }} - name: DATABASE_URL valueFrom: secretKeyRef: name: loomio-secrets key: dbUrl - name: REDIS_URL value: {{ .redisUrl }} - name: DEVISE_SECRET valueFrom: secretKeyRef: name: loomio-secrets key: deviseSecret - name: SECRET_COOKIE_TOKEN valueFrom: secretKeyRef: name: loomio-secrets key: secretCookieToken - name: FORCE_SSL value: "{{ .forceSSL }}" - name: USE_RACK_ATTACK value: "{{ .useRackAttack }}" - name: PUMA_WORKERS value: "{{ .pumaWorkers }}" - name: MIN_THREADS value: "{{ .minThreads }}" - name: MAX_THREADS value: "{{ .maxThreads }}" - name: ACTIVE_STORAGE_SERVICE value: {{ .activeStorageService }} - name: SMTP_AUTH value: {{ .smtp.auth }} - name: SMTP_DOMAIN value: {{ .smtp.domain }} - name: SMTP_SERVER value: {{ .smtp.host }} - name: SMTP_PORT value: "{{ .smtp.port }}" - name: SMTP_USERNAME value: {{ .smtp.user }} - name: SMTP_PASSWORD valueFrom: secretKeyRef: name: loomio-secrets key: smtpPassword - name: REPLY_HOSTNAME value: {{ .smtp.from }} - name: CHANNELS_URI value: wss://{{ .domain }} - name: BUNDLE_APP_CONFIG value: /loomio/tmp/.bundle volumeMounts: - name: uploads mountPath: /loomio/public/system - name: storage mountPath: /loomio/storage - name: tmp mountPath: /loomio/tmp - name: log mountPath: /loomio/log resources: requests: memory: 512Mi cpu: 200m limits: memory: 2Gi cpu: 1000m livenessProbe: tcpSocket: port: 3000 initialDelaySeconds: 60 periodSeconds: 30 readinessProbe: tcpSocket: port: 3000 initialDelaySeconds: 30 periodSeconds: 10 securityContext: runAsNonRoot: false runAsUser: 0 allowPrivilegeEscalation: false capabilities: drop: [ALL] readOnlyRootFilesystem: false seccompProfile: type: RuntimeDefault volumes: - name: uploads persistentVolumeClaim: claimName: loomio-uploads - name: storage persistentVolumeClaim: claimName: loomio-storage - name: tmp emptyDir: {} - name: log emptyDir: {}