apiVersion: v1 kind: Service metadata: name: wrestlingdev-app labels: app: wrestlingdev spec: ports: - port: 80 selector: app: wrestlingdev tier: frontend clusterIP: None --- apiVersion: apps/v1 kind: Deployment metadata: name: wrestlingdev-app-deployment labels: app: wrestlingdev spec: replicas: 2 selector: matchLabels: app: wrestlingdev template: metadata: labels: app: wrestlingdev tier: frontend spec: containers: - name: wrestlingdev-app image: jcwimer/wrestlingdev:prod imagePullPolicy: Always command: ["bundle"] args: ["exec", "passenger", "start", "-p", "80", "--max-pool-size", "3","--environment", "production"] ports: - containerPort: 80 env: - name: RAILS_ENV value: production - name: WRESTLINGDEV_DB_NAME value: wrestlingdev - name: WRESTLINGDEV_DB_USR valueFrom: secretKeyRef: name: wrestlingdev-secrets key: dbusername - name: WRESTLINGDEV_DB_PWD valueFrom: secretKeyRef: name: wrestlingdev-secrets key: dbpassword - name: WRESTLINGDEV_DB_PORT value: "3306" - name: MEMCACHIER_SERVERS value: wrestlingdev-memcached:11211 - name: WRESTLINGDEV_DB_HOST valueFrom: secretKeyRef: name: wrestlingdev-secrets key: dbhost - name: WRESTLINGDEV_DEVISE_SECRET_KEY valueFrom: secretKeyRef: name: wrestlingdev-secrets key: devisesecretkey - name: WRESTLINGDEV_SECRET_KEY_BASE valueFrom: secretKeyRef: name: wrestlingdev-secrets key: railssecretkey - name: WRESTLINGDEV_EMAIL_PWD valueFrom: secretKeyRef: name: wrestlingdev-secrets key: gmailpassword - name: WRESTLINGDEV_EMAIL valueFrom: secretKeyRef: name: wrestlingdev-secrets key: gmailemail resources: limits: cpu: "0.5" memory: "768Mi" requests: memory: "300Mi" cpu: "0.3" livenessProbe: httpGet: path: / port: 80 initialDelaySeconds: 180 periodSeconds: 20 timeoutSeconds: 10 --- apiVersion: autoscaling/v2beta1 kind: HorizontalPodAutoscaler metadata: name: wrestlingdev-app-deployment-autoscale spec: scaleTargetRef: apiVersion: extensions/v1beta1 kind: Deployment name: wrestlingdev-app-deployment minReplicas: 2 maxReplicas: 5 metrics: - type: Resource resource: name: cpu targetAverageUtilization: 75 # - type: Resource # resource: # name: memory # targetAverageValue: 100Mi --- apiVersion: apps/v1 kind: Deployment metadata: name: wrestlingdev-worker-deployment labels: app: wrestlingdev spec: replicas: 1 selector: matchLabels: app: wrestlingdev template: metadata: labels: app: wrestlingdev tier: worker spec: containers: - name: wrestlingdev-worker image: jcwimer/wrestlingdev:prod imagePullPolicy: Always env: - name: RAILS_ENV value: production - name: WRESTLINGDEV_DB_NAME value: wrestlingdev - name: WRESTLINGDEV_DB_USR valueFrom: secretKeyRef: name: wrestlingdev-secrets key: dbusername - name: WRESTLINGDEV_DB_PWD valueFrom: secretKeyRef: name: wrestlingdev-secrets key: dbpassword - name: WRESTLINGDEV_DB_PORT value: "3306" - name: MEMCACHIER_SERVERS value: wrestlingdev-memcached:11211 - name: WRESTLINGDEV_DB_HOST valueFrom: secretKeyRef: name: wrestlingdev-secrets key: dbhost - name: WRESTLINGDEV_DEVISE_SECRET_KEY valueFrom: secretKeyRef: name: wrestlingdev-secrets key: devisesecretkey - name: WRESTLINGDEV_SECRET_KEY_BASE valueFrom: secretKeyRef: name: wrestlingdev-secrets key: railssecretkey - name: WRESTLINGDEV_SECRET_KEY_BASE valueFrom: secretKeyRef: name: wrestlingdev-secrets key: railssecretkey - name: WRESTLINGDEV_EMAIL_PWD valueFrom: secretKeyRef: name: wrestlingdev-secrets key: gmailpassword - name: WRESTLINGDEV_EMAIL valueFrom: secretKeyRef: name: wrestlingdev-secrets key: gmailemail command: ["bundle"] args: ["exec", "bin/delayed_job", "-n", "1", "run"] resources: limits: cpu: "0.5" memory: "512Mi" requests: memory: "200Mi" cpu: "0.2"