From a69418c01c960a97047db8753c77ec53686ac4ec Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Sun, 30 Jul 2023 09:14:00 +0200 Subject: Deploy grocy to mieshu --- .../mieshu/personal-services/grocy/configmap.yaml | 38 ++++++++++++++ .../grocy/deployment-backend.yaml | 59 ++++++++++++++++++++++ .../grocy/deployment-frontend.yaml | 59 ++++++++++++++++++++++ .../mieshu/personal-services/grocy/ingress.yaml | 32 ++++++++++++ .../personal-services/grocy/service-backend.yaml | 22 ++++++++ .../personal-services/grocy/service-frontend.yaml | 22 ++++++++ 6 files changed, 232 insertions(+) create mode 100644 data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/configmap.yaml create mode 100644 data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/deployment-backend.yaml create mode 100644 data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/deployment-frontend.yaml create mode 100644 data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/ingress.yaml create mode 100644 data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/service-backend.yaml create mode 100644 data.d/k3s-master/manifests.d/mieshu/personal-services/grocy/service-frontend.yaml (limited to 'data.d/k3s-master/manifests.d') 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 +... -- cgit v1.1