add calibre web automated
This commit is contained in:
		| @@ -0,0 +1,21 @@ | ||||
| apiVersion: v2 | ||||
| name: calibre-web-automated | ||||
| version: 1.0.0 | ||||
| description: Calibre Web Automated | ||||
| keywords: | ||||
|   - calibre-web-automated | ||||
|   - books | ||||
| home: https://wiki.alexlebens.dev/doc/calibre-web-automated-1SMf1jPFsb | ||||
| sources: | ||||
|   - https://github.com/crocodilestick/Calibre-Web-Automator | ||||
|   - https://hub.docker.com/r/crocodilestick/calibre-web-automated | ||||
|   - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template | ||||
| maintainers: | ||||
|   - name: alexlebens | ||||
| dependencies: | ||||
|   - name: app-template | ||||
|     alias: calibre-web-automated | ||||
|     repository: https://bjw-s.github.io/helm-charts/ | ||||
|     version: 3.2.1 | ||||
| icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/calibre-web.png | ||||
| appVersion: 1.2.2 | ||||
| @@ -0,0 +1,57 @@ | ||||
| apiVersion: external-secrets.io/v1beta1 | ||||
| kind: ExternalSecret | ||||
| metadata: | ||||
|   name: calibre-web-automated-config-backup-secret | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: calibre-web-automated-config-backup-secret | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: backup | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   secretStoreRef: | ||||
|     kind: ClusterSecretStore | ||||
|     name: vault | ||||
|   target: | ||||
|     template: | ||||
|       mergePolicy: Merge | ||||
|       engineVersion: v2 | ||||
|       data: | ||||
|         RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/calibre-web-automated/calibre-web-automated-config" | ||||
|   data: | ||||
|     - secretKey: BUCKET_ENDPOINT | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/volsync/restic/config | ||||
|         metadataPolicy: None | ||||
|         property: S3_BUCKET_ENDPOINT | ||||
|     - secretKey: RESTIC_PASSWORD | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/volsync/restic/config | ||||
|         metadataPolicy: None | ||||
|         property: RESTIC_PASSWORD | ||||
|     - secretKey: AWS_DEFAULT_REGION | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /cl01tl/volsync/restic/config | ||||
|         metadataPolicy: None | ||||
|         property: AWS_DEFAULT_REGION | ||||
|     - secretKey: AWS_ACCESS_KEY_ID | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /aws/keys/cl01tl-volsync-backups | ||||
|         metadataPolicy: None | ||||
|         property: access_key | ||||
|     - secretKey: AWS_SECRET_ACCESS_KEY | ||||
|       remoteRef: | ||||
|         conversionStrategy: Default | ||||
|         decodingStrategy: None | ||||
|         key: /aws/keys/cl01tl-volsync-backups | ||||
|         metadataPolicy: None | ||||
|         property: secret_key | ||||
| @@ -0,0 +1,33 @@ | ||||
| apiVersion: traefik.io/v1alpha1 | ||||
| kind: IngressRoute | ||||
| metadata: | ||||
|   name: calibre-web-automated | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: calibre-web-automated | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: web | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   entryPoints: | ||||
|     - websecure | ||||
|   routes: | ||||
|     - kind: Rule | ||||
|       match: Host(`calibre-automated.alexlebens.net`) | ||||
|       middlewares: | ||||
|         - name: authentik-calibre-web-automated | ||||
|           namespace: {{ .Release.Namespace }} | ||||
|       priority: 10 | ||||
|       services: | ||||
|         - kind: Service | ||||
|           name: calibre-web-automated | ||||
|           port: 80 | ||||
|     - kind: Rule | ||||
|       match: Host(`calibre-automated.alexlebens.net`) && PathPrefix(`/outpost.goauthentik.io/`)" | ||||
|       priority: 15 | ||||
|       services: | ||||
|         - kind: Service | ||||
|           name: authentik-outpost-proxy | ||||
|           port: 9000 | ||||
|           namespace: authentik | ||||
| @@ -0,0 +1,27 @@ | ||||
| apiVersion: traefik.io/v1alpha1 | ||||
| kind: Middleware | ||||
| metadata: | ||||
|   name: authentik-calibre-web-automated | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: authentik-calibre-web-automated | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: auth | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   forwardAuth: | ||||
|     address: http://authentik-outpost-proxy.authentik:9000/outpost.goauthentik.io/auth/traefik | ||||
|     trustForwardHeader: true | ||||
|     authResponseHeaders: | ||||
|       - X-authentik-username | ||||
|       - X-authentik-groups | ||||
|       - X-authentik-email | ||||
|       - X-authentik-name | ||||
|       - X-authentik-uid | ||||
|       - X-authentik-jwt | ||||
|       - X-authentik-meta-jwks | ||||
|       - X-authentik-meta-outpost | ||||
|       - X-authentik-meta-provider | ||||
|       - X-authentik-meta-app | ||||
|       - X-authentik-meta-version | ||||
| @@ -0,0 +1,19 @@ | ||||
| apiVersion: v1 | ||||
| kind: PersistentVolumeClaim | ||||
| metadata: | ||||
|   name: calibre-web-automated-nfs-storage | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: calibre-web-automated-nfs-storage | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: storage | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   volumeName: calibre-web-automated-nfs-storage | ||||
|   storageClassName: nfs-client | ||||
|   accessModes: | ||||
|     - ReadWriteMany | ||||
|   resources: | ||||
|     requests: | ||||
|       storage: 1Gi | ||||
| @@ -0,0 +1,25 @@ | ||||
| apiVersion: v1 | ||||
| kind: PersistentVolume | ||||
| metadata: | ||||
|   name: calibre-web-automated-nfs-storage | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: calibre-web-automated-nfs-storage | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: storage | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   persistentVolumeReclaimPolicy: Retain | ||||
|   storageClassName: nfs-client | ||||
|   capacity: | ||||
|     storage: 1Gi | ||||
|   accessModes: | ||||
|     - ReadWriteMany | ||||
|   nfs: | ||||
|     path: /volume2/Storage/Calibre | ||||
|     server: synologybond.alexlebens.net | ||||
|   mountOptions: | ||||
|     - vers=4 | ||||
|     - minorversion=1 | ||||
|     - noac | ||||
| @@ -0,0 +1,30 @@ | ||||
| apiVersion: volsync.backube/v1alpha1 | ||||
| kind: ReplicationSource | ||||
| metadata: | ||||
|   name: calibre-web-automated-config-backup-source | ||||
|   namespace: {{ .Release.Namespace }} | ||||
|   labels: | ||||
|     app.kubernetes.io/name: calibre-web-automated-config-backup-source | ||||
|     app.kubernetes.io/instance: {{ .Release.Name }} | ||||
|     app.kubernetes.io/version: {{ .Chart.AppVersion }} | ||||
|     app.kubernetes.io/component: backup | ||||
|     app.kubernetes.io/part-of: {{ .Release.Name }} | ||||
| spec: | ||||
|   sourcePVC: calibre-web-automated-config | ||||
|   trigger: | ||||
|     schedule: 0 */6 * * * | ||||
|   restic: | ||||
|     pruneIntervalDays: 7 | ||||
|     repository: calibre-web-automated-config-backup-secret | ||||
|     retain: | ||||
|       hourly: 1 | ||||
|       daily: 1 | ||||
|       weekly: 3 | ||||
|       monthly: 2 | ||||
|       yearly: 4 | ||||
|     moverSecurityContext: | ||||
|       runAsUser: 1000 | ||||
|       runAsGroup: 100       | ||||
|     copyMethod: Snapshot | ||||
|     storageClassName: ceph-block-delete | ||||
|     volumeSnapshotClassName: ceph-blockpool-snapshot | ||||
| @@ -0,0 +1,59 @@ | ||||
| calibre-web-automated: | ||||
|   controllers: | ||||
|     main: | ||||
|       type: deployment | ||||
|       replicas: 1 | ||||
|       strategy: Recreate | ||||
|       revisionHistoryLimit: 3 | ||||
|       containers: | ||||
|         main: | ||||
|           image: | ||||
|             repository: crocodilestick/calibre-web-automated | ||||
|             tag: sha256:4cf05160e89a74848ef6ee8b6bef3fa847a9c42faff4dc501dffcc2419673ffe | ||||
|             pullPolicy: IfNotPresent | ||||
|           env: | ||||
|             - name: TZ | ||||
|               value: US/Central | ||||
|             - name: PUID | ||||
|               value: 1000 | ||||
|             - name: PGID | ||||
|               value: 100 | ||||
|           resources: | ||||
|             requests: | ||||
|               cpu: 100m | ||||
|               memory: 256Mi | ||||
|   serviceAccount: | ||||
|     create: true | ||||
|   service: | ||||
|     main: | ||||
|       controller: main | ||||
|       ports: | ||||
|         http: | ||||
|           port: 80 | ||||
|           targetPort: 8083 | ||||
|           protocol: HTTP | ||||
|   persistence: | ||||
|     config: | ||||
|       storageClass: ceph-block | ||||
|       accessMode: ReadWriteOnce | ||||
|       size: 5Gi | ||||
|       retain: true | ||||
|       advancedMounts: | ||||
|         main: | ||||
|           main: | ||||
|             - path: /config | ||||
|               readOnly: false | ||||
|     ingest: | ||||
|       type: emptyDir | ||||
|       advancedMounts: | ||||
|         main: | ||||
|           main: | ||||
|             - path: /cwa-book-ingest | ||||
|               readOnly: false | ||||
|     books: | ||||
|       existingClaim: calibre-web-automated-nfs-storage | ||||
|       advancedMounts: | ||||
|         main: | ||||
|           main: | ||||
|             - path: /calibre-main/Calibre Library | ||||
|               readOnly: true | ||||
		Reference in New Issue
	
	Block a user