Compare commits
119 Commits
1a65dec4d5
...
main
Author | SHA1 | Date | |
---|---|---|---|
a5a977cb5f | |||
62c8e8b9c1 | |||
2527c8668c | |||
c2937e2437 | |||
6d714483ff | |||
9c999158ec | |||
6d0764947b | |||
199ceeddf8 | |||
f9df49ddd1 | |||
601bde7463 | |||
a9f09a3a29 | |||
ef155f7733 | |||
a120d34f40 | |||
1672020396 | |||
0eee0e7455 | |||
a5fc085ab9 | |||
ba732eb734 | |||
c18b5c7514 | |||
f3fbaf942e | |||
8b3e5d2cc7 | |||
1d7c89f32c | |||
a52dc5a34b | |||
f034f58c5f | |||
179f4f022d | |||
66e03103a9 | |||
7156f97617 | |||
4fa27126ef | |||
d4351617e2 | |||
319a404d87 | |||
a73b48c7d2 | |||
39c026abd8 | |||
4e16ddafa2 | |||
88a0c10498 | |||
17c340fcef | |||
3cec5cb5c1 | |||
f33fabf492 | |||
e67ba5537f | |||
e2d449051e | |||
9748f7668d | |||
08be643c91 | |||
c822ec79b1 | |||
7e06f43c5e | |||
b300e85847 | |||
b46d32a9df | |||
afdc089b01 | |||
8f0929119b | |||
786a5f3b97 | |||
375e401024 | |||
ff87aaa3a6 | |||
e968d4fe66 | |||
4bbd8a8fc9 | |||
1887a59226 | |||
9d30557cdc | |||
64c4afda35 | |||
531a2d9f97 | |||
e3d520d878 | |||
de579f43c3 | |||
56d539157f | |||
19658e7deb | |||
99ad6bd7cc | |||
9a992b12ea | |||
ac922fe4a0 | |||
886cf72eb3 | |||
2a262ba943 | |||
dc5c502e13 | |||
5498850d01 | |||
6714632232 | |||
03095b2f5c | |||
7b39281caf | |||
d46d1c0fbb | |||
82808a0df3 | |||
6f2c3cf6a1 | |||
38fc2b483a | |||
50f40a9729 | |||
2b2605ce0e | |||
021b57c878 | |||
bbe808fc26 | |||
d1c417eb08 | |||
6c2ba47264 | |||
f32622ead4 | |||
275a4eb6d8 | |||
e3d6c809a7 | |||
814028266b | |||
185e3515a1 | |||
482a0743a7 | |||
80c697e821 | |||
dbc98eef5d | |||
47609ebe39 | |||
cceb234055 | |||
a86280ba2c | |||
04c7983773 | |||
d70fc19889 | |||
69f6db4b7a | |||
132da10297 | |||
834fd2b584 | |||
aa76e07c64 | |||
1b1bd7974e | |||
277f2d5b00 | |||
40c947139c | |||
a1cf3b5ef9 | |||
b2daa948f9 | |||
163f19382f | |||
7b6aea1222 | |||
2a947a8e8d | |||
44d2f26075 | |||
b199b53b84 | |||
0919f07efd | |||
df63414f6f | |||
29aebbd14d | |||
161237d5ff | |||
9c1ddb8a8b | |||
61da0d50d0 | |||
5489c21f04 | |||
da4b1d9a42 | |||
a2c3a985bd | |||
4a8694922d | |||
d143a941f4 | |||
a104563b97 | |||
76b1b975d4 |
@ -28,8 +28,9 @@ jobs:
|
||||
|
||||
- name: Setup Helm
|
||||
run: |
|
||||
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
||||
helm version
|
||||
#curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
||||
curl -kSso /usr/local/bin/helm https://debmirror.cooltux.net/helm-v3.18.3 && chmod +x /usr/local/bin/helm
|
||||
helm version
|
||||
|
||||
- name: Package Helm Chart
|
||||
run: |
|
||||
|
@ -28,8 +28,9 @@ jobs:
|
||||
|
||||
- name: Setup Helm
|
||||
run: |
|
||||
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
||||
helm version
|
||||
#curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
||||
curl -kSso /usr/local/bin/helm https://debmirror.cooltux.net/helm-v3.18.3 && chmod +x /usr/local/bin/helm
|
||||
helm version
|
||||
|
||||
- name: Package Helm Chart
|
||||
run: |
|
||||
|
43
.gitea/workflows/build-chart-excalidraw.yml
Normal file
43
.gitea/workflows/build-chart-excalidraw.yml
Normal file
@ -0,0 +1,43 @@
|
||||
name: "Build Helm Chart"
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- "charts/excalidraw/Chart.yaml"
|
||||
|
||||
jobs:
|
||||
helm-package:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
APP: charts/excalidraw
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set Helm Chart App Name and Version
|
||||
id: get_version
|
||||
run: |
|
||||
APP_NAME=$(grep -oP '(?<=^name: ).*' ${{ env.APP }}/Chart.yaml)
|
||||
echo "Helm Chart App Name: $APP_NAME"
|
||||
echo "::set-output name=app::$APP_NAME"
|
||||
|
||||
CHART_VERSION=$(grep -oP '(?<=^version: ).*' ${{ env.APP }}/Chart.yaml)
|
||||
echo "Helm Chart version: $CHART_VERSION"
|
||||
echo "::set-output name=tag::$CHART_VERSION"
|
||||
|
||||
- name: Setup Helm
|
||||
run: |
|
||||
#curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
||||
curl -kSso /usr/local/bin/helm https://debmirror.cooltux.net/helm-v3.18.3 && chmod +x /usr/local/bin/helm
|
||||
helm version
|
||||
|
||||
- name: Package Helm Chart
|
||||
run: |
|
||||
helm dependency update ${{ env.APP }}
|
||||
helm lint ${{ env.APP }}
|
||||
helm package ${{ env.APP }}
|
||||
|
||||
- name: Upload Helm Package to repo
|
||||
run: |
|
||||
curl --user ${{ secrets.USER }}:${{ secrets.TOKEN }} -X POST --upload-file ./${{ steps.get_version.outputs.app }}-${{ steps.get_version.outputs.tag }}.tgz ${{ vars.HELMREGISTRY }}/api/packages/${{ vars.OWNER }}/helm/api/charts
|
43
.gitea/workflows/build-chart-paperless-ai.yml
Normal file
43
.gitea/workflows/build-chart-paperless-ai.yml
Normal file
@ -0,0 +1,43 @@
|
||||
name: "Build Helm Chart"
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- "charts/paperless-ai/Chart.yaml"
|
||||
|
||||
jobs:
|
||||
helm-package:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
APP: charts/paperless-ai
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set Helm Chart App Name and Version
|
||||
id: get_version
|
||||
run: |
|
||||
APP_NAME=$(grep -oP '(?<=^name: ).*' ${{ env.APP }}/Chart.yaml)
|
||||
echo "Helm Chart App Name: $APP_NAME"
|
||||
echo "::set-output name=app::$APP_NAME"
|
||||
|
||||
CHART_VERSION=$(grep -oP '(?<=^version: ).*' ${{ env.APP }}/Chart.yaml)
|
||||
echo "Helm Chart version: $CHART_VERSION"
|
||||
echo "::set-output name=tag::$CHART_VERSION"
|
||||
|
||||
- name: Setup Helm
|
||||
run: |
|
||||
#curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
||||
curl -kSso /usr/local/bin/helm https://debmirror.cooltux.net/helm-v3.18.3 && chmod +x /usr/local/bin/helm
|
||||
helm version
|
||||
|
||||
- name: Package Helm Chart
|
||||
run: |
|
||||
helm dependency update ${{ env.APP }}
|
||||
helm lint ${{ env.APP }}
|
||||
helm package ${{ env.APP }}
|
||||
|
||||
- name: Upload Helm Package to repo
|
||||
run: |
|
||||
curl --user ${{ secrets.USER }}:${{ secrets.TOKEN }} -X POST --upload-file ./${{ steps.get_version.outputs.app }}-${{ steps.get_version.outputs.tag }}.tgz ${{ vars.HELMREGISTRY }}/api/packages/${{ vars.OWNER }}/helm/api/charts
|
@ -2,8 +2,8 @@ apiVersion: v2
|
||||
name: audiobookshelf
|
||||
description: A Helm chart for Audiobookshelf
|
||||
type: application
|
||||
version: 1.7.0
|
||||
appVersion: "2.20.0"
|
||||
version: 1.9.2
|
||||
appVersion: "2.25.1"
|
||||
home: https://git.cooltux.net/marko/HelmChartSammlung/src/branch/main/charts/audiobookshelf
|
||||
keywords:
|
||||
- audiobookshelf
|
||||
|
@ -115,31 +115,25 @@ resources:
|
||||
# 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:'.
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 192Mi
|
||||
memory: 128Mi
|
||||
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
tcpSocket:
|
||||
port: http
|
||||
initialDelaySeconds: 15
|
||||
timeoutSeconds: 10
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 4
|
||||
failureThreshold: 8
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
tcpSocket:
|
||||
port: http
|
||||
initialDelaySeconds: 15
|
||||
timeoutSeconds: 1
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 3
|
||||
failureThreshold: 3
|
||||
|
||||
# Additional volumes on the output Deployment definition.
|
||||
volumes: []
|
||||
|
@ -8,17 +8,16 @@ annotations:
|
||||
- name: apache-exporter
|
||||
image: docker.io/bitnami/apache-exporter:1.0.10-debian-12-r5
|
||||
- name: dokuwiki
|
||||
image: git.cooltux.net/marko/docker-dokuwiki-debian12:20250508.1.0-debian-12-r16
|
||||
image: git.cooltux.net/marko/docker-dokuwiki-debian12:20250516-debian-12
|
||||
- name: os-shell
|
||||
image: docker.io/bitnami/os-shell:12-debian-12-r43
|
||||
apiVersion: v2
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: oci://registry-1.docker.io/bitnamicharts
|
||||
tags:
|
||||
- bitnami-common
|
||||
version: 2.x.x
|
||||
deprecated: false
|
||||
- name: common
|
||||
repository: oci://registry-1.docker.io/bitnamicharts
|
||||
tags:
|
||||
- bitnami-common
|
||||
version: 2.x.x
|
||||
description: DokuWiki is a standards-compliant wiki optimized for creating documentation. Designed to be simple to use for small organizations, it stores all data in plain text files so no database is required.
|
||||
home: https://bitnami.com
|
||||
icon: https://bitnami.com/assets/stacks/dokuwiki/img/dokuwiki-stack-220x234.png
|
||||
@ -33,5 +32,5 @@ maintainers: []
|
||||
name: dokuwiki
|
||||
sources:
|
||||
- https://git.cooltux.net/Interne-Entwicklungen/TuxNet-helm-charts.git/dokuwiki
|
||||
version: 1.0.19
|
||||
appVersion: "20250508.1.0-debian-12-r16"
|
||||
version: 1.1.1
|
||||
appVersion: "20250530-debian-12"
|
||||
|
@ -1,5 +1,3 @@
|
||||
This Helm chart is deprecated on our side and will not receive new updates.
|
||||
|
||||
CHART NAME: {{ .Chart.Name }}
|
||||
CHART VERSION: {{ .Chart.Version }}
|
||||
APP VERSION: {{ .Chart.AppVersion }}
|
||||
|
@ -31,9 +31,7 @@ spec:
|
||||
{{- toYaml .Values.ingress.extraPaths | nindent 10 }}
|
||||
{{- end }}
|
||||
- path: {{ .Values.ingress.path }}
|
||||
{{- if eq "true" (include "common.ingress.supportsPathType" .) }}
|
||||
pathType: {{ .Values.ingress.pathType }}
|
||||
{{- end }}
|
||||
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" .) "servicePort" "http" "context" $) | nindent 14 }}
|
||||
{{- end }}
|
||||
{{- range .Values.ingress.extraHosts }}
|
||||
@ -41,9 +39,7 @@ spec:
|
||||
http:
|
||||
paths:
|
||||
- path: {{ default "/" .path }}
|
||||
{{- if eq "true" (include "common.ingress.supportsPathType" $) }}
|
||||
pathType: {{ default "ImplementationSpecific" .pathType }}
|
||||
{{- end }}
|
||||
backend: {{- include "common.ingress.backend" (dict "serviceName" (include "common.names.fullname" $) "servicePort" "http" "context" $) | nindent 14 }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.extraRules }}
|
||||
|
@ -70,7 +70,7 @@ extraDeploy: []
|
||||
image:
|
||||
registry: git.cooltux.net
|
||||
repository: marko/docker-dokuwiki-debian12
|
||||
tag: "20250508.1.0-debian-12-r16"
|
||||
tag: "20250530-debian-12"
|
||||
digest: ""
|
||||
## Specify a imagePullPolicy
|
||||
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
||||
|
23
charts/excalidraw/.helmignore
Normal file
23
charts/excalidraw/.helmignore
Normal file
@ -0,0 +1,23 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
17
charts/excalidraw/Chart.yaml
Normal file
17
charts/excalidraw/Chart.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
name: excalidraw
|
||||
maintainers:
|
||||
- name: kubitodev
|
||||
url: https://kubito.dev
|
||||
apiVersion: v2
|
||||
appVersion: 0.18.0
|
||||
version: 1.0.2
|
||||
description: Kubito Excalidraw Helm Chart
|
||||
home: https://github.com/kubitodev/helm/tree/main/charts/excalidraw
|
||||
icon: https://kubito.dev/images/kubito.svg
|
||||
keywords:
|
||||
- kubernetes
|
||||
- excalidraw
|
||||
- diagrams
|
||||
- design
|
||||
sources:
|
||||
- https://github.com/excalidraw/excalidraw
|
113
charts/excalidraw/README.md
Normal file
113
charts/excalidraw/README.md
Normal file
@ -0,0 +1,113 @@
|
||||
# Excalidraw
|
||||
|
||||
Virtual whiteboard for sketching hand-drawn like diagrams.
|
||||
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
helm repo add kubitodev https://charts.kubito.dev
|
||||
helm install excalidraw kubitodev/excalidraw
|
||||
```
|
||||
|
||||
## Introduction
|
||||
|
||||
An open source virtual hand-drawn style whiteboard. Collaborative and end-to-end encrypted.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Kubernetes 1.12+
|
||||
- Helm 3.2.0+
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `excalidraw`:
|
||||
|
||||
```console
|
||||
helm install excalidraw kubitodev/excalidraw
|
||||
```
|
||||
|
||||
The command deploys excalidraw on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation.
|
||||
|
||||
> **Tip**: List all releases using `helm list`
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall/delete the `excalidraw` deployment:
|
||||
|
||||
```console
|
||||
helm delete excalidraw
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart and deletes the release.
|
||||
|
||||
## Parameters
|
||||
|
||||
### Excalidraw parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
|
||||
| `replicaCount` | The number of replicas to deploy. | `1` |
|
||||
| `image.repository` | The Docker repository to pull the image from. For `arm64` platforms, use `peek1e/excalidraw-arm64` until they add support. | `excalidraw/excalidraw` |
|
||||
| `image.tag` | The image tag to use. | `latest` |
|
||||
| `image.pullPolicy` | The logic of image pulling. | `IfNotPresent` |
|
||||
| `imagePullSecrets` | The image pull secrets to use. | `[]` |
|
||||
| `deployment.strategy.type` | The deployment strategy to use. | `Recreate` |
|
||||
| `serviceAccount.create` | Whether to create a service account. | `true` |
|
||||
| `serviceAccount.annotations` | Additional annotations to add to the service account. | `{}` |
|
||||
| `serviceAccount.name` | The name of the service account to use. If not set and create is true, a new service account will be created with a generated name. | `""` |
|
||||
| `podAnnotations` | Additional annotations to add to the pod. | `{}` |
|
||||
| `podSecurityContext` | The security context to use for the pod. | `{}` |
|
||||
| `securityContext` | The security context to use for the container. | `{}` |
|
||||
| `initContainers` | Additional init containers to add to the pod. | `[]` |
|
||||
| `service.type` | The type of service to create. | `ClusterIP` |
|
||||
| `service.port` | The port on which the service will run. | `8080` |
|
||||
| `service.nodePort` | The nodePort to use for the service. Only used if service.type is NodePort. | `""` |
|
||||
| `ingress.enabled` | Whether to create an ingress for the service. | `false` |
|
||||
| `ingress.className` | The ingress class name to use. | `""` |
|
||||
| `ingress.annotations` | Additional annotations to add to the ingress. | `{}` |
|
||||
| `ingress.hosts[0].host` | The host to use for the ingress. | `chart-example.local` |
|
||||
| `ingress.hosts[0].paths[0].path` | The path to use for the ingress. | `/` |
|
||||
| `ingress.hosts[0].paths[0].pathType` | The path type to use for the ingress. | `ImplementationSpecific` |
|
||||
| `ingress.tls` | The TLS configuration for the ingress. | `[]` |
|
||||
| `resources` | The resources to use for the pod. | `{}` |
|
||||
| `autoscaling.enabled` | Whether to enable autoscaling. | `false` |
|
||||
| `autoscaling.minReplicas` | The minimum number of replicas to scale to. | `1` |
|
||||
| `autoscaling.maxReplicas` | The maximum number of replicas to scale to. | `100` |
|
||||
| `autoscaling.targetCPUUtilizationPercentage` | The target CPU utilization percentage to use for autoscaling. | `80` |
|
||||
| `autoscaling.targetMemoryUtilizationPercentage` | The target memory utilization percentage to use for autoscaling. | `80` |
|
||||
| `nodeSelector` | The node selector to use for the pod. | `{}` |
|
||||
| `tolerations` | The tolerations to use for the pod. | `[]` |
|
||||
| `affinity` | The affinity to use for the pod. | `{}` |
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```console
|
||||
helm install example \
|
||||
--set user=example \
|
||||
--set password=example \
|
||||
kubitodev/example
|
||||
```
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
|
||||
|
||||
```console
|
||||
helm install example -f values.yaml kubitodev/example
|
||||
```
|
||||
|
||||
> **Tip**: You can use the default [values.yaml](values.yaml)
|
||||
|
||||
## License
|
||||
|
||||
Copyright © 2024 Kubito
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
66
charts/excalidraw/templates/deployment.yaml
Normal file
66
charts/excalidraw/templates/deployment.yaml
Normal file
@ -0,0 +1,66 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: excalidraw
|
||||
labels:
|
||||
app.kubernetes.io/name: excalidraw
|
||||
app.kubernetes.io/instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
spec:
|
||||
{{- if not .Values.autoscaling.enabled }}
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
{{- end }}
|
||||
strategy:
|
||||
{{- .Values.deployment.strategy | toYaml | nindent 4 }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: excalidraw
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/name: excalidraw
|
||||
app.kubernetes.io/instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
serviceAccountName: {{ .Values.serviceAccount.name | default "excalidraw" }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
{{- if .Values.initContainers }}
|
||||
initContainers:
|
||||
{{- toYaml .Values.initContainers | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.securityContext | nindent 12 }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
protocol: TCP
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
31
charts/excalidraw/templates/hpa.yaml
Normal file
31
charts/excalidraw/templates/hpa.yaml
Normal file
@ -0,0 +1,31 @@
|
||||
{{- if .Values.autoscaling.enabled }}
|
||||
apiVersion: autoscaling/v2beta1
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: excalidraw
|
||||
labels:
|
||||
app.kubernetes.io/name: excalidraw
|
||||
app.kubernetes.io/instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: excalidraw
|
||||
minReplicas: {{ .Values.autoscaling.minReplicas }}
|
||||
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
|
||||
metrics:
|
||||
{{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
|
||||
{{- end }}
|
||||
{{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
|
||||
{{- end }}
|
||||
{{- end }}
|
64
charts/excalidraw/templates/ingress.yaml
Normal file
64
charts/excalidraw/templates/ingress.yaml
Normal file
@ -0,0 +1,64 @@
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- $fullName := "excalidraw" -}}
|
||||
{{- $svcPort := .Values.service.port -}}
|
||||
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
|
||||
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
|
||||
{{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
app.kubernetes.io/name: excalidraw
|
||||
app.kubernetes.io/instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
|
||||
ingressClassName: {{ .Values.ingress.className }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ .host | quote }}
|
||||
http:
|
||||
paths:
|
||||
{{- range .paths }}
|
||||
- path: {{ .path }}
|
||||
{{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
|
||||
pathType: {{ .pathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
|
||||
service:
|
||||
name: {{ $fullName }}
|
||||
port:
|
||||
number: {{ $svcPort }}
|
||||
{{- else }}
|
||||
serviceName: {{ $fullName }}
|
||||
servicePort: {{ $svcPort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
22
charts/excalidraw/templates/service.yaml
Normal file
22
charts/excalidraw/templates/service.yaml
Normal file
@ -0,0 +1,22 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: excalidraw
|
||||
labels:
|
||||
app.kubernetes.io/name: excalidraw
|
||||
app.kubernetes.io/instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
spec:
|
||||
type: {{ .Values.service.type | default "ClusterIP" }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port | default 8080 }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
{{ if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }}
|
||||
nodePort: {{.Values.service.nodePort}}
|
||||
{{ end }}
|
||||
selector:
|
||||
app.kubernetes.io/name: excalidraw
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
15
charts/excalidraw/templates/serviceaccount.yaml
Normal file
15
charts/excalidraw/templates/serviceaccount.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: excalidraw
|
||||
labels:
|
||||
app.kubernetes.io/name: excalidraw
|
||||
app.kubernetes.io/instance: {{ .Release.Name | quote }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
118
charts/excalidraw/values.yaml
Normal file
118
charts/excalidraw/values.yaml
Normal file
@ -0,0 +1,118 @@
|
||||
## @section Excalidraw parameters
|
||||
|
||||
## @param replicaCount The number of replicas to deploy.
|
||||
## @param image.repository The Docker repository to pull the image from. For `arm64` platforms, use `peek1e/excalidraw-arm64` until they add support.
|
||||
## @param image.tag The image tag to use.
|
||||
## @param image.pullPolicy The logic of image pulling.
|
||||
## @param imagePullSecrets The image pull secrets to use.
|
||||
## @param deployment.strategy.type The deployment strategy to use.
|
||||
## @param serviceAccount.create Whether to create a service account.
|
||||
## @param serviceAccount.annotations Additional annotations to add to the service account.
|
||||
## @param serviceAccount.name The name of the service account to use. If not set and create is true, a new service account will be created with a generated name.
|
||||
## @param podAnnotations Additional annotations to add to the pod.
|
||||
## @param podSecurityContext The security context to use for the pod.
|
||||
## @param securityContext The security context to use for the container.
|
||||
## @param initContainers Additional init containers to add to the pod.
|
||||
## @param service.type The type of service to create.
|
||||
## @param service.port The port on which the service will run.
|
||||
## @param service.nodePort The nodePort to use for the service. Only used if service.type is NodePort.
|
||||
## @param ingress.enabled Whether to create an ingress for the service.
|
||||
## @param ingress.className The ingress class name to use.
|
||||
## @param ingress.annotations Additional annotations to add to the ingress.
|
||||
## @param ingress.hosts[0].host The host to use for the ingress.
|
||||
## @param ingress.hosts[0].paths[0].path The path to use for the ingress.
|
||||
## @param ingress.hosts[0].paths[0].pathType The path type to use for the ingress.
|
||||
## @param ingress.tls The TLS configuration for the ingress.
|
||||
## @param resources The resources to use for the pod.
|
||||
## @param autoscaling.enabled Whether to enable autoscaling.
|
||||
## @param autoscaling.minReplicas The minimum number of replicas to scale to.
|
||||
## @param autoscaling.maxReplicas The maximum number of replicas to scale to.
|
||||
## @param autoscaling.targetCPUUtilizationPercentage The target CPU utilization percentage to use for autoscaling.
|
||||
## @param autoscaling.targetMemoryUtilizationPercentage The target memory utilization percentage to use for autoscaling.
|
||||
## @param nodeSelector The node selector to use for the pod.
|
||||
## @param tolerations The tolerations to use for the pod.
|
||||
## @param affinity The affinity to use for the pod.
|
||||
##
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: excalidraw/excalidraw
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "latest" # latest is only available
|
||||
|
||||
imagePullSecrets: []
|
||||
|
||||
deployment:
|
||||
strategy:
|
||||
type: Recreate
|
||||
|
||||
serviceAccount:
|
||||
create: true
|
||||
annotations: {}
|
||||
name: ""
|
||||
|
||||
podAnnotations: {}
|
||||
|
||||
podSecurityContext:
|
||||
{}
|
||||
# fsGroup: 2000
|
||||
|
||||
securityContext:
|
||||
{}
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# readOnlyRootFilesystem: true
|
||||
# runAsNonRoot: true
|
||||
# runAsUser: 1000
|
||||
|
||||
# -- Init Containers
|
||||
initContainers:
|
||||
[]
|
||||
# - name: init-container
|
||||
# image: busybox
|
||||
# command: ['sh', '-c', 'echo "this is an init container"']
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 8080
|
||||
nodePort: ""
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
className: ""
|
||||
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
|
||||
|
||||
resources:
|
||||
{}
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
autoscaling:
|
||||
enabled: false
|
||||
minReplicas: 1
|
||||
maxReplicas: 100
|
||||
targetCPUUtilizationPercentage: 80
|
||||
targetMemoryUtilizationPercentage: 80
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
17
charts/paperless-ai/Chart.yaml
Normal file
17
charts/paperless-ai/Chart.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
apiVersion: v2
|
||||
name: paperless-ai
|
||||
description: Ein Helm Chart für Paperless AI, basierend auf der Docker Compose Konfiguration.
|
||||
version: 0.1.2
|
||||
appVersion: 3.0.7
|
||||
keywords:
|
||||
- paperless-ai
|
||||
- document-management
|
||||
- ai
|
||||
home: https://git.cooltux.net/marko/HelmChartSammlung/src/branch/main/charts/paperless-ai
|
||||
sources:
|
||||
- https://github.com/clusterzx/paperless-ai
|
||||
- https://git.cooltux.net/marko/HelmChartSammlung/src/branch/main/charts/paperless-ai
|
||||
maintainers:
|
||||
- name: Marko Oldenburg
|
||||
email: development@cooltux.net
|
||||
url: https://git.cooltux.net/marko
|
84
charts/paperless-ai/templates/_helpers.tpl
Normal file
84
charts/paperless-ai/templates/_helpers.tpl
Normal file
@ -0,0 +1,84 @@
|
||||
{{/*
|
||||
_helpers.tpl
|
||||
Enthält nützliche Template-Funktionen, die in anderen Chart-Templates verwendet werden.
|
||||
*/}}
|
||||
|
||||
{{/*
|
||||
Erweitert den Namen des Charts.
|
||||
*/}}
|
||||
{{- define "paperless-ai.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Erstellt einen vollständig qualifizierten App-Namen.
|
||||
Wir kürzen auf 63 Zeichen, da einige Kubernetes-Namenfelder darauf beschränkt sind (gemäß DNS-Namensspezifikation).
|
||||
Wenn der Release-Name den Chart-Namen enthält, wird er als vollständiger Name verwendet.
|
||||
*/}}
|
||||
{{- define "paperless-ai.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Erstellt den Chart-Namen und die Version, wie sie vom Chart-Label verwendet werden.
|
||||
*/}}
|
||||
{{- define "paperless-ai.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Gängige Labels, die allen Ressourcen hinzugefügt werden.
|
||||
*/}}
|
||||
{{- define "paperless-ai.labels" -}}
|
||||
helm.sh/chart: {{ include "paperless-ai.chart" . }}
|
||||
{{ include "paperless-ai.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/app-version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Selector-Labels, die für die Auswahl von Pods verwendet werden.
|
||||
*/}}
|
||||
{{- define "paperless-ai.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "paperless-ai.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Erstellt den Namen des zu verwendenden Service Accounts.
|
||||
*/}}
|
||||
{{- define "paperless-ai.serviceAccountName" -}}
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
{{ default (include "paperless-ai.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else -}}
|
||||
{{ default "default" .Values.serviceAccount.name }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Generiert den Inhalt der .env-Datei aus den Werten in .Values.secretEnv
|
||||
*/}}
|
||||
{{- define "generateEnv" -}}
|
||||
{{- if .Values.paperless.apiUrl }}PAPERLESS_API_URL={{ .Values.paperless.apiUrl }}{{ "\n" }}{{- end }}
|
||||
{{- if .Values.ai.provider }}AI_PROVIDER={{ .Values.ai.provider }}{{ "\n" }}{{- end }}
|
||||
{{- if .Values.ai.addProcessedTag }}ADD_AI_PROCESSED_TAG={{ .Values.ai.addProcessedTag }}{{ "\n" }}{{- end }}
|
||||
{{- if .Values.ai.processedTagName }}AI_PROCESSED_TAG_NAME={{ .Values.ai.processedTagName }}{{ "\n" }}{{- end }}
|
||||
{{- if .Values.prompt.useTags }}USE_PROMPT_TAGS={{ .Values.prompt.useTags }}{{ "\n" }}{{- end }}
|
||||
{{- if .Values.prompt.tags }}PROMPT_TAGS={{ .Values.prompt.tags }}{{ "\n" }}{{- end }}
|
||||
{{- if .Values.scanInterval }}SCAN_INTERVAL={{ .Values.scanInterval }}{{ "\n" }}{{- end }}
|
||||
{{- if .Values.systemPrompt }}SYSTEM_PROMPT=`{{ .Values.systemPrompt }}`{{ "\n" }}{{- end }}
|
||||
{{- if .Values.processPredefinedDocuments }}PROCESS_PREDEFINED_DOCUMENTS={{ .Values.processPredefinedDocuments }}{{ "\n" }}{{- end }}
|
||||
TAGS={{ .Values.tags }}{{ "\n" }}
|
||||
{{- if .Values.openAi.model }}OPENAI_MODEL={{ .Values.openAi.model }}{{ "\n" }}{{- end }}
|
||||
{{- end }}
|
80
charts/paperless-ai/templates/deployment.yaml
Normal file
80
charts/paperless-ai/templates/deployment.yaml
Normal file
@ -0,0 +1,80 @@
|
||||
# deployment.yaml
|
||||
# Definiert das Kubernetes Deployment für die Paperless AI Anwendung.
|
||||
# Ein Deployment verwaltet die Erstellung und Skalierung von Pods.
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "paperless-ai.fullname" . }} # Der Name des Deployments, generiert mit dem fullname-Template.
|
||||
labels:
|
||||
{{- include "paperless-ai.labels" . | nindent 4 }} # Allgemeine Labels für das Deployment.
|
||||
spec:
|
||||
{{- if not .Values.autoscaling.enabled }}
|
||||
replicas: {{ .Values.replicaCount }} # Anzahl der gewünschten Pod-Replikate, wenn Autoscaling deaktiviert ist.
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "paperless-ai.selectorLabels" . | nindent 6 }} # Selector, um die Pods zu finden, die zu diesem Deployment gehören.
|
||||
template:
|
||||
metadata:
|
||||
{{- with .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 8 }} # Zusätzliche Anmerkungen für den Pod.
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "paperless-ai.selectorLabels" . | nindent 8 }} # Labels für den Pod.
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }} # Secrets für den Image-Pull, falls private Registries verwendet werden.
|
||||
{{- end }}
|
||||
serviceAccountName: {{ include "paperless-ai.serviceAccountName" . }} # Der zu verwendende Service Account.
|
||||
{{- if .Values.securityContext.enabled }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.securityContext.pod | nindent 8 }} # Sicherheitskontext-Einstellungen für den gesamten Pod.
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }} # Name des Containers.
|
||||
{{- if .Values.securityContext.enabled }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.securityContext.container | nindent 12 }} # Sicherheitskontext-Einstellungen für diesen Container.
|
||||
{{- end }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" # Das zu verwendende Image.
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }} # Die Image-Pull-Policy.
|
||||
ports:
|
||||
- name: http # Name des Ports.
|
||||
containerPort: {{ .Values.service.targetPort }} # Der Port, der im Container geöffnet ist.
|
||||
protocol: TCP # Das Protokoll des Ports.
|
||||
livenessProbe:
|
||||
{{- toYaml .Values.livenessProbe | nindent 12 }}
|
||||
readinessProbe:
|
||||
{{- toYaml .Values.readinessProbe | nindent 12 }}
|
||||
env:
|
||||
{{- range $key, $value := .Values.env }}
|
||||
- name: {{ $key }} # Name der Umgebungsvariable.
|
||||
value: {{ $value | quote }} # Wert der Umgebungsvariable.
|
||||
{{- end }}
|
||||
{{- if .Values.persistence.enabled }}
|
||||
volumeMounts:
|
||||
- name: paperless-ai-data # Name des Volumes, das gemountet werden soll.
|
||||
mountPath: /app/data # Der Pfad im Container, an dem das Volume gemountet wird.
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }} # Ressourcenanforderungen und -limits für den Container.
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }} # Node-Selector-Regeln für die Pod-Platzierung.
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }} # Affinitätsregeln für die Pod-Platzierung.
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }} # Toleranzen für die Pod-Platzierung auf Tainted Nodes.
|
||||
{{- end }}
|
||||
{{- if .Values.persistence.enabled }}
|
||||
volumes:
|
||||
- name: paperless-ai-data # Definiert ein Volume mit dem Namen 'paperless-ai-data'.
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ include "paperless-ai.fullname" . }}-data # Verweist auf den Persistent Volume Claim.
|
||||
{{- end }}
|
38
charts/paperless-ai/templates/ingress.yaml
Normal file
38
charts/paperless-ai/templates/ingress.yaml
Normal file
@ -0,0 +1,38 @@
|
||||
# ingress.yaml
|
||||
# Definiert einen Kubernetes Ingress, um externen Zugriff auf den Service zu ermöglichen.
|
||||
# Standardmäßig ist dieser Ingress deaktiviert und muss in 'values.yaml' aktiviert werden.
|
||||
{{- if .Values.ingress.enabled -}} # Dieses Template wird nur gerendert, wenn 'ingress.enabled' true ist.
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ include "paperless-ai.fullname" . }} # Der Name des Ingress
|
||||
labels:
|
||||
{{- include "paperless-ai.labels" . | nindent 4 }} # Allgemeine Labels für den Ingress.
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }} # Zusätzliche Anmerkungen für den Ingress (z.B. für Cert-Manager oder Nginx-Controller).
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.ingress.className }}
|
||||
ingressClassName: {{ .Values.ingress.className }} # Der Name der Ingress-Klasse.
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- toYaml .Values.ingress.tls | nindent 4 }} # TLS-Konfiguration für HTTPS.
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ .host | quote }} # Der Hostname für den Ingress.
|
||||
http:
|
||||
paths:
|
||||
{{- range .paths }}
|
||||
- path: {{ .path }} # Der Pfad, der weitergeleitet werden soll.
|
||||
pathType: {{ .pathType }} # Der Typ des Pfades (Prefix, Exact, ImplementationSpecific).
|
||||
backend:
|
||||
service:
|
||||
name: {{ include "paperless-ai.fullname" $ }} # Name des Services, an den weitergeleitet wird.
|
||||
port:
|
||||
number: {{ $.Values.service.port }} # Port des Services.
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
11
charts/paperless-ai/templates/paperlessApiSecret.yaml
Normal file
11
charts/paperless-ai/templates/paperlessApiSecret.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
{{- if .Values.paperless.apiToken }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ include "paperless-ai.fullname" . }}
|
||||
labels:
|
||||
{{- include "paperless-ai.labels" . | nindent 4 }}
|
||||
type: Opaque
|
||||
data:
|
||||
PAPERLESS_API_TOKEN: {{ .Values.paperless.apiToken | b64enc | quote }}
|
||||
{{- end }}
|
17
charts/paperless-ai/templates/pvc.yaml
Normal file
17
charts/paperless-ai/templates/pvc.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
{{- if .Values.persistence.enabled }}
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ include "paperless-ai.fullname" . }}-data
|
||||
labels:
|
||||
{{- include "paperless-ai.labels" . | nindent 4 }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .Values.persistence.accessMode }}
|
||||
{{- if .Values.persistence.storageClassName }}
|
||||
storageClassName: {{ .Values.persistence.storageClassName }}
|
||||
{{- end }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.persistence.size }}
|
||||
{{- end }}
|
15
charts/paperless-ai/templates/service.yaml
Normal file
15
charts/paperless-ai/templates/service.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "paperless-ai.fullname" . }}
|
||||
labels:
|
||||
{{- include "paperless-ai.labels" . | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port }}
|
||||
targetPort: {{ .Values.service.targetPort }}
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
{{- include "paperless-ai.selectorLabels" . | nindent 4 }}
|
131
charts/paperless-ai/values.yaml
Normal file
131
charts/paperless-ai/values.yaml
Normal file
@ -0,0 +1,131 @@
|
||||
# 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: "ai-indexed,ai-indexed2"
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: clusterzx/paperless-ai
|
||||
pullPolicy: IfNotPresent
|
||||
tag: ""
|
||||
|
||||
serviceAccount:
|
||||
create: false
|
||||
annotations: {}
|
||||
name: ""
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 3000
|
||||
targetPort: 3000
|
||||
|
||||
env:
|
||||
PUID: 1000
|
||||
PGID: 2000
|
||||
PAPERLESS_AI_PORT: 3000
|
||||
RAG_SERVICE_URL: http://localhost:8000
|
||||
RAG_SERVICE_ENABLED: true
|
||||
|
||||
# Konfiguration für persistente Speicherung (Persistent Volume Claim).
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClassName: ""
|
||||
accessMode: ReadWriteOnce
|
||||
size: 1Gi
|
||||
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: http
|
||||
readinessProbe:
|
||||
initialDelaySeconds: 30
|
||||
httpGet:
|
||||
path: /
|
||||
port: http
|
||||
|
||||
# Sicherheitskontext-Einstellungen für Pod und Container.
|
||||
securityContext:
|
||||
enabled: false
|
||||
pod:
|
||||
runAsUser: 1000
|
||||
runAsGroup: 2000
|
||||
fsGroup: 2000
|
||||
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:
|
||||
limits:
|
||||
cpu: 300m
|
||||
memory: 704Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
|
||||
# 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: {}
|
||||
|
||||
# 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