about summary refs log tree commit diff
path: root/bundles/miniflux
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/miniflux')
-rw-r--r--bundles/miniflux/files/kube.yaml84
-rw-r--r--bundles/miniflux/files/secret.yaml10
-rw-r--r--bundles/miniflux/items.py11
-rw-r--r--bundles/miniflux/metadata.py13
4 files changed, 118 insertions, 0 deletions
diff --git a/bundles/miniflux/files/kube.yaml b/bundles/miniflux/files/kube.yaml
new file mode 100644
index 0000000..83b7edf
--- /dev/null
+++ b/bundles/miniflux/files/kube.yaml
@@ -0,0 +1,84 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: miniflux
+data:
+  BASE_URL: https://rss.gzr.im
+  CREATE_ADMIN: on
+  RUN_MIGRATIONS: on
+  METRICS_COLLECTOR: 1
+  METRICS_REFRESH_INTERVAL: 600
+  METRICS_ALLOWED_NETWORKS: 127.0.0.1/8,10.89.0.0/24
+  # use authelia
+  AUTH_PROXY_HEADER: 'Remote-User'
+  AUTH_PROXY_USER_CREATION: 0
+---
+apiVersion: v1
+kind: Pod
+metadata:
+  name: miniflux
+  labels:
+    traefik.enable: true
+    traefik.http.routers.miniflux.tls: true
+    traefik.http.routers.miniflux.tls.certresolver: le
+    traefik.http.routers.miniflux.entrypoints: http,https
+    traefik.http.routers.miniflux.rule: Host(`rss.gzr.im`)
+    traefik.http.routers.miniflux.service: miniflux
+    traefik.http.routers.miniflux.middlewares: authelia@docker
+    traefik.http.services.miniflux.loadbalancer.server.port: 8080
+    # metrics
+    traefik.http.routers.miniflux-metrics.entrypoints: metrics
+    traefik.http.routers.miniflux-metrics.rule: Path(`/metrics/miniflux`)
+    traefik.http.routers.miniflux-metrics.middlewares: replacepath-metrics
+spec:
+  # NOTE: we need to compensate for the lack of healthcheck-based retries
+  restartPolicy: Always
+  dnsPolicy: Default
+  containers:
+    - name: miniflux
+      image: docker.io/miniflux/miniflux:2.2.10
+      ports:
+        - containerPort: 8080
+          protocol: TCP
+      envFrom:
+      - configMapRef:
+          name: miniflux
+      - secretRef:
+          name: miniflux
+      livenessProbe:
+        exec:
+          command:
+          - /usr/bin/miniflux
+          - -healthcheck
+          - auto
+      resources:
+        requests:
+          cpu: 10m
+          memory: 60Mi
+        limits:
+          cpu: 100m
+          memory: 128Mi
+    - name: postgres
+      image: docker.io/library/postgres:15-alpine
+      volumeMounts:
+      - name: pg-data
+        mountPath: /var/lib/postgresql/data
+      envFrom:
+      - secretRef:
+          name: miniflux
+      livenessProbe:
+        exec:
+          command: ["pg_isready", "-U", "miniflux"]
+        initialDelaySeconds: 5
+      resources:
+        requests:
+          cpu: 10m
+          memory: 6Mi
+        limits:
+          cpu: 100m
+          memory: 128Mi
+  volumes:
+  - name: pg-data
+    hostPath:
+      path: /var/lib/miniflux
+      type: DirectoryOrCreate
diff --git a/bundles/miniflux/files/secret.yaml b/bundles/miniflux/files/secret.yaml
new file mode 100644
index 0000000..7a958c2
--- /dev/null
+++ b/bundles/miniflux/files/secret.yaml
@@ -0,0 +1,10 @@
+apiVersion: v1
+kind: Secret
+metadata:
+    name: miniflux
+data:
+    ADMIN_PASSWORD: ${repo.vault.password_for("miniflux_admin_pw").b64encode().value}
+    ADMIN_USERNAME: ${repo.vault.password_for("miniflux_admin_user").b64encode().value}
+    DATABASE_URL: ${repo.libs.util.base64(f"user=miniflux password={repo.vault.password_for("miniflux_db_pw")} dbname=miniflux sslmode=disable host=localhost")}
+    POSTGRES_USER:  ${repo.libs.util.base64("miniflux")}
+    POSTGRES_PASSWORD: ${repo.vault.password_for("miniflux_db_pw").b64encode().value}
diff --git a/bundles/miniflux/items.py b/bundles/miniflux/items.py
new file mode 100644
index 0000000..8245778
--- /dev/null
+++ b/bundles/miniflux/items.py
@@ -0,0 +1,11 @@
+files = {
+    "/etc/deployments/miniflux/kube.yaml": {
+        "content_type": "text",
+        "triggers": {"svc_s6rc:miniflux:restart"},
+    },
+    "/etc/deployments/miniflux/secret.yaml": {
+        "content_type": "mako",
+        "mode": "0600",
+        "triggers": {"svc_s6rc:miniflux:restart"},
+    },
+}
diff --git a/bundles/miniflux/metadata.py b/bundles/miniflux/metadata.py
new file mode 100644
index 0000000..a6e3b41
--- /dev/null
+++ b/bundles/miniflux/metadata.py
@@ -0,0 +1,13 @@
+defaults = {
+    "backup": {
+        "includes": {
+            "/var/lib/miniflux",
+        }
+    },
+    "containers": {
+        "miniflux": {},
+    },
+    "metrics": {
+        "miniflux": {}
+    },
+}