summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2023-07-30 09:14:00 +0200
committerPatrick Spek <p.spek@tyil.nl>2023-07-30 09:14:00 +0200
commita69418c01c960a97047db8753c77ec53686ac4ec (patch)
tree3359f4bdce7e7cac8c46f8887fa5ae0ebf8e208e
parentc65ea7f9dfe7d58f3dd8951648caed06049787b8 (diff)
Deploy grocy to mieshu
-rw-r--r--data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/configmap.yaml38
-rw-r--r--data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/deployment-backend.yaml59
-rw-r--r--data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/deployment-frontend.yaml59
-rw-r--r--data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/ingress.yaml32
-rw-r--r--data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/service-backend.yaml22
-rw-r--r--data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/service-frontend.yaml22
6 files changed, 232 insertions, 0 deletions
diff --git a/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/configmap.yaml b/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/configmap.yaml
new file mode 100644
index 0000000..b78a822
--- /dev/null
+++ b/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/configmap.yaml
@@ -0,0 +1,38 @@
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: grocy
+ namespace: personal-services
+ labels:
+ app.kubernetes.io/created-by: tyil
+ app.kubernetes.io/managed-by: manual
+ app.kubernetes.io/name: grocy
+ app.kubernetes.io/part-of: personal-services
+data:
+ # A custom common.conf is required because the name of the backend service is
+ # not configurable through conventional means. Instead, I supply my own
+ # version with the correct backend name and overwrite the one supplied by the
+ # grocy docker container itself.
+ common.conf: |
+ charset utf-8;
+
+ location / {
+ try_files $uri /index.php$is_args$query_string;
+ }
+
+ location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
+ expires 365d;
+ }
+
+ location ~ \.php$ {
+ fastcgi_pass grocy-backend:80;
+ fastcgi_index index.php;
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ include fastcgi_params;
+ }
+
+ location ~ /\.ht {
+ deny all;
+ }
+...
diff --git a/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/deployment-backend.yaml b/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/deployment-backend.yaml
new file mode 100644
index 0000000..6f20fca
--- /dev/null
+++ b/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/deployment-backend.yaml
@@ -0,0 +1,59 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: grocy-backend
+ namespace: personal-services
+ labels:
+ app.kubernetes.io/created-by: tyil
+ app.kubernetes.io/managed-by: manual
+ app.kubernetes.io/name: grocy-backend
+ app.kubernetes.io/part-of: personal-services
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/created-by: tyil
+ app.kubernetes.io/managed-by: manual
+ app.kubernetes.io/name: grocy-backend
+ app.kubernetes.io/part-of: personal-services
+ strategy:
+ type: RollingUpdate
+ template:
+ metadata:
+ labels:
+ app.kubernetes.io/created-by: tyil
+ app.kubernetes.io/managed-by: manual
+ app.kubernetes.io/name: grocy-backend
+ app.kubernetes.io/part-of: personal-services
+ spec:
+ containers:
+ - image: grocy/backend:v3.3.2
+ name: grocy
+ env:
+ - name: GROCY_CURRENCY
+ value: "EUR"
+ - name: GROCY_MODE
+ value: "production"
+ - name: GROCY_CULTURE
+ name: "en"
+ - name: MAX_UPLOAD
+ value: "50M"
+ - name: PHP_MAX_FILE_UPLOAD
+ value: "200"
+ - name: PHP_MAX_POST
+ value: "100M"
+ - name: PHP_MEMORY_LIMIT
+ value: "512M"
+ ports:
+ - containerPort: 9000
+ volumeMounts:
+ - mountPath: /var/www/data
+ name: data
+ restartPolicy: Always
+ volumes:
+ - name: data
+ hostPath:
+ path: /tmp/grocy0
+ type: DirectoryOrCreate
+...
diff --git a/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/deployment-frontend.yaml b/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/deployment-frontend.yaml
new file mode 100644
index 0000000..07fbb68
--- /dev/null
+++ b/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/deployment-frontend.yaml
@@ -0,0 +1,59 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: grocy-frontend
+ namespace: personal-services
+ labels:
+ app.kubernetes.io/created-by: tyil
+ app.kubernetes.io/managed-by: manual
+ app.kubernetes.io/name: grocy-frontend
+ app.kubernetes.io/part-of: personal-services
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app.kubernetes.io/created-by: tyil
+ app.kubernetes.io/managed-by: manual
+ app.kubernetes.io/name: grocy-frontend
+ app.kubernetes.io/part-of: personal-services
+ strategy:
+ type: RollingUpdate
+ template:
+ metadata:
+ labels:
+ app.kubernetes.io/created-by: tyil
+ app.kubernetes.io/managed-by: manual
+ app.kubernetes.io/name: grocy-frontend
+ app.kubernetes.io/part-of: personal-services
+ spec:
+ containers:
+ - image: grocy/frontend:v3.3.2
+ name: grocy
+ env:
+ - name: GROCY_CURRENCY
+ value: "EUR"
+ - name: GROCY_MODE
+ value: "production"
+ - name: GROCY_CULTURE
+ name: "en"
+ - name: MAX_UPLOAD
+ value: "50M"
+ - name: PHP_MAX_FILE_UPLOAD
+ value: "200"
+ - name: PHP_MAX_POST
+ value: "100M"
+ - name: PHP_MEMORY_LIMIT
+ value: "512M"
+ ports:
+ - containerPort: 8080
+ volumeMounts:
+ - mountPath: /etc/nginx/common.conf
+ subPath: common.conf
+ name: config
+ restartPolicy: Always
+ volumes:
+ - name: config
+ configMap:
+ name: grocy
+...
diff --git a/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/ingress.yaml b/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/ingress.yaml
new file mode 100644
index 0000000..80d1089
--- /dev/null
+++ b/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/ingress.yaml
@@ -0,0 +1,32 @@
+---
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: grocy
+ namespace: personal-services
+ labels:
+ app.kubernetes.io/created-by: tyil
+ app.kubernetes.io/managed-by: manual
+ app.kubernetes.io/name: grocy
+ app.kubernetes.io/part-of: personal-services
+ annotations:
+ cert-manager.io/cluster-issuer: "letsencrypt-production"
+ traefik.ingress.kubernetes.io/router.middlewares: kube-system-redirect-https@kubernetescrd
+spec:
+ ingressClassName: traefik
+ tls:
+ - hosts:
+ - erp.tyil.nl
+ secretName: tls-nl.tyil.erp
+ rules:
+ - host: erp.tyil.nl
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: grocy-frontend
+ port:
+ number: 80
+...
diff --git a/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/service-backend.yaml b/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/service-backend.yaml
new file mode 100644
index 0000000..e9a179d
--- /dev/null
+++ b/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/service-backend.yaml
@@ -0,0 +1,22 @@
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: grocy-backend
+ namespace: personal-services
+ labels:
+ app.kubernetes.io/created-by: tyil
+ app.kubernetes.io/managed-by: manual
+ app.kubernetes.io/name: grocy-backend
+ app.kubernetes.io/part-of: personal-services
+spec:
+ selector:
+ app.kubernetes.io/created-by: tyil
+ app.kubernetes.io/managed-by: manual
+ app.kubernetes.io/name: grocy-backend
+ app.kubernetes.io/part-of: personal-services
+ ports:
+ - name: http
+ port: 80
+ targetPort: 9000
+...
diff --git a/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/service-frontend.yaml b/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/service-frontend.yaml
new file mode 100644
index 0000000..d9d1e93
--- /dev/null
+++ b/data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/service-frontend.yaml
@@ -0,0 +1,22 @@
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: grocy-frontend
+ namespace: personal-services
+ labels:
+ app.kubernetes.io/created-by: tyil
+ app.kubernetes.io/managed-by: manual
+ app.kubernetes.io/name: grocy-frontend
+ app.kubernetes.io/part-of: personal-services
+spec:
+ selector:
+ app.kubernetes.io/created-by: tyil
+ app.kubernetes.io/managed-by: manual
+ app.kubernetes.io/name: grocy-frontend
+ app.kubernetes.io/part-of: personal-services
+ ports:
+ - name: http
+ port: 80
+ targetPort: 8080
+...