Refactor paperless-ai Helm chart for improved configuration
Some checks failed
Build Helm Chart / helm-package (push) Failing after 3s
Some checks failed
Build Helm Chart / helm-package (push) Failing after 3s
This update substantially refactors the paperless-ai Helm chart. Key changes include: - Complete removal of outdated files: `.helmignore`, `LICENSE`, `README.adoc`, and several template files like `configfileConfigmap.yaml`, `configmap.yaml`, `dataPvc.yaml`, `envfileSecret.yaml`, `openAiApiSecret.yaml`, `paperlessApiSecret.yaml`, and others. - Introduction of a new Persistent Volume Claim configuration in `pvc.yaml` to simplify storage management. - Significant updates to `Chart.yaml` for better metadata, including a new maintainer and project description in German. - Enhancements to the main deployment template in `deployment.yaml`, focusing on clarity and proper utilization of Kubernetes security contexts, environment variables, and container properties. - Updated service definitions in `service.yaml` with better labels and service properties. - Refined the `ingress.yaml` to improve external service access management, including annotations for potential customization. These changes were implemented to modernize the Helm chart based on the current best practices, improve user experience, and set a foundation for future enhancements. There are no breaking changes to the existing user configurations.
This commit is contained in:
@ -1,73 +1,60 @@
|
||||
# Default values for paperless-ai.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
# This will set the replicaset count more information can be found here: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
|
||||
# Please keep this value to 1, while many instances running a crontab could lead to unknown results.
|
||||
replicaCount: 1
|
||||
|
||||
# This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/
|
||||
image:
|
||||
repository: clusterzx/paperless-ai
|
||||
# This sets the pull policy for images.
|
||||
pullPolicy: IfNotPresent
|
||||
# Overrides the image tag whose default is the chart appVersion.
|
||||
# Use latest or nightly to be up2date.
|
||||
tag: ""
|
||||
|
||||
# This is for the secretes for pulling an image from a private repository more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||
imagePullSecrets: []
|
||||
# This is to override the chart name.
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
# This is for setting Kubernetes Annotations to a Pod.
|
||||
# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
|
||||
podAnnotations: {}
|
||||
# This is for setting Kubernetes Labels to a Pod.
|
||||
# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
|
||||
podLabels: {}
|
||||
|
||||
podSecurityContext: {}
|
||||
# fsGroup: 2000
|
||||
|
||||
securityContext: {}
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# readOnlyRootFilesystem: true
|
||||
# runAsNonRoot: true
|
||||
# runAsUser: 1000
|
||||
|
||||
# This is for setting up a service more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/
|
||||
service:
|
||||
# This sets the service type more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
|
||||
type: ClusterIP
|
||||
# This sets the ports more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports
|
||||
port: 3000
|
||||
|
||||
# This block is for setting up the ingress for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/ingress/
|
||||
ingress:
|
||||
enabled: false
|
||||
className: ""
|
||||
serviceAccount:
|
||||
create: true
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
hosts:
|
||||
- host: chart-example.local
|
||||
paths:
|
||||
- path: /
|
||||
pathType: ImplementationSpecific
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
# - chart-example.local
|
||||
name: ""
|
||||
|
||||
resources: {}
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 30000
|
||||
targetPort: 30000
|
||||
|
||||
env:
|
||||
PUID: 1027
|
||||
PGID: 100
|
||||
PAPERLESS_AI_PORT: 30000
|
||||
|
||||
# Konfiguration für persistente Speicherung (Persistent Volume Claim).
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClassName: ""
|
||||
accessMode: ReadWriteOnce
|
||||
size: 1Gi
|
||||
|
||||
# Sicherheitskontext-Einstellungen für Pod und Container.
|
||||
securityContext:
|
||||
enabled: true
|
||||
pod:
|
||||
runAsUser: 1027
|
||||
runAsGroup: 100
|
||||
fsGroup: 100
|
||||
container:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
|
||||
# Konfiguration für Horizontal Pod Autoscaling (HPA).
|
||||
autoscaling:
|
||||
enabled: false
|
||||
minReplicas: 1
|
||||
maxReplicas: 10
|
||||
targetCPUUtilizationPercentage: 80
|
||||
|
||||
# Ressourcenanforderungen und -limits für den Container.
|
||||
resources:
|
||||
{}
|
||||
# Wir empfehlen in der Regel, keine Standardressourcen anzugeben und dies
|
||||
# dem Benutzer zu überlassen. Dies erhöht auch die Chancen, dass Charts
|
||||
# in Umgebungen mit geringen Ressourcen, wie Minikube, laufen.
|
||||
# Wenn du Ressourcen angeben möchtest, kommentiere die folgenden Zeilen aus,
|
||||
# passe sie bei Bedarf an und entferne die geschweiften Klammern nach 'resources:'.
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
@ -75,78 +62,26 @@ resources: {}
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
# This is to setup the liveness and readiness probes more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 90
|
||||
httpGet:
|
||||
path: /
|
||||
# path: /health
|
||||
port: http
|
||||
readinessProbe:
|
||||
initialDelaySeconds: 90
|
||||
httpGet:
|
||||
path: /
|
||||
# path: /health
|
||||
port: http
|
||||
|
||||
# paperless-ai config
|
||||
paperless:
|
||||
apiUrl: "http://paperless-ngx:8000"
|
||||
apiToken:
|
||||
|
||||
ai:
|
||||
provider: "openai"
|
||||
addProcessedTag: yes
|
||||
processedTagName: ai-processed
|
||||
|
||||
prompt:
|
||||
useTags: yes
|
||||
tags: Rechnung,Kontoauszug,Vertrag,Arbeitgeber
|
||||
|
||||
openAi:
|
||||
apiKey:
|
||||
model: "gpt-4o-mini"
|
||||
|
||||
ollama:
|
||||
apiUrl: ""
|
||||
model: ""
|
||||
|
||||
scanInterval: "*/30 * * * *"
|
||||
|
||||
systemPrompt: |-
|
||||
Return the result EXCLUSIVELY as a JSON object. The Tags and Title MUST be in the language that is used in the document.:
|
||||
|
||||
{
|
||||
"title": "xxxxx",
|
||||
"correspondent": "xxxxxxxx",
|
||||
"tags": ["Tag1", "Tag2", "Tag3", "Tag4"],
|
||||
"document_date": "YYYY-MM-DD",
|
||||
"language": "en/de/es/..."
|
||||
}
|
||||
processPredefinedDocuments: "no"
|
||||
tags: "indexed,indexed2"
|
||||
|
||||
# additional envs, if neccessary
|
||||
envs: []
|
||||
# - name: CONFIG_PATH
|
||||
# value: "/app/config"
|
||||
|
||||
# Node-Selector für die Pod-Platzierung.
|
||||
nodeSelector: {}
|
||||
|
||||
# Toleranzen für die Pod-Platzierung auf Tainted Nodes.
|
||||
tolerations: []
|
||||
|
||||
# Affinitätsregeln für die Pod-Platzierung.
|
||||
affinity: {}
|
||||
|
||||
# persistence volumes needed for configuration and processing data directory
|
||||
persistence:
|
||||
config:
|
||||
mountPath: "/app/config/config.js"
|
||||
subPath: "config.js"
|
||||
envfile:
|
||||
mountPath: "app/.env"
|
||||
subPath: ".env"
|
||||
data:
|
||||
enabled: true
|
||||
size: 1Gi
|
||||
storageClass: standard
|
||||
mountPath: "/app/data"
|
||||
# Ingress-Konfiguration (optional, aber üblich für Webanwendungen).
|
||||
ingress:
|
||||
enabled: false
|
||||
className: "" # Der Ingress-Klassenname (z.B. nginx, traefik).
|
||||
annotations: {}
|
||||
hosts:
|
||||
- host: chart-example.local # Beispiel-Hostname.
|
||||
paths:
|
||||
- path: / # Der Pfad, der weitergeleitet werden soll.
|
||||
pathType: ImplementationSpecific # Der Typ des Pfades (Prefix, Exact, ImplementationSpecific).
|
||||
tls: [] # TLS-Konfiguration für den Ingress.
|
||||
# - secretName: chart-example-tls # Name des Secrets, das das TLS-Zertifikat enthält.
|
||||
# hosts:
|
||||
# - chart-example.local # Hostnamen, für die das Zertifikat gültig ist.
|
||||
|
Reference in New Issue
Block a user