diff --git a/wordpress/issuer.yaml b/wordpress/issuer.yaml new file mode 100644 index 0000000..4c9784a --- /dev/null +++ b/wordpress/issuer.yaml @@ -0,0 +1,19 @@ +apiVersion: cert-manager.io/v1 +kind: Issuer +metadata: + name: letsencrypt-production + namespace: gitea +spec: + acme: + email: s.foppen@previder.nl + server: https://acme-v02.api.letsencrypt.org/directory + privateKeySecretRef: + name: letsencrypt-production-account-key + solvers: + - http01: + ingress: + ingressClassName: traefik + ingressTemplate: + metadata: + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: web diff --git a/wordpress/mariadb.yaml b/wordpress/mariadb.yaml new file mode 100644 index 0000000..24424d3 --- /dev/null +++ b/wordpress/mariadb.yaml @@ -0,0 +1,39 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mariadb-deployment +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: mariadb-deployment + template: + metadata: + labels: + app.kubernetes.io/name: mariadb-deployment + spec: + containers: + - name: mariadb + image: mariadb:latest + securityContext: + runAsUser: 1000 + allowPrivilegeEscalation: false + env: + - name: MYSQL_ROOT_PASSWORD + value: password + - name: MARIADB_USER + value: mariadbuser + - name: MARIADB_PASSWORD + value: mariadbpassword + - name: MARIADB_DATABASE + value: database + ports: + - containerPort: 3306 + name: sql + volumeMounts: + - name: mariadb-storage + mountPath: /var/lib/mysql + volumes: + - name: mariadb-storage + persistentVolumeClaim: + claimName: mariadb-pvc \ No newline at end of file diff --git a/wordpress/mariadb_service.yaml b/wordpress/mariadb_service.yaml new file mode 100644 index 0000000..e591a02 --- /dev/null +++ b/wordpress/mariadb_service.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Service +metadata: + name: mariadb-service +spec: + ports: + - port: 3306 + selector: + app.kubernetes.io/name: mariadb-deployment \ No newline at end of file diff --git a/wordpress/pvc.yaml b/wordpress/pvc.yaml new file mode 100644 index 0000000..f166cbf --- /dev/null +++ b/wordpress/pvc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mariadb-pvc +spec: + accessModes: + - ReadWriteMany + storageClassName: previder-staas + resources: + requests: + storage: 5Gi \ No newline at end of file diff --git a/wordpress/wordpress.yaml b/wordpress/wordpress.yaml new file mode 100644 index 0000000..5da3efa --- /dev/null +++ b/wordpress/wordpress.yaml @@ -0,0 +1,74 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: wordpress-service + annotations: + cert-manager.io/issuer: letsencrypt-production + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.tls: "true" +spec: + ingressClassName: traefik + tls: + - hosts: + - wordpress.syonfoppen.kubernetes.at-previder.cloud + secretName: argocd-tls + rules: + - host: wordpress.syonfoppen.kubernetes.at-previder.cloud + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: wordpress-service + port: + number: 80 +--- + +apiVersion: v1 +kind: Service +metadata: + name: wordpress-service + labels: + app.kubernetes.io/name: wordpress-service +spec: + ports: + - port: 80 + nodePort: 32000 + selector: + app.kubernetes.io/name: wordpress-deployment + type: NodePort +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: wordpress-deployment + labels: + app.kubernetes.io/name: wordpress-deployment +spec: + selector: + matchLabels: + app.kubernetes.io/name: wordpress-deployment + strategy: + type: Recreate + template: + metadata: + labels: + app.kubernetes.io/name: wordpress-deployment + spec: + containers: + - image: wordpress:latest + name: wordpress + env: + - name: WORDPRESS_DB_HOST + value: mariadb-service + - name: WORDPRESS_DB_PASSWORD + value: mariadbpassword + - name: WORDPRESS_DB_USER + value: mariadbuser + - name: WORDPRESS_DB_NAME + value: database + ports: + - containerPort: 80 + name: web +