apiVersion: v1 kind: Service metadata: namespace: wordpress name: wordpress labels: app: wordpress spec: ports: - port: 80 selector: app: wordpress tier: frontend --- apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: wordpress-ingress namespace: wordpress annotations: kubernetes.io/ingress.class: "traefik" cert-manager.io/cluster-issuer: letsencrypt-prod-wp ingress.kubernetes.io/ssl-redirect: "true" labels: app: wordpress spec: tls: - hosts: - www.somesite.com - somesite.com secretName: letsencrypt-prod-wp rules: - host: www.somesite.com http: paths: - path: / backend: serviceName: wordpress servicePort: 80 - host: somesite.com http: paths: - path: / backend: serviceName: wordpress servicePort: 80 --- apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2 kind: Deployment metadata: namespace: wordpress name: wordpress labels: app: wordpress spec: selector: matchLabels: app: wordpress tier: frontend strategy: type: Recreate template: metadata: labels: app: wordpress tier: frontend spec: containers: - image: wordpress:5.3.2-php7.3-apache name: wordpress env: - name: WORDPRESS_DB_HOST value: wordpress-mysql - name: WORDPRESS_DB_PASSWORD valueFrom: secretKeyRef: name: wordpress-mysql-pass key: password ports: - containerPort: 80 name: wordpress volumeMounts: - name: wordpress-persistent-storage mountPath: /var/www/html volumes: - name: wordpress-persistent-storage persistentVolumeClaim: claimName: wordpress-pv-claim