From a34d3df7d63305fb943f972f8eab35854146f9fa Mon Sep 17 00:00:00 2001 From: fchinembiri Date: Thu, 21 May 2026 20:35:51 +0200 Subject: [PATCH] feat(family): add mealie and grocy instances for Ruva and Rufaro --- k8s/argocd-family-apps.yaml | 2 +- k8s/family-apps/kustomization.yaml | 2 + k8s/family-apps/rufaro.yaml | 153 +++++++++++++++++++++++++++++ k8s/family-apps/ruva.yaml | 153 +++++++++++++++++++++++++++++ 4 files changed, 309 insertions(+), 1 deletion(-) create mode 100644 k8s/family-apps/rufaro.yaml create mode 100644 k8s/family-apps/ruva.yaml diff --git a/k8s/argocd-family-apps.yaml b/k8s/argocd-family-apps.yaml index 295f5b3..8ba549f 100644 --- a/k8s/argocd-family-apps.yaml +++ b/k8s/argocd-family-apps.yaml @@ -6,7 +6,7 @@ metadata: spec: project: default source: - repoURL: http://gitea.geocrop.svc.cluster.local:3000/fchinembiri/geocrop-platform.git + repoURL: http://gitea.geocrop.svc.cluster.local:3000/fchinembiri/geocrop-platform..git targetRevision: HEAD path: k8s/family-apps destination: diff --git a/k8s/family-apps/kustomization.yaml b/k8s/family-apps/kustomization.yaml index ec68229..32290e8 100644 --- a/k8s/family-apps/kustomization.yaml +++ b/k8s/family-apps/kustomization.yaml @@ -7,3 +7,5 @@ resources: - tendai.yaml - tsitsi.yaml - kecy.yaml + - ruva.yaml + - rufaro.yaml diff --git a/k8s/family-apps/rufaro.yaml b/k8s/family-apps/rufaro.yaml new file mode 100644 index 0000000..9fb95bf --- /dev/null +++ b/k8s/family-apps/rufaro.yaml @@ -0,0 +1,153 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: grocy-pvc-rufaro +spec: + accessModes: [ReadWriteOnce] + resources: + requests: + storage: 2Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: grocy-rufaro +spec: + replicas: 1 + selector: + matchLabels: + app: grocy-rufaro + template: + metadata: + labels: + app: grocy-rufaro + spec: + containers: + - name: grocy + image: lscr.io/linuxserver/grocy:latest + env: + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - name: TZ + value: "Africa/Harare" + ports: + - containerPort: 80 + volumeMounts: + - name: config + mountPath: /config + volumes: + - name: config + persistentVolumeClaim: + claimName: grocy-pvc-rufaro +--- +apiVersion: v1 +kind: Service +metadata: + name: grocy-rufaro +spec: + ports: + - port: 80 + targetPort: 80 + selector: + app: grocy-rufaro +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: grocy-rufaro-ingress + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" +spec: + ingressClassName: nginx + tls: + - hosts: + - grocy-rufaro.techarvest.co.zw + secretName: grocy-rufaro-tls + rules: + - host: grocy-rufaro.techarvest.co.zw + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: grocy-rufaro + port: + number: 80 +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mealie-pvc-rufaro +spec: + accessModes: [ReadWriteOnce] + resources: + requests: + storage: 2Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mealie-rufaro +spec: + replicas: 1 + selector: + matchLabels: + app: mealie-rufaro + template: + metadata: + labels: + app: mealie-rufaro + spec: + containers: + - name: mealie + image: ghcr.io/mealie-recipes/mealie:latest + env: + - name: TZ + value: "Africa/Harare" + ports: + - containerPort: 9000 + volumeMounts: + - name: data + mountPath: /app/data + volumes: + - name: data + persistentVolumeClaim: + claimName: mealie-pvc-rufaro +--- +apiVersion: v1 +kind: Service +metadata: + name: mealie-rufaro +spec: + ports: + - port: 80 + targetPort: 9000 + selector: + app: mealie-rufaro +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: mealie-rufaro-ingress + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" +spec: + ingressClassName: nginx + tls: + - hosts: + - mealie-rufaro.techarvest.co.zw + secretName: mealie-rufaro-tls + rules: + - host: mealie-rufaro.techarvest.co.zw + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: mealie-rufaro + port: + number: 80 diff --git a/k8s/family-apps/ruva.yaml b/k8s/family-apps/ruva.yaml new file mode 100644 index 0000000..8246b9c --- /dev/null +++ b/k8s/family-apps/ruva.yaml @@ -0,0 +1,153 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: grocy-pvc-ruva +spec: + accessModes: [ReadWriteOnce] + resources: + requests: + storage: 2Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: grocy-ruva +spec: + replicas: 1 + selector: + matchLabels: + app: grocy-ruva + template: + metadata: + labels: + app: grocy-ruva + spec: + containers: + - name: grocy + image: lscr.io/linuxserver/grocy:latest + env: + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - name: TZ + value: "Africa/Harare" + ports: + - containerPort: 80 + volumeMounts: + - name: config + mountPath: /config + volumes: + - name: config + persistentVolumeClaim: + claimName: grocy-pvc-ruva +--- +apiVersion: v1 +kind: Service +metadata: + name: grocy-ruva +spec: + ports: + - port: 80 + targetPort: 80 + selector: + app: grocy-ruva +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: grocy-ruva-ingress + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" +spec: + ingressClassName: nginx + tls: + - hosts: + - grocy-ruva.techarvest.co.zw + secretName: grocy-ruva-tls + rules: + - host: grocy-ruva.techarvest.co.zw + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: grocy-ruva + port: + number: 80 +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mealie-pvc-ruva +spec: + accessModes: [ReadWriteOnce] + resources: + requests: + storage: 2Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mealie-ruva +spec: + replicas: 1 + selector: + matchLabels: + app: mealie-ruva + template: + metadata: + labels: + app: mealie-ruva + spec: + containers: + - name: mealie + image: ghcr.io/mealie-recipes/mealie:latest + env: + - name: TZ + value: "Africa/Harare" + ports: + - containerPort: 9000 + volumeMounts: + - name: data + mountPath: /app/data + volumes: + - name: data + persistentVolumeClaim: + claimName: mealie-pvc-ruva +--- +apiVersion: v1 +kind: Service +metadata: + name: mealie-ruva +spec: + ports: + - port: 80 + targetPort: 9000 + selector: + app: mealie-ruva +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: mealie-ruva-ingress + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" +spec: + ingressClassName: nginx + tls: + - hosts: + - mealie-ruva.techarvest.co.zw + secretName: mealie-ruva-tls + rules: + - host: mealie-ruva.techarvest.co.zw + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: mealie-ruva + port: + number: 80