/ manifests / base / paddock / deployment.yaml
deployment.yaml
  1  apiVersion: apps/v1
  2  kind: Deployment
  3  metadata:
  4    labels:
  5      app.kubernetes.io/component: paddock
  6    name: paddock
  7    annotations:
  8      image.openshift.io/triggers: '[{"from":{"kind":"ImageStreamTag","name":"paddock:latest"},"fieldPath":"spec.template.spec.containers[?(@.name==\"paddock\")].image"},{"from":{"kind":"ImageStreamTag","name":"paddock:latest"},"fieldPath":"spec.template.spec.containers[?(@.name==\"pitcrew\")].image"},{"from":{"kind":"ImageStreamTag","name":"paddock:latest"},"fieldPath":"spec.template.spec.containers[?(@.name==\"migrate\")].image"}]'
  9  spec:
 10    replicas: 1
 11    revisionHistoryLimit: 2
 12    selector:
 13      matchLabels:
 14        app.kubernetes.io/component: paddock
 15    template:
 16      metadata:
 17        annotations:
 18          alpha.image.policy.openshift.io/resolve-names: '*'
 19        labels:
 20          app.kubernetes.io/component: paddock
 21        name: paddock
 22      spec:
 23        containers:
 24          - env:
 25              - name: DB_HOST
 26                valueFrom:
 27                  secretKeyRef:
 28                    name: postgresql-app
 29                    key: host
 30              - name: DB_PORT
 31                valueFrom:
 32                  secretKeyRef:
 33                    name: postgresql-app
 34                    key: port
 35              - name: DB_USER
 36                valueFrom:
 37                  secretKeyRef:
 38                    name: postgresql-app
 39                    key: user
 40              - name: DB_PASSWORD
 41                valueFrom:
 42                  secretKeyRef:
 43                    name: postgresql-app
 44                    key: password
 45              - name: DB_NAME
 46                valueFrom:
 47                  secretKeyRef:
 48                    name: postgresql-app
 49                    key: dbname
 50              - name: PADDOCK_POD_IP
 51                valueFrom:
 52                  fieldRef:
 53                    apiVersion: v1
 54                    fieldPath: status.podIP
 55            envFrom:
 56              - secretRef:
 57                  name: paddock-settings
 58              - secretRef:
 59                  name: paddock-socialaccounts
 60            image: paddock:latest
 61            imagePullPolicy: Always
 62            name: paddock
 63            command: ["/bin/sh", "-c"]
 64            args:
 65              - python /opt/app-root/src/manage.py collectstatic -i "*.py" -i "*.pyc" --noinput --link;
 66                uwsgi --http "0.0.0.0:8000" --module paddock.wsgi:application --master --processes 4 --threads 2 --static-map /static=/opt/app-root/src/static
 67            ports:
 68              - containerPort: 8000
 69                name: django-http
 70                protocol: TCP
 71            resources:
 72              limits:
 73                cpu: "1"
 74                memory: 1Gi
 75              requests:
 76                cpu: 0
 77                memory: 0
 78            terminationMessagePath: /dev/termination-log
 79            terminationMessagePolicy: File
 80            volumeMounts:
 81              - name: django-metrics-dir
 82                mountPath: /tmp/django-metrics
 83          - env:
 84              - name: DB_HOST
 85                valueFrom:
 86                  secretKeyRef:
 87                    name: postgresql-app
 88                    key: host
 89              - name: DB_PORT
 90                valueFrom:
 91                  secretKeyRef:
 92                    name: postgresql-app
 93                    key: port
 94              - name: DB_USER
 95                valueFrom:
 96                  secretKeyRef:
 97                    name: postgresql-app
 98                    key: user
 99              - name: DB_PASSWORD
100                valueFrom:
101                  secretKeyRef:
102                    name: postgresql-app
103                    key: password
104              - name: DB_NAME
105                valueFrom:
106                  secretKeyRef:
107                    name: postgresql-app
108                    key: dbname
109            envFrom:
110              - secretRef:
111                  name: paddock-settings
112            image: paddock:latest
113            imagePullPolicy: Always
114            name: pitcrew
115            command: ["/bin/sh", "-c"]
116            args:
117              - python /opt/app-root/src/manage.py pitcrew
118            resources:
119              limits:
120                cpu: "1"
121                memory: 1Gi
122              requests:
123                cpu: 0
124                memory: 0
125            terminationMessagePath: /dev/termination-log
126            terminationMessagePolicy: File
127            livenessProbe:
128              failureThreshold: 3
129              httpGet:
130                path: /healthz/live
131                port: 8080
132                scheme: HTTP
133              initialDelaySeconds: 5
134              periodSeconds: 10
135              successThreshold: 1
136              timeoutSeconds: 1
137            readinessProbe:
138              failureThreshold: 3
139              httpGet:
140                path: /healthz/ready
141                port: 8080
142                scheme: HTTP
143              initialDelaySeconds: 5
144              periodSeconds: 10
145              successThreshold: 1
146              timeoutSeconds: 1
147        serviceAccount: paddock
148        serviceAccountName: paddock
149        initContainers:
150          - name: migrate
151            image: paddock:latest
152            imagePullPolicy: Always
153            env:
154              - name: DB_HOST
155                valueFrom:
156                  secretKeyRef:
157                    name: postgresql-app
158                    key: host
159              - name: DB_PORT
160                valueFrom:
161                  secretKeyRef:
162                    name: postgresql-app
163                    key: port
164              - name: DB_USER
165                valueFrom:
166                  secretKeyRef:
167                    name: postgresql-app
168                    key: user
169              - name: DB_PASSWORD
170                valueFrom:
171                  secretKeyRef:
172                    name: postgresql-app
173                    key: password
174              - name: DB_NAME
175                valueFrom:
176                  secretKeyRef:
177                    name: postgresql-app
178                    key: dbname
179            envFrom:
180              - secretRef:
181                  name: paddock-settings
182            command: ["/bin/sh", "-c"]
183            args:
184              - python /opt/app-root/src/manage.py migrate --noinput;
185                python /opt/app-root/src/manage.py createsuperuser --username $DJANGO_SUPERUSER_USERNAME --email $DJANGO_SUPERUSER_EMAIL --noinput || true
186            resources:
187              limits:
188                cpu: 500m
189                memory: 512Mi
190              requests:
191                cpu: 0
192                memory: 0
193        volumes:
194          - name: django-metrics-dir
195            emptyDir:
196              medium: Memory
197              sizeLimit: 256Mi