From cfa09298fac3db5ae44cc3324d5857a3f6f9a5b9 Mon Sep 17 00:00:00 2001 From: "azykov@mail.ru" Date: Sun, 26 Jul 2026 20:43:06 +0300 Subject: [PATCH] markdown-vault-mcp --- .../apps/markdown-vault-mcp/helmrelease.yaml | 84 +++++++++++++++++++ .../markdown-vault-mcp/helmrepository.yaml | 10 +++ .../markdown-vault-mcp/kustomization.yaml | 6 ++ .../apps/markdown-vault-mcp/secret.enc.yaml | 22 +++++ clusters/base/namespaces/mcp.yaml | 4 + clusters/home/apps/kustomization.yaml | 1 + clusters/home/apps/markdown-vault-mcp.yaml | 21 +++++ clusters/home/namespaces/kustomization.yaml | 1 + 8 files changed, 149 insertions(+) create mode 100644 clusters/base/apps/markdown-vault-mcp/helmrelease.yaml create mode 100644 clusters/base/apps/markdown-vault-mcp/helmrepository.yaml create mode 100644 clusters/base/apps/markdown-vault-mcp/kustomization.yaml create mode 100644 clusters/base/apps/markdown-vault-mcp/secret.enc.yaml create mode 100644 clusters/base/namespaces/mcp.yaml create mode 100644 clusters/home/apps/markdown-vault-mcp.yaml diff --git a/clusters/base/apps/markdown-vault-mcp/helmrelease.yaml b/clusters/base/apps/markdown-vault-mcp/helmrelease.yaml new file mode 100644 index 0000000..891683a --- /dev/null +++ b/clusters/base/apps/markdown-vault-mcp/helmrelease.yaml @@ -0,0 +1,84 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: markdown-vault-mcp + namespace: mcp +spec: + interval: 30m + chartRef: + kind: OCIRepository + name: markdown-vault-mcp + values: + controllers: + app: + containers: + app: + image: + repository: ghcr.io/pvliesdonk/markdown-vault-mcp + tag: latest + env: + MARKDOWN_VAULT_MCP_SOURCE_DIR: /vault + MARKDOWN_VAULT_MCP_INDEX_PATH: /data/state/index.db + MARKDOWN_VAULT_MCP_EMBEDDINGS_PATH: /data/state/embeddings + MARKDOWN_VAULT_MCP_STATE_PATH: /data/state + MARKDOWN_VAULT_MCP_READ_ONLY: "false" + MARKDOWN_VAULT_MCP_BASE_URL: "https://md-vault.mcp.aggtaa.com" + MARKDOWN_VAULT_MCP_BEARER_TOKEN: + valueFrom: + secretKeyRef: + name: markdown-vault-mcp-secrets + key: BEARER_TOKEN + probes: + liveness: + enabled: true + readiness: + enabled: true + resources: + requests: + cpu: 100m + memory: 256Mi + limits: + memory: 1Gi + + service: + app: + controller: app + ports: + http: + port: 8000 + + ingress: + app: + className: traefik + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + hosts: + - host: md-vault.mcp.aggtaa.com + paths: + - path: / + pathType: Prefix + service: + identifier: app + port: http + tls: + - secretName: markdown-vault-mcp-tls + hosts: + - md-vault.mcp.aggtaa.com + + persistence: + vault: + type: persistentVolumeClaim + accessMode: ReadWriteMany + size: 30Gi + storageClass: longhorn + retain: true + globalMounts: + - path: /vault + state: + type: persistentVolumeClaim + accessMode: ReadWriteOnce + size: 2Gi + storageClass: longhorn + retain: true + globalMounts: + - path: /data/state diff --git a/clusters/base/apps/markdown-vault-mcp/helmrepository.yaml b/clusters/base/apps/markdown-vault-mcp/helmrepository.yaml new file mode 100644 index 0000000..8cf0432 --- /dev/null +++ b/clusters/base/apps/markdown-vault-mcp/helmrepository.yaml @@ -0,0 +1,10 @@ +apiVersion: source.toolkit.fluxcd.io/v1 +kind: OCIRepository +metadata: + name: markdown-vault-mcp + namespace: mcp +spec: + interval: 1h + url: oci://ghcr.io/bjw-s-labs/helm/app-template + ref: + tag: "5.0.1" diff --git a/clusters/base/apps/markdown-vault-mcp/kustomization.yaml b/clusters/base/apps/markdown-vault-mcp/kustomization.yaml new file mode 100644 index 0000000..37e8d2e --- /dev/null +++ b/clusters/base/apps/markdown-vault-mcp/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - helmrepository.yaml + - helmrelease.yaml + - secret.enc.yaml diff --git a/clusters/base/apps/markdown-vault-mcp/secret.enc.yaml b/clusters/base/apps/markdown-vault-mcp/secret.enc.yaml new file mode 100644 index 0000000..c3bb35d --- /dev/null +++ b/clusters/base/apps/markdown-vault-mcp/secret.enc.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Secret +metadata: + name: markdown-vault-mcp-secrets + namespace: mcp +stringData: + BEARER_TOKEN: ENC[AES256_GCM,data:+dhi9NACFpK50tglKbvYMbX4L+4DQMwgxIFjJaQEQy3ISMqX3ttsi/xXapKUa93JQV7L/1BHVU+lavi39W4gdQ==,iv:Nnds9N1hQ02jX7LjqBuW+25FdN4DXAzHt8xZXS7TyTc=,tag:L74snWm46Wv9JspmTg75fA==,type:str] +sops: + age: + - enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuNHk2eGVOb3N0NEZzcFNP + cDFySjgzaS9JVmVYTVhHTmRGdjdoY3I1dGo4CnNZMTMvZjRnbXhTRzBIUWtyaFRo + OWN3V2hvMlNVakJrd2MvSy9xT0d4bUkKLS0tIElreW1hM2Y0WDVkUHQ0M0E1RVEy + ekFkdEVhQmw5RE1hN1VhZTh5T0RwQU0KLAM4mRrj0jhWisGMp5A9FI4Js20YIifF + lieCHOzMkD1alrwS/HGuXho8UpSCdXgS5A2m0fLo9rXw+vo6cUEuAA== + -----END AGE ENCRYPTED FILE----- + recipient: age14x4jjs2fwdgw28g2pkr6jyj2yzmwc544xwmaaglrxwz5e99seutqtr8jv5 + encrypted_regex: ^(data|stringData)$ + lastmodified: "2026-07-26T17:40:02Z" + mac: ENC[AES256_GCM,data:UQgiaBGslKNIbg1nJhqBygreonl4OsE93cxVycrETTDjuT+Q7NeiA7Dm7h9TrluHffU8cGgjplkDZqPSBl4y1HYD/Y9T+/Hssz2lJ0p7U5Ut2O5TadSfr8hRhhdvZuOfRg2bn0MYRbpfgEf+NJd8XkO/IdCFQ2k9okLe+1H2kac=,iv:G9H5/jZ5YgfJnNe87UBAuMgITb6ThQSWt+FNlINUZuY=,tag:8OC4C7G4Wa3OKrHkErjDfw==,type:str] + version: 3.13.2 diff --git a/clusters/base/namespaces/mcp.yaml b/clusters/base/namespaces/mcp.yaml new file mode 100644 index 0000000..4c5793d --- /dev/null +++ b/clusters/base/namespaces/mcp.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: mcp diff --git a/clusters/home/apps/kustomization.yaml b/clusters/home/apps/kustomization.yaml index e1c81e8..d7b1140 100644 --- a/clusters/home/apps/kustomization.yaml +++ b/clusters/home/apps/kustomization.yaml @@ -8,3 +8,4 @@ resources: - mosquitto.yaml - homeassistant.yaml - openwebui.yaml + - markdown-vault-mcp.yaml diff --git a/clusters/home/apps/markdown-vault-mcp.yaml b/clusters/home/apps/markdown-vault-mcp.yaml new file mode 100644 index 0000000..a760652 --- /dev/null +++ b/clusters/home/apps/markdown-vault-mcp.yaml @@ -0,0 +1,21 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: markdown-vault-mcp + namespace: flux-system +spec: + interval: 10m + sourceRef: + kind: GitRepository + name: flux-system + path: ./clusters/base/apps/markdown-vault-mcp + prune: true + wait: true + dependsOn: + - name: namespaces + - name: infra + retryInterval: 5s + decryption: + provider: sops + secretRef: + name: sops-age diff --git a/clusters/home/namespaces/kustomization.yaml b/clusters/home/namespaces/kustomization.yaml index fffe869..a876ab5 100644 --- a/clusters/home/namespaces/kustomization.yaml +++ b/clusters/home/namespaces/kustomization.yaml @@ -10,3 +10,4 @@ resources: - ../../base/namespaces/mqtt.yaml - ../../base/namespaces/homeassistant.yaml - ../../base/namespaces/ai.yaml + - ../../base/namespaces/mcp.yaml