apiVersion: v1 kind: PersistentVolumeClaim metadata: name: wp-pv-claim labels: app: wordpress spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: blog labels: app: blog spec: selector: matchLabels: app: blog template: metadata: labels: app: blog spec: containers: - name: blog-container image: wordpress:6.2.1-apache ports: - containerPort: 80 env: - name: WORDPRESS_DB_HOST value: mysql.default - name: WORDPRESS_DB_PASSWORD value: password - name: WORDPRESS_DB_USER value: chyrp - name: WORDPRESS_DB_NAME value: chyrp volumeMounts: - name: wordpress-persistent-storage mountPath: /var/www/html volumes: - name: wordpress-persistent-storage persistentVolumeClaim: claimName: wp-pv-claim --- apiVersion: v1 kind: Service metadata: name: blog-svc spec: selector: app: blog ports: - port: 80 --- apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: name: strip-prefix spec: stripPrefixRegex: regex: - ^/[^/]+ --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: cert-manager.io/cluster-issuer: letsencrypt-issuer kubernetes.io/ingress.class: traefik # traefik.ingress.kubernetes.io/router.middlewares: default-strip-prefix@kubernetescrd name: blog spec: rules: - host: swaous.asuscomm.com http: paths: - path: /blog pathType: Prefix backend: service: name: blog-svc port: number: 80 tls: - hosts: - swaous.asuscomm.com secretName: swaous-tls