apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "yourls-nginx.fullname" . }} labels: {{- include "yourls-nginx.labels" . | nindent 4 }} spec: replicas: {{ .Values.replicaCount }} selector: matchLabels: {{- include "yourls-nginx.selectorLabels" . | nindent 6 }} template: metadata: labels: {{- include "yourls-nginx.selectorLabels" . | nindent 8 }} spec: initContainers: - name: wait-for-mysql image: busybox:1.36 command: - sh - -c - | until nc -z {{ include "yourls-nginx.fullname" . }}-mysql 3306; do echo "Waiting for MySQL..." sleep 2 done containers: # NGINX Container - name: nginx image: "{{ .Values.image.nginx.registry }}/{{ .Values.image.nginx.repository }}:{{ .Values.image.nginx.tag }}" imagePullPolicy: {{ .Values.image.nginx.pullPolicy }} ports: - name: http containerPort: 80 protocol: TCP volumeMounts: - name: nginx-config mountPath: /etc/nginx/conf.d - name: yourls-data mountPath: /var/www/html resources: {{- toYaml .Values.resources.nginx | nindent 12 }} livenessProbe: httpGet: path: / port: http initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: / port: http initialDelaySeconds: 5 periodSeconds: 5 # YOURLS PHP-FPM Container - name: yourls image: "{{ .Values.image.yourls.registry }}/{{ .Values.image.yourls.repository }}:{{ .Values.image.yourls.tag }}" imagePullPolicy: {{ .Values.image.yourls.pullPolicy }} env: - name: YOURLS_DB_HOST value: "{{ include "yourls-nginx.fullname" . }}-mysql" - name: YOURLS_DB_USER value: {{ .Values.mysql.auth.username | quote }} - name: YOURLS_DB_PASS valueFrom: secretKeyRef: name: {{ include "yourls-nginx.fullname" . }}-mysql key: mysql-password - name: YOURLS_DB_NAME value: {{ .Values.mysql.auth.database | quote }} - name: YOURLS_SITE value: {{ .Values.yourls.config.site | quote }} - name: YOURLS_USER value: {{ .Values.yourls.config.username | quote }} - name: YOURLS_PASS valueFrom: secretKeyRef: name: {{ include "yourls-nginx.fullname" . }}-secret key: yourls-password - name: YOURLS_COOKIEKEY valueFrom: secretKeyRef: name: {{ include "yourls-nginx.fullname" . }}-secret key: yourls-cookiekey - name: YOURLS_HOURS_OFFSET value: {{ .Values.yourls.config.hours_offset | quote }} - name: YOURLS_LANG value: {{ .Values.yourls.config.lang | quote }} volumeMounts: - name: yourls-data mountPath: /var/www/html resources: {{- toYaml .Values.resources.yourls | nindent 12 }} livenessProbe: tcpSocket: port: 9000 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: tcpSocket: port: 9000 initialDelaySeconds: 5 periodSeconds: 5 volumes: - name: nginx-config configMap: name: {{ include "yourls-nginx.fullname" . }}-nginx-config - name: yourls-data {{- if .Values.yourls.persistence.enabled }} persistentVolumeClaim: claimName: {{ include "yourls-nginx.fullname" . }}-pvc {{- else }} emptyDir: {} {{- end }} {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }}