From 60cac7d38060be7d17ab2cd986995781b2fdce3f Mon Sep 17 00:00:00 2001 From: James Blair Date: Tue, 15 Nov 2022 14:26:15 +1300 Subject: [PATCH] Begin adding chart for wordpress. --- wordpress/.helmignore | 23 ++++++++++++ wordpress/Chart.yaml | 6 +++ wordpress/templates/NOTES.txt | 3 ++ wordpress/templates/cm.yaml | 13 +++++++ wordpress/templates/ingress.yaml | 23 ++++++++++++ wordpress/templates/service.yaml | 15 ++++++++ wordpress/templates/sts.yaml | 63 ++++++++++++++++++++++++++++++++ wordpress/values.yaml | 12 ++++++ 8 files changed, 158 insertions(+) create mode 100644 wordpress/.helmignore create mode 100644 wordpress/Chart.yaml create mode 100644 wordpress/templates/NOTES.txt create mode 100644 wordpress/templates/cm.yaml create mode 100644 wordpress/templates/ingress.yaml create mode 100644 wordpress/templates/service.yaml create mode 100644 wordpress/templates/sts.yaml create mode 100644 wordpress/values.yaml diff --git a/wordpress/.helmignore b/wordpress/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/wordpress/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/wordpress/Chart.yaml b/wordpress/Chart.yaml new file mode 100644 index 0000000..d0a3c0e --- /dev/null +++ b/wordpress/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: wordpress +description: A helm chart for deploying the wordpress cms on kubernetes. +type: application +version: 0.1.0 +appVersion: "6.1" diff --git a/wordpress/templates/NOTES.txt b/wordpress/templates/NOTES.txt new file mode 100644 index 0000000..d0eeb98 --- /dev/null +++ b/wordpress/templates/NOTES.txt @@ -0,0 +1,3 @@ +See: +- https://{{ .Values.host }} +- https://{{ .Values.host }}/wp-admin diff --git a/wordpress/templates/cm.yaml b/wordpress/templates/cm.yaml new file mode 100644 index 0000000..cf335f7 --- /dev/null +++ b/wordpress/templates/cm.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }} + labels: + release: {{ .Release.Name }} +data: + uploads.ini: | + file_uploads = On + memory_limit = 64M + upload_max_filesize = 64M + post_max_size = 64M + max_execution_time = 600 diff --git a/wordpress/templates/ingress.yaml b/wordpress/templates/ingress.yaml new file mode 100644 index 0000000..2262d14 --- /dev/null +++ b/wordpress/templates/ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ .Release.Name }} + annotations: + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/proxy-body-size: {{ .Values.proxyBodySize }} +spec: + tls: + - hosts: + - {{ .Values.host }} + secretName: {{ .Release.Name }}-tls + rules: + - host: {{ required ".Values.host is required" .Values.host }} + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: {{ .Release.Name }} + port: + name: http diff --git a/wordpress/templates/service.yaml b/wordpress/templates/service.yaml new file mode 100644 index 0000000..0840d16 --- /dev/null +++ b/wordpress/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Release.Name }} + labels: + release: {{ .Release.Name }} +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: http + protocol: TCP + name: http + selector: + release: {{ .Release.Name }} diff --git a/wordpress/templates/sts.yaml b/wordpress/templates/sts.yaml new file mode 100644 index 0000000..5cf5075 --- /dev/null +++ b/wordpress/templates/sts.yaml @@ -0,0 +1,63 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ .Release.Name }} + labels: + release: {{ .Release.Name }} +spec: + serviceName: {{ .Release.Name }} + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: {{ .Values.storage }} + replicas: {{ .Values.replicas }} + selector: + matchLabels: + release: {{ .Release.Name }} + template: + metadata: + annotations: + checksum/config: {{ include (print $.Template.BasePath "/cm.yml") . | sha256sum }} + labels: + release: {{ .Release.Name }} + spec: + volumes: + - name: config + configMap: + name: {{ .Release.Name }} + containers: + - name: main + image: {{ .Values.image }} + imagePullPolicy: Always + ports: + - name: http + containerPort: 80 + protocol: TCP + livenessProbe: + httpGet: + path: / + port: http + readinessProbe: + httpGet: + path: / + port: http + volumeMounts: + - name: data + mountPath: /var/www/html + - name: config + mountPath: /usr/local/etc/php/conf.d/uploads.ini + subPath: uploads.ini + env: + - name: WORDPRESS_DB_HOST + value: {{ required ".Values.WORDPRESS_DB_HOST is required" .Values.WORDPRESS_DB_HOST }} + - name: WORDPRESS_DB_USER + value: {{ required ".Values.WORDPRESS_DB_USER is required" .Values.WORDPRESS_DB_USER }} + - name: WORDPRESS_DB_PASSWORD + value: {{ required ".Values.WORDPRESS_DB_PASSWORD is required" .Values.WORDPRESS_DB_PASSWORD }} + - name: WORDPRESS_DB_NAME + value: {{ required ".Values.WORDPRESS_DB_NAME is required" .Values.WORDPRESS_DB_NAME }} diff --git a/wordpress/values.yaml b/wordpress/values.yaml new file mode 100644 index 0000000..e7adb9a --- /dev/null +++ b/wordpress/values.yaml @@ -0,0 +1,12 @@ +# Required +host: +WORDPRESS_DB_HOST: +WORDPRESS_DB_USER: +WORDPRESS_DB_PASSWORD: +WORDPRESS_DB_NAME: + +# Optional +image: wordpress:6.1 +storage: 10Gi +proxyBodySize: 100m +clusterIssuer: letsencrypt