From fe9afb33155041cccda5960ebcc2b52d2072f4fa Mon Sep 17 00:00:00 2001 From: Alex Lebens Date: Sun, 27 Jul 2025 19:35:01 -0500 Subject: [PATCH] migrate karakeep --- .../{hoarder => karakeep}/Chart.yaml | 7 ++-- .../templates/external-secret.yaml | 13 ++++-- .../templates/object-bucket-claim.yaml | 11 +++++ .../templates/replication-source.yaml | 8 ++-- .../karakeep/templates/service-monitor.yaml | 23 +++++++++++ .../{hoarder => karakeep}/values.yaml | 41 +++++++++++++++---- 6 files changed, 84 insertions(+), 19 deletions(-) rename clusters/cl01tl/applications/{hoarder => karakeep}/Chart.yaml (94%) rename clusters/cl01tl/applications/{hoarder => karakeep}/templates/external-secret.yaml (91%) create mode 100644 clusters/cl01tl/applications/karakeep/templates/object-bucket-claim.yaml rename clusters/cl01tl/applications/{hoarder => karakeep}/templates/replication-source.yaml (75%) create mode 100644 clusters/cl01tl/applications/karakeep/templates/service-monitor.yaml rename clusters/cl01tl/applications/{hoarder => karakeep}/values.yaml (72%) diff --git a/clusters/cl01tl/applications/hoarder/Chart.yaml b/clusters/cl01tl/applications/karakeep/Chart.yaml similarity index 94% rename from clusters/cl01tl/applications/hoarder/Chart.yaml rename to clusters/cl01tl/applications/karakeep/Chart.yaml index 045641a81..243cbd9d5 100644 --- a/clusters/cl01tl/applications/hoarder/Chart.yaml +++ b/clusters/cl01tl/applications/karakeep/Chart.yaml @@ -1,9 +1,8 @@ apiVersion: v2 -name: hoarder +name: karakeep version: 1.0.0 description: Karakeep keywords: - - hoarder - karakeep - bookmarks home: https://wiki.alexlebens.dev/s/f8177591-8253-4e21-82d5-a556f0aeafad @@ -19,7 +18,7 @@ maintainers: - name: alexlebens dependencies: - name: app-template - alias: hoarder + alias: karakeep repository: https://bjw-s-labs.github.io/helm-charts/ version: 4.1.2 - name: meilisearch @@ -30,4 +29,4 @@ dependencies: repository: oci://harbor.alexlebens.net/helm-charts version: 1.18.0 icon: https://cdn.jsdelivr.net/gh/selfhst/icons/webp/karakeep.webp -appVersion: 0.24.1 +appVersion: 0.26.0 diff --git a/clusters/cl01tl/applications/hoarder/templates/external-secret.yaml b/clusters/cl01tl/applications/karakeep/templates/external-secret.yaml similarity index 91% rename from clusters/cl01tl/applications/hoarder/templates/external-secret.yaml rename to clusters/cl01tl/applications/karakeep/templates/external-secret.yaml index 63a36b742..1bbd55b9a 100644 --- a/clusters/cl01tl/applications/hoarder/templates/external-secret.yaml +++ b/clusters/cl01tl/applications/karakeep/templates/external-secret.yaml @@ -19,6 +19,13 @@ spec: key: /cl01tl/karakeep/key metadataPolicy: None property: key + - secretKey: prometheus-token + remoteRef: + conversionStrategy: Default + decodingStrategy: None + key: /cl01tl/karakeep/prometheus-token + metadataPolicy: None + property: key --- apiVersion: external-secrets.io/v1 @@ -100,10 +107,10 @@ spec: apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: - name: hoarder-data-backup-secret + name: karakeep-data-backup-secret namespace: {{ .Release.Namespace }} labels: - app.kubernetes.io/name: hoarder-data-backup-secret + app.kubernetes.io/name: karakeep-data-backup-secret app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }} spec: @@ -115,7 +122,7 @@ spec: mergePolicy: Merge engineVersion: v2 data: - RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/hoarder/hoarder-data" + RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/karakeep/karakeep-data" data: - secretKey: BUCKET_ENDPOINT remoteRef: diff --git a/clusters/cl01tl/applications/karakeep/templates/object-bucket-claim.yaml b/clusters/cl01tl/applications/karakeep/templates/object-bucket-claim.yaml new file mode 100644 index 000000000..49c161a5b --- /dev/null +++ b/clusters/cl01tl/applications/karakeep/templates/object-bucket-claim.yaml @@ -0,0 +1,11 @@ +apiVersion: objectbucket.io/v1alpha1 +kind: ObjectBucketClaim +metadata: + name: ceph-bucket-karakeep + labels: + app.kubernetes.io/name: ceph-bucket-karakeep + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + generateBucketName: bucket-karakeep + storageClassName: ceph-bucket diff --git a/clusters/cl01tl/applications/hoarder/templates/replication-source.yaml b/clusters/cl01tl/applications/karakeep/templates/replication-source.yaml similarity index 75% rename from clusters/cl01tl/applications/hoarder/templates/replication-source.yaml rename to clusters/cl01tl/applications/karakeep/templates/replication-source.yaml index f8e9b1554..738dff236 100644 --- a/clusters/cl01tl/applications/hoarder/templates/replication-source.yaml +++ b/clusters/cl01tl/applications/karakeep/templates/replication-source.yaml @@ -1,19 +1,19 @@ apiVersion: volsync.backube/v1alpha1 kind: ReplicationSource metadata: - name: hoarder-data-backup-source + name: karakeep-data-backup-source namespace: {{ .Release.Namespace }} labels: - app.kubernetes.io/name: hoarder-data-backup-source + app.kubernetes.io/name: karakeep-data-backup-source app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/part-of: {{ .Release.Name }} spec: - sourcePVC: hoarder-data + sourcePVC: karakeep-data trigger: schedule: 0 4 * * * restic: pruneIntervalDays: 7 - repository: hoarder-data-backup-secret + repository: karakeep-data-backup-secret retain: hourly: 1 daily: 3 diff --git a/clusters/cl01tl/applications/karakeep/templates/service-monitor.yaml b/clusters/cl01tl/applications/karakeep/templates/service-monitor.yaml new file mode 100644 index 000000000..d5a9f353c --- /dev/null +++ b/clusters/cl01tl/applications/karakeep/templates/service-monitor.yaml @@ -0,0 +1,23 @@ +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: karakeep + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: karakeep + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/part-of: {{ .Release.Name }} +spec: + endpoints: + - port: http + interval: 30s + scrapeTimeout: 15s + path: /api/metrics + authorization: + credentials: + key: prometheus-token + name: karakeep-key-secret + selector: + matchLabels: + app.kubernetes.io/name: karakeep + app.kubernetes.io/instance: {{ .Release.Name }} diff --git a/clusters/cl01tl/applications/hoarder/values.yaml b/clusters/cl01tl/applications/karakeep/values.yaml similarity index 72% rename from clusters/cl01tl/applications/hoarder/values.yaml rename to clusters/cl01tl/applications/karakeep/values.yaml index 4bbd87692..758a7b583 100644 --- a/clusters/cl01tl/applications/hoarder/values.yaml +++ b/clusters/cl01tl/applications/karakeep/values.yaml @@ -1,4 +1,4 @@ -hoarder: +karakeep: controllers: main: type: deployment @@ -9,7 +9,7 @@ hoarder: main: image: repository: ghcr.io/karakeep-app/karakeep - tag: 0.25.0 + tag: 0.26.0 pullPolicy: IfNotPresent env: - name: DATA_DIR @@ -21,15 +21,41 @@ hoarder: secretKeyRef: name: karakeep-key-secret key: key + - name: PROMETHEUS_AUTH_TOKEN + valueFrom: + secretKeyRef: + name: karakeep-key-secret + key: prometheus-token + - name: ASSET_STORE_S3_ENDPOINT + value: http://rook-ceph-rgw-ceph-objectstore.rook-ceph.svc:80 + - name: ASSET_STORE_S3_REGION + value: us-east-1 + - name: ASSET_STORE_S3_BUCKET + valueFrom: + secretKeyRef: + name: ceph-bucket-karakeep + key: BUCKET_NAME + - name: ASSET_STORE_S3_ACCESS_KEY_ID + valueFrom: + secretKeyRef: + name: ceph-bucket-karakeep + key: AWS_ACCESS_KEY_ID + - name: ASSET_STORE_S3_SECRET_ACCESS_KEY + valueFrom: + secretKeyRef: + name: ceph-bucket-karakeep + key: AWS_SECRET_ACCESS_KEY + - name: ASSET_STORE_S3_FORCE_PATH_STYLE + value: true - name: MEILI_ADDR - value: http://hoarder-meilisearch.hoarder:7700 + value: http://karakeep-meilisearch.karakeep:7700 - name: MEILI_MASTER_KEY valueFrom: secretKeyRef: name: karakeep-meilisearch-master-key-secret key: MEILI_MASTER_KEY - name: BROWSER_WEB_URL - value: http://hoarder.hoarder:9222 + value: http://karakeep.karakeep:9222 - name: DISABLE_SIGNUPS value: false - name: OAUTH_PROVIDER_NAME @@ -49,13 +75,13 @@ hoarder: name: karakeep-oidc-secret key: AUTHENTIK_CLIENT_SECRET - name: OLLAMA_BASE_URL - value: http://ollama-server-1.ollama:11434 + value: http://ollama-server-3.ollama:11434 - name: OLLAMA_KEEP_ALIVE value: 5m - name: INFERENCE_TEXT_MODEL - value: llama3.1:8b + value: gemma3:4b - name: INFERENCE_IMAGE_MODEL - value: llama3.2-vision:11b + value: granite3.2-vision:2b - name: EMBEDDING_TEXT_MODEL value: mxbai-embed-large - name: INFERENCE_JOB_TIMEOUT_SEC @@ -94,7 +120,6 @@ hoarder: protocol: HTTP persistence: data: - forceRename: hoarder-data storageClass: ceph-block accessMode: ReadWriteOnce size: 10Gi