From 71de2d574c2f69053b7e99b315e0fc5347bf4b0c Mon Sep 17 00:00:00 2001 From: Sense T Date: Tue, 2 Jun 2026 14:25:57 +0000 Subject: [PATCH] =?UTF-8?q?engram=20=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + engram-backup/cronjob.yaml | 68 ++++++++++++++++++++++++++++++++ engram-backup/kustomization.yaml | 23 +++++++++++ 3 files changed, 92 insertions(+) create mode 100644 engram-backup/cronjob.yaml create mode 100644 engram-backup/kustomization.yaml diff --git a/.gitignore b/.gitignore index 39a5f27..d8b6a6a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ **/config/* +**/secrets/* values.user.yaml charts \ No newline at end of file diff --git a/engram-backup/cronjob.yaml b/engram-backup/cronjob.yaml new file mode 100644 index 0000000..d219ed4 --- /dev/null +++ b/engram-backup/cronjob.yaml @@ -0,0 +1,68 @@ +apiVersion: batch/v1 +kind: CronJob +metadata: + name: engram-backup + labels: + app: engram-backup +spec: + schedule: "0 0 * * *" + timeZone: "Asia/Shanghai" + concurrencyPolicy: Forbid + startingDeadlineSeconds: 300 + successfulJobsHistoryLimit: 1 + failedJobsHistoryLimit: 3 + suspend: false + jobTemplate: + spec: + backoffLimit: 2 + activeDeadlineSeconds: 1800 + ttlSecondsAfterFinished: 86400 + template: + metadata: + labels: + app: engram-backup + spec: + restartPolicy: OnFailure + initContainers: + - name: backup + image: engram + env: + - name: ENGRAM_DATA_DIR + value: /engram-data + volumeMounts: + - name: tmp + mountPath: /tmp + - name: engram-data + mountPath: /engram-data + command: + - /bin/sh + args: + - -c + - 'export DATE=$(date +%Y/%m/%d) && mkdir -p /tmp/engram/$DATE && engram export "/tmp/engram/$DATE/engram-data.json" && gzip /tmp/engram/$DATE/engram-data.json' + securityContext: + runAsUser: 0 + containers: + - name: upload + image: aws + imagePullPolicy: IfNotPresent + envFrom: + - secretRef: + name: backup-env + - configMapRef: + name: backup-env + args: + - s3 + - sync + - "./engram" + - "s3://senset-backups/engram-backup" + volumeMounts: + - name: tmp + mountPath: /aws + readOnly: true + volumes: + - name: tmp + emptyDir: {} + - name: engram-data + hostPath: + path: /data/engram + type: Directory diff --git a/engram-backup/kustomization.yaml b/engram-backup/kustomization.yaml new file mode 100644 index 0000000..35178f5 --- /dev/null +++ b/engram-backup/kustomization.yaml @@ -0,0 +1,23 @@ +# yaml-language-server: $schema=https://json.schemastore.org/kustomization.json +kind: Kustomization +namespace: mcp +resources: +- cronjob.yaml +images: +- name: engram + newName: ghcr.io/gentleman-programming/engram + newTag: v1.16.1 +- name: aws + newName: cr.wetofu.me/amazon/aws-cli + newTag: '2.34.57' +secretGenerator: +- name: backup-env + type: Opaque + files: + - secrets/AWS_ACCESS_KEY_ID + - secrets/AWS_SECRET_ACCESS_KEY +configMapGenerator: +- name: backup-env + files: + - config/AWS_REGION + - config/AWS_ENDPOINT_URL_S3 \ No newline at end of file