add book bounty
This commit is contained in:
		
							
								
								
									
										22
									
								
								clusters/cl01tl/applications/book-bounty/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								clusters/cl01tl/applications/book-bounty/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
apiVersion: v2
 | 
			
		||||
name: book-bounty
 | 
			
		||||
version: 1.0.0
 | 
			
		||||
description: Book Bounty
 | 
			
		||||
keywords:
 | 
			
		||||
  - book-bounty
 | 
			
		||||
  - books
 | 
			
		||||
  - readarr
 | 
			
		||||
home: https://wiki.alexlebens.dev/doc/book-bounty-92F75vR4O9
 | 
			
		||||
sources:
 | 
			
		||||
  - https://github.com/advplyr/audiobookshelf
 | 
			
		||||
  - https://registry.hub.docker.com/r/thewicklowwolf/bookbounty
 | 
			
		||||
  - https://github.com/bjw-s/helm-charts/tree/main/charts/other/app-template
 | 
			
		||||
maintainers:
 | 
			
		||||
  - name: alexlebens
 | 
			
		||||
dependencies:
 | 
			
		||||
  - name: app-template
 | 
			
		||||
    alias: book-bounty
 | 
			
		||||
    repository: https://bjw-s.github.io/helm-charts/
 | 
			
		||||
    version: 3.2.1
 | 
			
		||||
icon: https://raw.githubusercontent.com/TheWicklowWolf/BookBounty/main/src/static/bookbounty.png
 | 
			
		||||
appVersion: v0.116
 | 
			
		||||
@@ -0,0 +1,82 @@
 | 
			
		||||
apiVersion: external-secrets.io/v1beta1
 | 
			
		||||
kind: ExternalSecret
 | 
			
		||||
metadata:
 | 
			
		||||
  name: book-bounty-secret
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  labels:
 | 
			
		||||
    app.kubernetes.io/name: book-bounty-secret
 | 
			
		||||
    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:
 | 
			
		||||
  secretStoreRef:
 | 
			
		||||
    kind: ClusterSecretStore
 | 
			
		||||
    name: vault
 | 
			
		||||
  data:
 | 
			
		||||
    - secretKey: readarr_api_key
 | 
			
		||||
      remoteRef:
 | 
			
		||||
        conversionStrategy: Default
 | 
			
		||||
        decodingStrategy: None
 | 
			
		||||
        key: /cl01tl/readarr-books/key
 | 
			
		||||
        metadataPolicy: None
 | 
			
		||||
        property: key
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
apiVersion: external-secrets.io/v1beta1
 | 
			
		||||
kind: ExternalSecret
 | 
			
		||||
metadata:
 | 
			
		||||
  name: book-bounty-config-backup-secret
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  labels:
 | 
			
		||||
    app.kubernetes.io/name: book-bounty-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 }}` }}/book-bounty/book-bounty-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,37 @@
 | 
			
		||||
apiVersion: traefik.io/v1alpha1
 | 
			
		||||
kind: IngressRoute
 | 
			
		||||
metadata:
 | 
			
		||||
  name: book-bounty
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  labels:
 | 
			
		||||
    app.kubernetes.io/name: book-bounty
 | 
			
		||||
    app.kubernetes.io/instance: {{ .Release.Name }}
 | 
			
		||||
    app.kubernetes.io/version: {{ .Chart.AppVersion }}
 | 
			
		||||
    app.kubernetes.io/component: web
 | 
			
		||||
    app.kubernetes.io/part-of: {{ .Release.Name }}
 | 
			
		||||
  annotations:
 | 
			
		||||
    external-dns.alpha.kubernetes.io/hostname: bookbounty.alexlebens.net
 | 
			
		||||
    external-dns.alpha.kubernetes.io/target: cl01tl-endpoint.alexlebens.net
 | 
			
		||||
    kubernetes.io/ingress.class: traefik
 | 
			
		||||
spec:
 | 
			
		||||
  entryPoints:
 | 
			
		||||
    - websecure
 | 
			
		||||
  routes:
 | 
			
		||||
    - kind: Rule
 | 
			
		||||
      match: Host(`bookbounty.alexlebens.net`)
 | 
			
		||||
      middlewares:
 | 
			
		||||
        - name: authentik-book-bounty
 | 
			
		||||
          namespace: {{ .Release.Namespace }}
 | 
			
		||||
      priority: 10
 | 
			
		||||
      services:
 | 
			
		||||
        - kind: Service
 | 
			
		||||
          name: book-bounty
 | 
			
		||||
          port: 80
 | 
			
		||||
    - kind: Rule
 | 
			
		||||
      match: Host(`bookbounty.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-book-bounty
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  labels:
 | 
			
		||||
    app.kubernetes.io/name: authentik-book-bounty
 | 
			
		||||
    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: book-bounty-nfs-storage
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  labels:
 | 
			
		||||
    app.kubernetes.io/name: book-bounty-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: book-bounty-nfs-storage
 | 
			
		||||
  storageClassName: nfs-client
 | 
			
		||||
  accessModes:
 | 
			
		||||
    - ReadWriteMany
 | 
			
		||||
  resources:
 | 
			
		||||
    requests:
 | 
			
		||||
      storage: 1Gi
 | 
			
		||||
@@ -0,0 +1,25 @@
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: PersistentVolume
 | 
			
		||||
metadata:
 | 
			
		||||
  name: book-bounty-nfs-storage
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  labels:
 | 
			
		||||
    app.kubernetes.io/name: book-bounty-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,27 @@
 | 
			
		||||
apiVersion: volsync.backube/v1alpha1
 | 
			
		||||
kind: ReplicationSource
 | 
			
		||||
metadata:
 | 
			
		||||
  name: book-bounty-config-backup-source
 | 
			
		||||
  namespace: {{ .Release.Namespace }}
 | 
			
		||||
  labels:
 | 
			
		||||
    app.kubernetes.io/name: book-bounty-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: book-bounty-config
 | 
			
		||||
  trigger:
 | 
			
		||||
    schedule: 0 */6 * * *
 | 
			
		||||
  restic:
 | 
			
		||||
    pruneIntervalDays: 7
 | 
			
		||||
    repository: book-bounty-config-backup-secret
 | 
			
		||||
    retain:
 | 
			
		||||
      hourly: 1
 | 
			
		||||
      daily: 1
 | 
			
		||||
      weekly: 3
 | 
			
		||||
      monthly: 2
 | 
			
		||||
      yearly: 4
 | 
			
		||||
    copyMethod: Snapshot
 | 
			
		||||
    storageClassName: ceph-block-delete
 | 
			
		||||
    volumeSnapshotClassName: ceph-blockpool-snapshot
 | 
			
		||||
							
								
								
									
										59
									
								
								clusters/cl01tl/applications/book-bounty/values.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								clusters/cl01tl/applications/book-bounty/values.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
book-bounty:
 | 
			
		||||
  controllers:
 | 
			
		||||
    main:
 | 
			
		||||
      type: deployment
 | 
			
		||||
      replicas: 1
 | 
			
		||||
      strategy: Recreate
 | 
			
		||||
      revisionHistoryLimit: 3
 | 
			
		||||
      containers:
 | 
			
		||||
        main:
 | 
			
		||||
          image:
 | 
			
		||||
            repository: thewicklowwolf/bookbounty
 | 
			
		||||
            tag: latest@sha256:bbf9a20ad88579067463bad999a6b82bdd457d37d6fa28096686a6d5992e746c
 | 
			
		||||
            pullPolicy: IfNotPresent
 | 
			
		||||
          env:
 | 
			
		||||
            - name: readarr_address
 | 
			
		||||
              value: http://readarr-books.readarr-books:80
 | 
			
		||||
            - name: readarr_api_key
 | 
			
		||||
              valueFrom:
 | 
			
		||||
                secretKeyRef:
 | 
			
		||||
                  name: book-bounty-secret
 | 
			
		||||
                  key: readarr_api_key
 | 
			
		||||
            - name: sleep_interval
 | 
			
		||||
              value: 360
 | 
			
		||||
            - name: sync_schedule
 | 
			
		||||
              value: 4
 | 
			
		||||
            - name: selected_path_type
 | 
			
		||||
              value: folder
 | 
			
		||||
          resources:
 | 
			
		||||
            requests:
 | 
			
		||||
              cpu: 100m
 | 
			
		||||
              memory: 256Mi
 | 
			
		||||
  serviceAccount:
 | 
			
		||||
    create: true
 | 
			
		||||
  service:
 | 
			
		||||
    main:
 | 
			
		||||
      controller: main
 | 
			
		||||
      ports:
 | 
			
		||||
        http:
 | 
			
		||||
          port: 80
 | 
			
		||||
          targetPort: 5000
 | 
			
		||||
          protocol: HTTP
 | 
			
		||||
  persistence:
 | 
			
		||||
    config:
 | 
			
		||||
      storageClass: ceph-block
 | 
			
		||||
      accessMode: ReadWriteOnce
 | 
			
		||||
      size: 5Gi
 | 
			
		||||
      retain: true
 | 
			
		||||
      advancedMounts:
 | 
			
		||||
        main:
 | 
			
		||||
          main:
 | 
			
		||||
            - path: /bookbounty/config
 | 
			
		||||
              readOnly: false
 | 
			
		||||
    books:
 | 
			
		||||
      existingClaim: book-bounty-nfs-storage
 | 
			
		||||
      advancedMounts:
 | 
			
		||||
        main:
 | 
			
		||||
          main:
 | 
			
		||||
            - path: /bookbounty/downloads
 | 
			
		||||
              readOnly: false
 | 
			
		||||
@@ -543,6 +543,12 @@ homepage:
 | 
			
		||||
                    type: prowlarr
 | 
			
		||||
                    url: http://prowlarr.prowlarr:80
 | 
			
		||||
                    key: {{ "{{HOMEPAGE_VAR_PROWLARR_KEY}}" }}
 | 
			
		||||
              - Book Bounty:
 | 
			
		||||
                  icon: https://raw.githubusercontent.com/TheWicklowWolf/BookBounty/main/src/static/bookbounty.png
 | 
			
		||||
                  description: Searches for Books
 | 
			
		||||
                  href: https://bookbounty.alexlebens.net
 | 
			
		||||
                  siteMonitor: http://book-bounty.book-bounty:80
 | 
			
		||||
                  statusStyle: dot
 | 
			
		||||
        bookmarks.yaml: |
 | 
			
		||||
          - External Services:
 | 
			
		||||
              - Github:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user