diff --git a/servers/legion/apps/memos.yaml b/servers/legion/apps/memos.yaml new file mode 100644 index 0000000..de2b671 --- /dev/null +++ b/servers/legion/apps/memos.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: memos + namespace: argocd +spec: + project: default + source: + repoURL: https://git.neuralplatform.ai/will/infrastructure.git + targetRevision: main + path: servers/legion/k8s/memos + destination: + server: https://kubernetes.default.svc + namespace: memos + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/servers/legion/k8s/memos/deployment.yaml b/servers/legion/k8s/memos/deployment.yaml new file mode 100644 index 0000000..88c6d9a --- /dev/null +++ b/servers/legion/k8s/memos/deployment.yaml @@ -0,0 +1,56 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: memos + namespace: memos +spec: + replicas: 1 + selector: + matchLabels: + app: memos + template: + metadata: + labels: + app: memos + spec: + containers: + - name: memos + image: neosmemo/memos:stable + ports: + - containerPort: 5230 + env: + - name: MEMOS_DATA + value: /var/opt/memos + volumeMounts: + - name: data + mountPath: /var/opt/memos + readinessProbe: + httpGet: + path: /healthz + port: 5230 + initialDelaySeconds: 10 + periodSeconds: 10 + resources: + requests: + cpu: 50m + memory: 128Mi + limits: + cpu: 500m + memory: 512Mi + volumes: + - name: data + persistentVolumeClaim: + claimName: memos-data +--- +apiVersion: v1 +kind: Service +metadata: + name: memos + namespace: memos +spec: + selector: + app: memos + ports: + - port: 5230 + targetPort: 5230 diff --git a/servers/legion/k8s/memos/ingress.yaml b/servers/legion/k8s/memos/ingress.yaml new file mode 100644 index 0000000..ee7df78 --- /dev/null +++ b/servers/legion/k8s/memos/ingress.yaml @@ -0,0 +1,26 @@ +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: memos + namespace: memos + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: websecure + cert-manager.io/cluster-issuer: letsencrypt-prod +spec: + ingressClassName: traefik + tls: + - hosts: + - journal.neuralplatform.ai + secretName: memos-tls + rules: + - host: journal.neuralplatform.ai + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: memos + port: + number: 5230 diff --git a/servers/legion/k8s/memos/pvc.yaml b/servers/legion/k8s/memos/pvc.yaml new file mode 100644 index 0000000..c1f6938 --- /dev/null +++ b/servers/legion/k8s/memos/pvc.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: memos-data + namespace: memos +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi