diff --git a/kubernetes/apps/media/kavita/app/helmrelease.yaml b/kubernetes/apps/media/kavita/app/helmrelease.yaml new file mode 100644 index 0000000..60db4ce --- /dev/null +++ b/kubernetes/apps/media/kavita/app/helmrelease.yaml @@ -0,0 +1,69 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s-labs/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: &app kavita +spec: + interval: 1h + chartRef: + kind: OCIRepository + name: app-template + driftDetection: + ignore: + - paths: [/spec/replicas] + values: + controllers: + kavita: + annotations: + reloader.stakater.com/auto: "true" + containers: + app: + image: + repository: ghcr.io/kareadita/kavita + tag: 0.8.9@sha256:1f2acae7466d022f037ea09f7989eb7c487f916b881174c7a6de33dbfa8acb39 + resources: + requests: + cpu: 15m + limits: + memory: 1Gi + probes: + liveness: + enabled: true + readiness: + enabled: true + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + capabilities: { drop: ["ALL"] } + defaultPodOptions: + securityContext: + fsGroup: 1000 + runAsGroup: 1000 + runAsNonRoot: true + runAsUser: 1000 + fsGroupChangePolicy: OnRootMismatch + service: + app: + ports: + http: + port: 5000 + route: + app: + hostnames: + - "{{ .Release.Name }}.laurivan.com" + parentRefs: + - name: envoy-internal + namespace: network + persistence: + config: + existingClaim: *app + globalMounts: + - path: /kavita/config + media: + type: nfs + server: 10.0.0.14 + path: /mnt/Main/shares/books + globalMounts: + - path: /media + readOnly: true diff --git a/kubernetes/apps/media/kavita/app/kustomization.yaml b/kubernetes/apps/media/kavita/app/kustomization.yaml new file mode 100644 index 0000000..904bfa2 --- /dev/null +++ b/kubernetes/apps/media/kavita/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - helmrelease.yaml diff --git a/kubernetes/apps/media/kavita/ks.yaml b/kubernetes/apps/media/kavita/ks.yaml new file mode 100644 index 0000000..108f1e3 --- /dev/null +++ b/kubernetes/apps/media/kavita/ks.yaml @@ -0,0 +1,28 @@ +--- +# yaml-language-server: $schema=https://schemas.tholinka.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app kavita + namespace: &namespace media +spec: + interval: 1h + components: + - ../../../../components/volsync + - ../../../../components/keda/nfs-scaler + dependsOn: + - name: keda + namespace: observability + - name: storage-ready + namespace: flux-system + path: ./kubernetes/apps/media/kavita/app + postBuild: + substitute: + APP: *app + VOLSYNC_CAPACITY: 5Gi + prune: true + sourceRef: + kind: GitRepository + name: flux-system + namespace: flux-system + targetNamespace: *namespace