From 911656010f0a1b36e0f34a99cbd3d1e0e10b99ad Mon Sep 17 00:00:00 2001 From: Ales Lerch <13370338+axeII@users.noreply.github.com> Date: Sun, 22 Dec 2024 20:30:24 +0100 Subject: [PATCH] feat(komga): add Komga application with HelmRelease, PVC, and Kustomization configurations --- kubernetes/apps/default/piped/ks.yaml | 3 - .../apps/media/komga/app/helmrelease.yaml | 85 +++++++++++++++++++ .../apps/media/komga/app/kustomization.yaml | 6 ++ kubernetes/apps/media/komga/app/pvc.yaml | 13 +++ kubernetes/apps/media/komga/ks.yaml | 21 +++++ kubernetes/apps/media/kustomization.yaml | 1 + 6 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 kubernetes/apps/media/komga/app/helmrelease.yaml create mode 100644 kubernetes/apps/media/komga/app/kustomization.yaml create mode 100644 kubernetes/apps/media/komga/app/pvc.yaml create mode 100644 kubernetes/apps/media/komga/ks.yaml diff --git a/kubernetes/apps/default/piped/ks.yaml b/kubernetes/apps/default/piped/ks.yaml index b9367a261..42d53cd05 100644 --- a/kubernetes/apps/default/piped/ks.yaml +++ b/kubernetes/apps/default/piped/ks.yaml @@ -17,6 +17,3 @@ spec: kind: GitRepository name: home-kubernetes wait: false - # dependsOn: - # - name: longhorn - # - name: external-secrets-stores diff --git a/kubernetes/apps/media/komga/app/helmrelease.yaml b/kubernetes/apps/media/komga/app/helmrelease.yaml new file mode 100644 index 000000000..8366aca8e --- /dev/null +++ b/kubernetes/apps/media/komga/app/helmrelease.yaml @@ -0,0 +1,85 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/axeII/crds/main/helmrelease_v2beta1.json +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: &app komga +spec: + interval: 30m + chart: + spec: + chart: app-template + version: 3.5.1 + sourceRef: + kind: HelmRepository + name: bjw-s + namespace: flux-system + install: + remediation: + retries: 3 + upgrade: + cleanupOnFail: true + remediation: + strategy: rollback + retries: 3 + values: + controllers: + komga: + labels: + nfsMount: "true" + annotations: + reloader.stakater.com/auto: "true" + containers: + app: + image: + repository: gotson/komga + tag: "1.14.0@sha256:243e6c3d06bf64adf29923f9f6d6a1c2ef4ffc5a000317fa90ab2431f6cf978d" + env: + TZ: ${TIMEZONE} + SERVER_PORT: &port 8080 + resources: + requests: + cpu: 15m + memory: 1Gi + limits: + memory: 4Gi + service: + app: + controller: *app + ports: + http: + port: *port + ingress: + app: + className: internal + annotations: + gatus.io/enabled: "true" + hajimari.io/icon: "mdi:thought-bubble-outline" + gethomepage.dev/enabled: "true" + gethomepage.dev/group: Media + gethomepage.dev/name: Komga + gethomepage.dev/href: https://komga.${SECRET_DOMAIN} + gethomepage.dev/icon: komga.png + gethomepage.dev/description: Comic/Ebook Web Reader + gethomepage.dev/widget.type: komga + gethomepage.dev/widget.url: http://komga.media.svc.cluster.local:8080 + gethomepage.dev/widget.username: "{{HOMEPAGE_VAR_KOMGA_USERNAME}}" + gethomepage.dev/widget.password: "{{HOMEPAGE_VAR_KOMGA_PASSWORD}}" + hosts: + - host: &host "{{ .Release.Name }}.${SECRET_DOMAIN}" + paths: + - path: / + service: + identifier: app + port: http + tls: + - hosts: [*host] + persistence: + config: + existingClaim: komga-config + media: + type: nfs + server: 192.168.69.69 + path: /mnt/ThiccBoi/SiccBoi/data/media/Literature + globalMounts: + - path: /data diff --git a/kubernetes/apps/media/komga/app/kustomization.yaml b/kubernetes/apps/media/komga/app/kustomization.yaml new file mode 100644 index 000000000..ac3e32421 --- /dev/null +++ b/kubernetes/apps/media/komga/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./pvc.yaml + - ./helmrelease.yaml diff --git a/kubernetes/apps/media/komga/app/pvc.yaml b/kubernetes/apps/media/komga/app/pvc.yaml new file mode 100644 index 000000000..976204473 --- /dev/null +++ b/kubernetes/apps/media/komga/app/pvc.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: komga-config + namespace: media +spec: + accessModes: + - ReadWriteOnce + storageClassName: ceph-block + resources: + requests: + storage: 1Gi diff --git a/kubernetes/apps/media/komga/ks.yaml b/kubernetes/apps/media/komga/ks.yaml new file mode 100644 index 000000000..7a1813c13 --- /dev/null +++ b/kubernetes/apps/media/komga/ks.yaml @@ -0,0 +1,21 @@ +--- +# yaml-language-server: $schema=https://lds-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app komga + namespace: flux-system +spec: + targetNamespace: media + commonMetadata: + labels: + app.kubernetes.io/name: *app + path: ./kubernetes/apps/media/komga/app + prune: true + sourceRef: + kind: GitRepository + name: home-kubernetes + wait: false # no flux ks dependents + interval: 30m + retryInterval: 1m + timeout: 5m diff --git a/kubernetes/apps/media/kustomization.yaml b/kubernetes/apps/media/kustomization.yaml index 6abf3617a..bcf6788fa 100644 --- a/kubernetes/apps/media/kustomization.yaml +++ b/kubernetes/apps/media/kustomization.yaml @@ -11,3 +11,4 @@ resources: - ./flaresolverr/ks.yaml - ./unpackerr/ks.yaml - ./recyclarr/ks.yaml + - ./komga/ks.yaml