diff options
| author | Paul Buetow <paul@buetow.org> | 2025-10-18 15:11:59 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-10-18 15:11:59 +0300 |
| commit | 77b1a714b00901b47ea7544ab10f759df864fdfa (patch) | |
| tree | 3731a355ce42c270859c2e29af88d9906a9337e4 | |
| parent | 15088346fc7a71552bef8b9a56da5d8706101ea8 (diff) | |
added koreader-sync-server
| -rw-r--r-- | f3s/kobo-sync-server/Justfile | 12 | ||||
| -rw-r--r-- | f3s/kobo-sync-server/README.md | 43 | ||||
| -rw-r--r-- | f3s/kobo-sync-server/helm-chart/Chart.yaml | 5 | ||||
| -rw-r--r-- | f3s/kobo-sync-server/helm-chart/templates/deployment.yaml | 26 | ||||
| -rw-r--r-- | f3s/kobo-sync-server/helm-chart/templates/ingress.yaml | 18 | ||||
| -rw-r--r-- | f3s/kobo-sync-server/helm-chart/templates/persistent-volume.yaml | 28 | ||||
| -rw-r--r-- | f3s/kobo-sync-server/helm-chart/templates/service.yaml | 11 | ||||
| -rw-r--r-- | frontends/Rexfile | 2 |
8 files changed, 144 insertions, 1 deletions
diff --git a/f3s/kobo-sync-server/Justfile b/f3s/kobo-sync-server/Justfile new file mode 100644 index 0000000..d1c198f --- /dev/null +++ b/f3s/kobo-sync-server/Justfile @@ -0,0 +1,12 @@ +NAMESPACE := "services" +RELEASE_NAME := "koreader-sync-server" +CHART_PATH := "./helm-chart" + +install: + helm install {{RELEASE_NAME}} {{CHART_PATH}} --namespace {{NAMESPACE}} --create-namespace + +upgrade: + helm upgrade {{RELEASE_NAME}} {{CHART_PATH}} --namespace {{NAMESPACE}} + +delete: + helm uninstall {{RELEASE_NAME}} --namespace {{NAMESPACE}} diff --git a/f3s/kobo-sync-server/README.md b/f3s/kobo-sync-server/README.md new file mode 100644 index 0000000..559e2eb --- /dev/null +++ b/f3s/kobo-sync-server/README.md @@ -0,0 +1,43 @@ +# Kobo Sync Server + +This directory contains the Helm chart for deploying the [koreader-sync-server](https://github.com/koreader/koreader-sync-server). + +## Prerequisites + +Before installing the chart, you must manually create the following directory on your `f0` host system to be used by the persistent volume: + +- `/data/nfs/k3svolumes/koreader-sync-server/data` + +To do so, run the following command on `f0`: + +```bash +mkdir -p /data/nfs/k3svolumes/koreader-sync-server/data +``` + +## Deployment + +To deploy the koreader-sync-server to the k3s cluster, you can use the `Justfile` in this directory. + +### Install + +To install the Helm chart, run the following command: + +```bash +just install +``` + +### Upgrade + +To upgrade the Helm chart, run the following command: + +```bash +just upgrade +``` + +### Delete + +To delete the Helm chart, run the following command: + +```bash +just delete +``` diff --git a/f3s/kobo-sync-server/helm-chart/Chart.yaml b/f3s/kobo-sync-server/helm-chart/Chart.yaml new file mode 100644 index 0000000..671368a --- /dev/null +++ b/f3s/kobo-sync-server/helm-chart/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +name: koreader-sync-server +description: A Helm chart for deploying a koreader-sync-server +version: 0.1.0 +appVersion: "latest" diff --git a/f3s/kobo-sync-server/helm-chart/templates/deployment.yaml b/f3s/kobo-sync-server/helm-chart/templates/deployment.yaml new file mode 100644 index 0000000..2f742df --- /dev/null +++ b/f3s/kobo-sync-server/helm-chart/templates/deployment.yaml @@ -0,0 +1,26 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: koreader-sync-server +spec: + replicas: 1 + selector: + matchLabels: + app: koreader-sync-server + template: + metadata: + labels: + app: koreader-sync-server + spec: + containers: + - name: koreader-sync-server + image: koreader/kosync:latest + ports: + - containerPort: 17200 + volumeMounts: + - name: data + mountPath: /var/lib/redis + volumes: + - name: data + persistentVolumeClaim: + claimName: koreader-sync-server-data diff --git a/f3s/kobo-sync-server/helm-chart/templates/ingress.yaml b/f3s/kobo-sync-server/helm-chart/templates/ingress.yaml new file mode 100644 index 0000000..d5991cf --- /dev/null +++ b/f3s/kobo-sync-server/helm-chart/templates/ingress.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: koreader-sync-server-ingress + annotations: + kubernetes.io/ingress.class: "traefik" +spec: + rules: + - host: koreader.f3s.buetow.org + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: koreader-sync-server + port: + number: 80 diff --git a/f3s/kobo-sync-server/helm-chart/templates/persistent-volume.yaml b/f3s/kobo-sync-server/helm-chart/templates/persistent-volume.yaml new file mode 100644 index 0000000..33a8ade --- /dev/null +++ b/f3s/kobo-sync-server/helm-chart/templates/persistent-volume.yaml @@ -0,0 +1,28 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: koreader-sync-server-data-pv +spec: + capacity: + storage: 1Gi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + hostPath: + path: /data/nfs/k3svolumes/koreader-sync-server/data + type: Directory +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: koreader-sync-server-data + namespace: services +spec: + storageClassName: "" + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + volumeName: koreader-sync-server-data-pv diff --git a/f3s/kobo-sync-server/helm-chart/templates/service.yaml b/f3s/kobo-sync-server/helm-chart/templates/service.yaml new file mode 100644 index 0000000..e0fb9ae --- /dev/null +++ b/f3s/kobo-sync-server/helm-chart/templates/service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: koreader-sync-server +spec: + selector: + app: koreader-sync-server + ports: + - protocol: TCP + port: 80 + targetPort: 17200 diff --git a/frontends/Rexfile b/frontends/Rexfile index 0079387..a700e38 100644 --- a/frontends/Rexfile +++ b/frontends/Rexfile @@ -77,7 +77,7 @@ our @dns_zones_remove = qw//; # k3s cluster running on FreeBSD in my LAN our @f3s_hosts = - qw/f3s.buetow.org anki.f3s.buetow.org bag.f3s.buetow.org flux.f3s.buetow.org audiobookshelf.f3s.buetow.org gpodder.f3s.buetow.org radicale.f3s.buetow.org vault.f3s.buetow.org syncthing.f3s.buetow.org uprecords.f3s.buetow.org/; + qw/f3s.buetow.org anki.f3s.buetow.org bag.f3s.buetow.org flux.f3s.buetow.org audiobookshelf.f3s.buetow.org gpodder.f3s.buetow.org radicale.f3s.buetow.org vault.f3s.buetow.org syncthing.f3s.buetow.org uprecords.f3s.buetow.org koreader.f3s.buetow.org/; # optionally, only enable manually for temp time, as no password protection yet # push @f3s_hosts, 'registry.f3s.buetow.org'; |
