diff options
Diffstat (limited to 'bundles/miniflux')
| -rw-r--r-- | bundles/miniflux/files/kube.yaml | 84 | ||||
| -rw-r--r-- | bundles/miniflux/files/secret.yaml | 10 | ||||
| -rw-r--r-- | bundles/miniflux/items.py | 11 | ||||
| -rw-r--r-- | bundles/miniflux/metadata.py | 13 |
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": {} + }, +} |