apiVersion: apps/v1 kind: Deployment metadata: name: mysql namespace: harmonic-wordpress labels: app: mysql spec: replicas: 0 strategy: type: Recreate selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:8.0 ports: - containerPort: 3306 env: - name: MYSQL_DATABASE value: wordpress - name: MYSQL_USER value: wordpress - name: MYSQL_PASSWORD valueFrom: secretKeyRef: name: wordpress-db key: mysql_password - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: wordpress-db key: mysql_root_password volumeMounts: - name: data mountPath: /var/lib/mysql resources: requests: memory: 512Mi cpu: 100m limits: memory: 1Gi cpu: 500m livenessProbe: exec: command: ["mysqladmin", "ping", "-h", "localhost"] initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: exec: command: ["mysqladmin", "ping", "-h", "localhost"] initialDelaySeconds: 10 periodSeconds: 5 volumes: - name: data persistentVolumeClaim: claimName: mysql-data --- apiVersion: v1 kind: Service metadata: name: mysql namespace: harmonic-wordpress spec: selector: app: mysql ports: - port: 3306 targetPort: 3306 type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: wordpress namespace: harmonic-wordpress labels: app: wordpress spec: replicas: 0 strategy: type: Recreate selector: matchLabels: app: wordpress template: metadata: labels: app: wordpress spec: containers: - name: wordpress image: registry.neuralplatform.ai/harmonic-wordpress:latest ports: - containerPort: 80 env: - name: WORDPRESS_DB_HOST value: mysql:3306 - name: WORDPRESS_DB_NAME value: wordpress - name: WORDPRESS_DB_USER value: wordpress - name: WORDPRESS_DB_PASSWORD valueFrom: secretKeyRef: name: wordpress-db key: mysql_password - name: WORDPRESS_CONFIG_EXTRA value: | define('WP_HOME', 'https://dev.harmonic-framework.com'); define('WP_SITEURL', 'https://dev.harmonic-framework.com'); volumeMounts: - name: data mountPath: /var/www/html resources: requests: memory: 256Mi cpu: 100m limits: memory: 512Mi cpu: 500m readinessProbe: httpGet: path: /wp-login.php port: 80 initialDelaySeconds: 30 periodSeconds: 10 volumes: - name: data persistentVolumeClaim: claimName: wordpress-data --- apiVersion: v1 kind: Service metadata: name: wordpress namespace: harmonic-wordpress spec: selector: app: wordpress ports: - port: 80 targetPort: 80 type: ClusterIP