diff --git a/charts/gohoarder/Chart.yaml b/charts/gohoarder/Chart.yaml index 03fecdd..c2ee078 100644 --- a/charts/gohoarder/Chart.yaml +++ b/charts/gohoarder/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v2 name: gohoarder description: A universal package cache proxy supporting npm, PyPI, and Go modules with security scanning type: application -version: 0.1.9 -appVersion: "0.1.9" +version: 0.1.10 +appVersion: "0.1.10" keywords: - package-manager - cache diff --git a/charts/gohoarder/templates/_helpers.tpl b/charts/gohoarder/templates/_helpers.tpl index b3232b5..859f65a 100644 --- a/charts/gohoarder/templates/_helpers.tpl +++ b/charts/gohoarder/templates/_helpers.tpl @@ -172,3 +172,17 @@ Trivy cache volume configuration emptyDir: {} {{- end }} {{- end }} + +{{/* +Validate SQLite configuration - SQLite cannot be used with SMB/NFS network storage +*/}} +{{- define "gohoarder.validateSQLiteConfig" -}} +{{- if eq .Values.metadata.backend "sqlite" }} + {{- if .Values.metadata.sqlite.persistence.enabled }} + {{- $storageClass := .Values.metadata.sqlite.persistence.storageClass | default .Values.storage.storageClass }} + {{- if or (contains "smb" ($storageClass | lower)) (contains "cifs" ($storageClass | lower)) (contains "nfs" ($storageClass | lower)) }} + {{- fail "\n\n❌ ERROR: SQLite cannot be used with SMB/CIFS/NFS network storage!\n\nSQLite requires POSIX file locking which is not reliably supported over network filesystems.\nThis will cause 'database is locked' errors and data corruption.\n\nPlease choose ONE of the following solutions:\n\n1. Use PostgreSQL for network storage (RECOMMENDED for production):\n metadata:\n backend: postgresql\n postgresql:\n host: your-postgres-host\n ...\n\n2. Use local storage for SQLite (OK for development):\n metadata:\n sqlite:\n persistence:\n enabled: true\n storageClass: local-path # or another local storage class\n\n3. Disable persistence (data will be lost on pod restart):\n metadata:\n sqlite:\n persistence:\n enabled: false\n\nFor more information, see: https://www.sqlite.org/lockingv3.html\n" }} + {{- end }} + {{- end }} +{{- end }} +{{- end }} diff --git a/charts/gohoarder/templates/deployment-scanner.yaml b/charts/gohoarder/templates/deployment-scanner.yaml index c1182f1..d0fbe92 100644 --- a/charts/gohoarder/templates/deployment-scanner.yaml +++ b/charts/gohoarder/templates/deployment-scanner.yaml @@ -1,4 +1,5 @@ {{- if .Values.security.enabled }} +{{- include "gohoarder.validateSQLiteConfig" . }} apiVersion: apps/v1 kind: Deployment metadata: diff --git a/charts/gohoarder/templates/deployment-server.yaml b/charts/gohoarder/templates/deployment-server.yaml index 9bbd6d4..92dd164 100644 --- a/charts/gohoarder/templates/deployment-server.yaml +++ b/charts/gohoarder/templates/deployment-server.yaml @@ -1,3 +1,4 @@ +{{- include "gohoarder.validateSQLiteConfig" . }} apiVersion: apps/v1 kind: Deployment metadata: diff --git a/charts/gohoarder/values.yaml b/charts/gohoarder/values.yaml index 945f035..c3431ba 100644 --- a/charts/gohoarder/values.yaml +++ b/charts/gohoarder/values.yaml @@ -51,17 +51,17 @@ image: server: repository: ghcr.io/lukaszraczylo/gohoarder-server pullPolicy: IfNotPresent - tag: "0.1.9" + tag: "0.1.10" frontend: repository: ghcr.io/lukaszraczylo/gohoarder-frontend pullPolicy: IfNotPresent - tag: "0.1.9" + tag: "0.1.10" scanner: repository: ghcr.io/lukaszraczylo/gohoarder-scanner pullPolicy: IfNotPresent - tag: "0.1.9" + tag: "0.1.10" # Service Account serviceAccount: @@ -273,15 +273,30 @@ storage: # Metadata storage configuration metadata: # Backend: sqlite, postgresql - # For multiple server replicas: postgresql is recommended (sqlite has concurrency limitations) + # + # IMPORTANT: SQLite CANNOT be used with SMB/CIFS/NFS network storage! + # SQLite requires POSIX file locking which causes "database is locked" errors on network filesystems. + # + # Choose your configuration: + # 1. SQLite with local storage (development/single-node only) + # - Set backend: sqlite + # - Set sqlite.persistence.storageClass to a LOCAL storage class (e.g., "local-path") + # - OR set sqlite.persistence.enabled: false to use emptyDir (data lost on pod restart) + # + # 2. PostgreSQL with any storage (RECOMMENDED for production) + # - Set backend: postgresql + # - Configure postgresql settings below + # backend: "sqlite" # SQLite configuration + # WARNING: Do NOT use SMB/CIFS/NFS storage classes with SQLite! sqlite: # Use PVC for SQLite database + # IMPORTANT: storageClass must be LOCAL storage, NOT network storage (smb/nfs) persistence: - enabled: true - storageClass: "" + enabled: false # Changed to false by default - use emptyDir unless you have local storage + storageClass: "" # Must be local-path or similar LOCAL storage class if enabled size: "10Gi" accessMode: "ReadWriteOnce" existingClaim: "" diff --git a/charts/packages/gohoarder-0.1.10.tgz b/charts/packages/gohoarder-0.1.10.tgz new file mode 100644 index 0000000..1bc0f19 Binary files /dev/null and b/charts/packages/gohoarder-0.1.10.tgz differ diff --git a/index.yaml b/index.yaml index 7f5c50c..4fc187a 100644 --- a/index.yaml +++ b/index.yaml @@ -1,6 +1,33 @@ apiVersion: v1 entries: gohoarder: + - apiVersion: v2 + appVersion: 0.1.10 + created: "2026-01-03T12:36:54.68991809Z" + description: A universal package cache proxy supporting npm, PyPI, and Go modules + with security scanning + digest: f94ed8ee010e9c084057a7b3b8667c6b005cf8287731813bc40b1b83bd922e1c + home: https://github.com/lukaszraczylo/gohoarder + icon: https://raw.githubusercontent.com/lukaszraczylo/gohoarder/main/docs/logo.png + keywords: + - package-manager + - cache + - proxy + - npm + - pypi + - go-modules + - security + - vulnerability-scanning + maintainers: + - email: lukasz@raczylo.com + name: Lukasz Raczylo + name: gohoarder + sources: + - https://github.com/lukaszraczylo/gohoarder + type: application + urls: + - https://github.com/lukaszraczylo/helm-charts/releases/download/gohoarder-0.1.10/gohoarder-0.1.10.tgz + version: 0.1.10 - apiVersion: v2 appVersion: 0.1.9 created: "2026-01-03T09:31:37.813665456Z" @@ -1759,4 +1786,4 @@ entries: urls: - https://github.com/lukaszraczylo/helm-charts/releases/download/kubemirror-0.2.8/kubemirror-0.2.8.tgz version: 0.2.8 -generated: "2026-01-03T09:31:37.812222131Z" +generated: "2026-01-03T12:36:54.688487556Z"