From 6fc79b2526486fbd436e6ede992fef77f2d7d8dc Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Thu, 20 Jun 2024 11:24:07 +1000 Subject: [PATCH] add app kavita --- .../apps/adguard-home/app/deployment.yaml | 2 +- kubernetes/apps/kavita/app/development.yaml | 74 +++++++++++++++++++ kubernetes/apps/kavita/app/ingress.yaml | 21 ++++++ kubernetes/apps/kavita/app/service.yaml | 18 +++++ kubernetes/apps/kavita/kavita.yaml | 16 ++++ kubernetes/apps/kustomization.yaml | 1 + .../namespaces/namespaces/kavita.yaml | 4 + 7 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 kubernetes/apps/kavita/app/development.yaml create mode 100644 kubernetes/apps/kavita/app/ingress.yaml create mode 100644 kubernetes/apps/kavita/app/service.yaml create mode 100644 kubernetes/apps/kavita/kavita.yaml create mode 100644 kubernetes/infrastructure/namespaces/namespaces/kavita.yaml diff --git a/kubernetes/apps/adguard-home/app/deployment.yaml b/kubernetes/apps/adguard-home/app/deployment.yaml index 5d907f7..6416120 100644 --- a/kubernetes/apps/adguard-home/app/deployment.yaml +++ b/kubernetes/apps/adguard-home/app/deployment.yaml @@ -69,7 +69,7 @@ spec: name: http-pprof env: - name: TZ - value: America/New_York + value: Australia/Sydney volumeMounts: - name: adguard-home-data mountPath: /opt/adguardhome/work diff --git a/kubernetes/apps/kavita/app/development.yaml b/kubernetes/apps/kavita/app/development.yaml new file mode 100644 index 0000000..d007c90 --- /dev/null +++ b/kubernetes/apps/kavita/app/development.yaml @@ -0,0 +1,74 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: kavita + namespace: kavita + labels: + app.kubernetes.io/name: kavita + app.kubernetes.io/instance: kavita + annotations: + kubectl.kubernetes.io/default-container: kavita +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: kavita + app.kubernetes.io/instance: kavita + template: + metadata: + labels: + app.kubernetes.io/name: kavita + app.kubernetes.io/instance: kavita + spec: + containers: + - image: jvmilazz0/kavita:latest + imagePullPolicy: IfNotPresent + name: kavita + ports: + - containerPort: 5000 + name: http + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: / + port: 5000 + scheme: HTTP + initialDelaySeconds: 0 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 3 + resources: + requests: + cpu: 200m + memory: 200Mi + env: + - name: TZ + value: Australia/Sydney + volumeMounts: + - name: kavita-config + mountPath: /kavita/config + - name: kavita-manga + mountPath: /manga + - name: kavita-book + mountPath: /kavita/book + - name: kavita-doc + mountPath: /kavita/doc + volumes: + - name: kavita-config + hostPath: + path: /mnt/nfs/AppData/kavita/config + type: Directory + - name: kavita-manga + hostPath: + path: /mnt/nfs/AppData/kavita/manga + type: Directory + - name: kavita-book + hostPath: + path: /mnt/nfs/AppData/kavita/book + type: Directory + - name: kavita-doc + hostPath: + path: /mnt/nfs/AppData/kavita/doc + type: Directory + serviceAccountName: kavita \ No newline at end of file diff --git a/kubernetes/apps/kavita/app/ingress.yaml b/kubernetes/apps/kavita/app/ingress.yaml new file mode 100644 index 0000000..0663b2f --- /dev/null +++ b/kubernetes/apps/kavita/app/ingress.yaml @@ -0,0 +1,21 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: kavita-ingress + namespace: kavita + annotations: + nginx.ingress.kubernetes.io/ssl-redirect: "false" + nginx.ingress.kubernetes.io/use-regex: "true" +spec: + ingressClassName: nginx + rules: + - host: "kavita.cluster.edward.sydney" + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: kavita + port: + number: 5000 \ No newline at end of file diff --git a/kubernetes/apps/kavita/app/service.yaml b/kubernetes/apps/kavita/app/service.yaml new file mode 100644 index 0000000..3e46ce7 --- /dev/null +++ b/kubernetes/apps/kavita/app/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: kavita + namespace: kavita + labels: + app.kubernetes.io/name: kavita + app.kubernetes.io/instance: kavita +spec: + type: ClusterIP + ports: + - port: 5000 + targetPort: 5000 + protocol: TCP + name: http + selector: + app.kubernetes.io/name: kavita + app.kubernetes.io/instance: kavita \ No newline at end of file diff --git a/kubernetes/apps/kavita/kavita.yaml b/kubernetes/apps/kavita/kavita.yaml new file mode 100644 index 0000000..4457bd0 --- /dev/null +++ b/kubernetes/apps/kavita/kavita.yaml @@ -0,0 +1,16 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: kavita + namespace: kavita +spec: + interval: 10m + timeout: 1m30s + retryInterval: 30s + path: ./kubernetes/apps/kavita/app + prune: true + sourceRef: + kind: GitRepository + namespace: flux-system + name: flux-system + diff --git a/kubernetes/apps/kustomization.yaml b/kubernetes/apps/kustomization.yaml index f6544b9..b264763 100644 --- a/kubernetes/apps/kustomization.yaml +++ b/kubernetes/apps/kustomization.yaml @@ -7,6 +7,7 @@ resources: - ./code-server/code-server.yaml - ./homer/homer.yaml - ./jellyfin/jellyfin.yaml + - ./kavita/kavita.yaml - ./podinfo/podinfo.yaml - ./postgresql/postgresql.yaml - ./snippet-box/snippet-box.yaml diff --git a/kubernetes/infrastructure/namespaces/namespaces/kavita.yaml b/kubernetes/infrastructure/namespaces/namespaces/kavita.yaml new file mode 100644 index 0000000..1c67f1b --- /dev/null +++ b/kubernetes/infrastructure/namespaces/namespaces/kavita.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: kavita