diff --git a/manifests/_apps/mealie.yaml b/manifests/_apps/mealie.yaml new file mode 100644 index 0000000..44571ad --- /dev/null +++ b/manifests/_apps/mealie.yaml @@ -0,0 +1,28 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: mealie + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: cluster.fun + destination: + namespace: mealie + name: cluster-fun (scaleway) + source: + path: manifests/mealie + repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" + targetRevision: HEAD + syncPolicy: + automated: {} + syncOptions: + - CreateNamespace=true + ignoreDifferences: + - kind: Secret + jsonPointers: + - /data + - group: apps + kind: Deployment + jqPathExpressions: + - .spec.template.spec.containers[]?.image diff --git a/manifests/auth-proxy/non-auth-proxy.yaml b/manifests/auth-proxy/non-auth-proxy.yaml index c5cfaae..dd098d6 100644 --- a/manifests/auth-proxy/non-auth-proxy.yaml +++ b/manifests/auth-proxy/non-auth-proxy.yaml @@ -269,7 +269,6 @@ spec: - home.cluster.fun - tasks.cluster.fun - api.tasks.cluster.fun - - mealie.cluster.fun secretName: non-auth-proxy-ingress rules: - host: home.cluster.fun @@ -302,13 +301,3 @@ spec: name: non-auth-proxy port: name: http - - host: mealie.cluster.fun - http: - paths: - - path: / - pathType: ImplementationSpecific - backend: - service: - name: non-auth-proxy - port: - name: http diff --git a/manifests/mealie/mealie.yaml b/manifests/mealie/mealie.yaml new file mode 100644 index 0000000..fa5386f --- /dev/null +++ b/manifests/mealie/mealie.yaml @@ -0,0 +1,174 @@ +apiVersion: v1 +kind: Secret +metadata: + name: mealie + namespace: mealie + annotations: + kube-1password: 7ibib7oafxbxkvofnd4oxcr3qy + kube-1password/vault: Kubernetes + kube-1password/secret-text-parse: "true" +type: Opaque + +--- + +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: mealie + namespace: mealie +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mealie + namespace: mealie +spec: + replicas: 1 + selector: + matchLabels: + app: mealie + template: + metadata: + labels: + app: mealie + spec: + containers: + - name: frontend + image: hkotel/mealie:frontend-nightly + imagePullPolicy: IfNotPresent + envFrom: + - secretRef: + name: mealie + env: + - name: API_URL + value: "http://localhost:9000" + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - name: TZ + value: Europe/London + - name: TOKEN_TIME + value: "12" + - name: DB_ENGINE + value: postgres + - name: POSTGRES_DB + value: mealie + - name: RECIPE_PUBLIC + value: "false" + - name: RECIPE_SHOW_NUTRITION + value: "true" + - name: RECIPE_SHOW_ASSETS + value: "true" + - name: RECIPE_LANDSCAPE_VIEW + value: "true" + - name: RECIPE_DISABLE_COMMENTS + value: "false" + - name: RECIPE_DISABLE_AMOUNT + value: "false" + ports: + - containerPort: 3000 + name: web + volumeMounts: + - mountPath: /app/data + name: data + - name: api + image: hkotel/mealie:api-nightly + imagePullPolicy: IfNotPresent + envFrom: + - secretRef: + name: mealie + env: + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - name: TZ + value: Europe/London + - name: DB_ENGINE + value: postgres + - name: POSTGRES_DB + value: mealie + - name: DEFAULT_EMAIL + value: "mealie@marcusnoble.co.uk" + - name: TOKEN_TIME + value: "168" + - name: BASE_URL + value: "https://mealie.cluster.fun" + ports: + - containerPort: 9000 + name: api + volumeMounts: + - mountPath: /app/data + name: data + volumes: + - name: data + persistentVolumeClaim: + claimName: mealie + + +--- + +apiVersion: v1 +kind: Service +metadata: + name: mealie + namespace: mealie +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: web + name: web + selector: + app: mealie +--- + +apiVersion: v1 +kind: Service +metadata: + name: mealie-api + namespace: mealie +spec: + type: ClusterIP + ports: + - port: 80 + targetPort: api + name: api + selector: + app: mealie + +--- + +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: mealie + namespace: mealie + annotations: + cert-manager.io/cluster-issuer: letsencrypt + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" +spec: + ingressClassName: nginx + tls: + - hosts: + - mealie.cluster.fun + secretName: mealie-ingress + rules: + - host: mealie.cluster.fun + http: + paths: + - path: / + pathType: ImplementationSpecific + backend: + service: + name: mealie + port: + name: web