Files
school-dev-k8s/practice/21.ci-cd/1.5.two_containers/deployment.yaml
T
2021-09-27 16:59:35 +03:00

121 lines
3.3 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: {{ .Chart.Name }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: app
name: {{ .Release.Name }}
spec:
progressDeadlineSeconds: 180
replicas: {{ .Values.replicas }}
selector:
matchLabels:
app: {{ .Chart.Name }}
release: {{ .Release.Name }}
component: app
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
revisionHistoryLimit: 5
template:
metadata:
creationTimestamp: null
labels:
app: {{ .Chart.Name }}
release: {{ .Release.Name }}
component: app
spec:
containers:
- name: nginx
command: ["/usr/sbin/nginx"]
args: ["-g", "daemon off;"]
image: {{ .Values.image }}:{{ .Values.imageTag }}
imagePullPolicy: IfNotPresent
volumeMounts:
- mountPath: /var/run
name: socket
ports:
- containerPort: {{ .Values.service.port }}
name: http
protocol: TCP
readinessProbe:
failureThreshold: 30
httpGet:
path: /
port: {{ .Values.service.port }}
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
livenessProbe:
initialDelaySeconds: 90
failureThreshold: 3
httpGet:
path: /
port: {{ .Values.service.port }}
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
resources:
limits:
cpu: 100m
memory: 256Mi
requests:
cpu: 100m
memory: 256Mi
- env:
{{- range $key, $val := .Values.env }}
- name: {{ $key | quote }}
value: {{ $val | quote }}
{{- end }}
{{- range $key, $val := .Values.envSecret }}
- name: {{ $key | quote }}
valueFrom:
secretKeyRef:
key: {{ $key | lower | replace "_" "-" }}
name: {{ $val }}
{{- end }}
image: {{ .Values.image }}:{{ .Values.imageTag}}
imagePullPolicy: IfNotPresent
name: app
command: ["/bin/sh"]
args: ["-c","bundle exec rake db:migrate && exec bundle exec puma -b unix:///var/run/puma.sock -e $RAILS_ENV config.ru"]
volumeMounts:
- mountPath: /var/run
name: socket
readinessProbe:
failureThreshold: 30
httpGet:
path: /
port: {{ .Values.service.port }}
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
livenessProbe:
initialDelaySeconds: 90
failureThreshold: 3
httpGet:
path: /
port: {{ .Values.service.port }}
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
resources:
{{ toYaml .Values.resources | indent 12 }}
dnsPolicy: ClusterFirst
restartPolicy: Always
terminationGracePeriodSeconds: 20
imagePullSecrets:
- name: {{ .Values.imagePullSecret }}
volumes:
- name: socket
emptyDir: {}