apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "wordpress-nginx.fullname" . }} labels: {{- include "wordpress-nginx.labels" . | nindent 4 }} spec: replicas: {{ .Values.replicaCount }} selector: matchLabels: {{- include "wordpress-nginx.selectorLabels" . | nindent 6 }} template: metadata: labels: {{- include "wordpress-nginx.selectorLabels" . | nindent 8 }} spec: securityContext: fsGroup: 82 fsGroupChangePolicy: "OnRootMismatch" initContainers: - name: wordpress-init image: "{{ .Values.image.wordpress.registry }}/{{ .Values.image.wordpress.repository }}:{{ .Values.image.wordpress.tag }}" imagePullPolicy: {{ .Values.image.wordpress.pullPolicy }} command: ["/bin/sh", "-c"] args: - | if [ ! -f /var/www/html/wp-config.php ]; then echo "Initializing WordPress files..." cp -rp /usr/src/wordpress/* /var/www/html/ 2>/dev/null || true echo "WordPress files copied successfully" else echo "WordPress already initialized" fi volumeMounts: - name: wordpress-data mountPath: /var/www/html securityContext: runAsUser: 82 runAsGroup: 82 fsGroup: 82 containers: - 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: wordpress-data mountPath: /var/www/html - name: nginx-config mountPath: /etc/nginx/conf.d/default.conf subPath: default.conf {{- if .Values.healthCheck.enabled }} livenessProbe: {{- toYaml .Values.healthCheck.livenessProbe | nindent 12 }} readinessProbe: {{- toYaml .Values.healthCheck.readinessProbe | nindent 12 }} {{- end }} resources: {{- toYaml .Values.resources.nginx | nindent 12 }} - name: wordpress image: "{{ .Values.image.wordpress.registry }}/{{ .Values.image.wordpress.repository }}:{{ .Values.image.wordpress.tag }}" imagePullPolicy: {{ .Values.image.wordpress.pullPolicy }} securityContext: runAsUser: 82 runAsGroup: 82 env: - name: WORDPRESS_DB_HOST value: {{ .Values.wordpress.dbHost | quote }} - name: WORDPRESS_DB_NAME value: {{ .Values.wordpress.dbName | quote }} - name: WORDPRESS_DB_USER value: {{ .Values.wordpress.dbUser | quote }} - name: WORDPRESS_DB_PASSWORD valueFrom: secretKeyRef: name: {{ include "wordpress-nginx.fullname" . }}-secret key: db-password - name: WORDPRESS_TABLE_PREFIX value: {{ .Values.wordpress.tablePrefix | quote }} volumeMounts: - name: wordpress-data mountPath: /var/www/html resources: {{- toYaml .Values.resources.wordpress | nindent 12 }} volumes: - name: wordpress-data {{- if .Values.persistence.enabled }} persistentVolumeClaim: claimName: {{ include "wordpress-nginx.fullname" . }}-pvc {{- else }} emptyDir: {} {{- end }} - name: nginx-config configMap: name: {{ include "wordpress-nginx.fullname" . }}-nginx-config {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }}