feat: add miniflux

This commit is contained in:
JJGadgets
2023-06-07 19:43:40 +08:00
parent ef2313b880
commit 8748027660
8 changed files with 146 additions and 9 deletions

View File

@@ -0,0 +1,76 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: &app miniflux
namespace: *app
spec:
chart:
spec:
chart: app-template
version: 1.5.1
sourceRef:
name: bjw-s
kind: HelmRepository
namespace: flux-system
values:
global:
fullnameOverride: *app
automountServiceAccountToken: false
controller:
type: deployment
replicas: 1
image:
repository: ghcr.io/miniflux/miniflux
tag: 2.0.44-distroless@sha256:c369c2fdaff368a469c836f0c9f40f15f02f74b4418617fd9c886f28b02154d3
podLabels:
ingress.home.arpa/nginx: "allow"
db.home.arpa/pg: "pg-default"
env:
TZ: "${CONFIG_TZ}"
BASE_URL: "https://${APP_DNS_MINIFLUX}"
RUN_MIGRATIONS: "1"
CREATE_ADMIN: "1"
OAUTH2_PROVIDER: oidc
OAUTH2_REDIRECT_URL: https://${APP_DNS_MINIFLUX}/oauth2/oidc/callback
OAUTH2_OIDC_DISCOVERY_ENDPOINT: https://${APP_DNS_AUTH}/application/o/miniflux/
OAUTH2_USER_CREATION: "1"
envFrom:
- secretRef:
name: miniflux-secrets
service:
main:
ports:
http:
port: 8080
ingress:
main:
enabled: true
primary: true
ingressClassName: nginx
hosts:
- host: &host "${APP_DNS_MINIFLUX}"
paths:
- path: /
pathType: Prefix
tls:
- hosts:
- *host
podSecurityContext:
runAsUser: &uid ${APP_UID_MINIFLUX}
runAsGroup: *uid
fsGroup: *uid
fsGroupChangePolicy: Always
resources:
requests:
cpu: 10m
memory: 128Mi
limits:
memory: 512Mi
initContainers:
01-init-db:
image: ghcr.io/onedr0p/postgres-init:14.8@sha256:d8391076d2c6449927a6409c4e72aaa5607c95be51969036f4feeb7c999638ea
imagePullPolicy: IfNotPresent
envFrom:
- secretRef:
name: miniflux-pg-superuser

View File

@@ -0,0 +1,27 @@
---
apiVersion: v1
kind: Secret
metadata:
name: "miniflux-secrets"
namespace: "miniflux"
type: Opaque
stringData:
DATABASE_URL: "postgres://${SECRET_MINIFLUX_PG_USER}:${SECRET_MINIFLUX_PG_PASS}@pg-default-rw.pg.svc.cluster.local:5432/${SECRET_MINIFLUX_PG_DBNAME}"
ADMIN_USERNAME: "${SECRET_MINIFLUX_ADMIN_USERNAME}"
ADMIN_PASSWORD: "${SECRET_MINIFLUX_ADMIN_PASSWORD}"
OAUTH2_CLIENT_ID: "${SECRET_MINIFLUX_OIDC_ID}"
OAUTH2_CLIENT_SECRET: "${SECRET_MINIFLUX_OIDC_SECRET}"
---
apiVersion: v1
kind: Secret
metadata:
name: "miniflux-pg-superuser"
namespace: "miniflux"
type: Opaque
stringData:
INIT_POSTGRES_HOST: "pg-default-rw.pg.svc.cluster.local"
INIT_POSTGRES_DBNAME: "${SECRET_MINIFLUX_PG_DBNAME}"
INIT_POSTGRES_USER: "${SECRET_MINIFLUX_PG_USER}"
INIT_POSTGRES_PASS: "${SECRET_MINIFLUX_PG_PASS}"
INIT_POSTGRES_SUPER_PASS: "${SECRET_PG_DEFAULT_SUPER_PASS}"

View File

@@ -0,0 +1,13 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: miniflux-app
namespace: flux-system
labels:
wait.flux.home.arpa/disabled: "true"
spec:
path: ./kube/3-deploy/2-apps/miniflux/app
dependsOn:
- name: ${CLUSTER_NAME_LOWER}-1-core-05-ingress-nginx
- name: 1-core-db-pg-clusters-default

View File

@@ -0,0 +1,6 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ns.yaml
- ks.yaml

View File

@@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: miniflux

View File

@@ -59,12 +59,19 @@ SECRET_KAHIRC_ENO1DEV_SENDPASS=ENC[AES256_GCM,data:x2ibpAnes91GZ9PyMXlbVnigh39lp
SECRET_ATUIN_PG_DBNAME=ENC[AES256_GCM,data:ii5FQKwJUHslIjTvdg3sw5goEI4p6xIM3gljXu++ge4HTEbwq2tWPw==,iv:LXiWmPcNCV3KUR+zt8RlCXaFGKB7ExvDkcrB9M+11iY=,tag:JdhiCoRwmeTEov8dBb7S4A==,type:str]
SECRET_ATUIN_PG_USER=ENC[AES256_GCM,data:R7OxwP9GJIVH75nXVbjc/F4AiUGfFJGaHUU2cTCtzjygAZ5TwpX+mptKj4m/e0KaImAe4Hg5d3Tq5ZRZkkfCuQ==,iv:qyK8ww/o9KJ12wMm2fK9YuZ9WEFiXz0N7EJySJRzJrk=,tag:ZUduwQmPFPYJHZgFavWZYQ==,type:str]
SECRET_ATUIN_PG_PASS=ENC[AES256_GCM,data:yCcFbOqD89kRk0vQl3DzW2kZe6OhFjOY3vN4T3kfPXIFO75DHgvNlV0W8mOiBNdkRh/x5ufqkK+AnpvP53s2/9btkXJudKUsIrd8H4ITv77HCsguM06rtY0SIbNLkgUJNAvpR64nIKT1ok7uSbo8inGndb/F18V0bPuzFVbeyTGjYniLKuVO9sAL03Jqwl2TsaSkOuBYQ/yp5uEiC32LFbGULwjjHA==,iv:y6qE5Ss3A4MHL9L4IFAjN+axmh6XbwGsvYKJMkA3jzk=,tag:zNGuPAAIWDCw4WvBADzuYA==,type:str]
sops_mac=ENC[AES256_GCM,data:PYjxPD9utPM0UWU9XuEooN56nRL2EKXIYQKDZATnVjAQURmaZiEQEp8DL7eXC8GIfqD27Iny1grV+j7KhqSEhxUeppvsj/OaPXSrM04CEY2FKakzQsEj/Y1QgUMHTAI8sQf1SCT2wQnRzQAKLIUSULwXC6DTEOBptBH3Qrh/Fwo=,iv:V2wXQnFPeVmKLoYbj+QjCP4Y2miHR0owB33VOVApeeM=,tag:SpzG8FQLDyd7TokE9LAQAg==,type:str]
sops_version=3.7.3
sops_pgp__list_0__map_created_at=2023-06-01T18:01:07Z
SECRET_MINIFLUX_ADMIN_USERNAME=ENC[AES256_GCM,data:Qofw3MQz,iv:LxYBCR1dIqh2xlgGcTv5Y7fnSYc2eVX0bdBUA6QfWYM=,tag:zpK/wQxI4e79tgbkp0O2bg==,type:str]
SECRET_MINIFLUX_ADMIN_PASSWORD=ENC[AES256_GCM,data:OBGQZM+Yk4cRLZqG1Tq7Zo5FAED/zT7Rvh4rWphXuBlrq8lIxe6GYV/kPF6o6bhj,iv:x2KAEH5rnaMjtH2nfd3cfXThm2fqnWAxsUcyt/XG5IE=,tag:ypNBgv7Pl16ly9er6veBEA==,type:str]
SECRET_MINIFLUX_OIDC_ID=ENC[AES256_GCM,data:1CqKNuEdymDEmPlsDSjPrOF53cHc611kfl6CcFG6Cn8u2LdkJrrYzA==,iv:uAW7dRRgvR335o6OsUSc+AZgXB5z8gZ5RSizVoLddvY=,tag:uGuFFD0ePxa9Wo1wR3tJ+A==,type:str]
SECRET_MINIFLUX_OIDC_SECRET=ENC[AES256_GCM,data:QVNDP4WNuH7VVvc9r+xZREGfNc5p/X8QXQP/Xg1Si3RgiaZgy9LLEzN/SwIm2eSJSpP2hlXlFGbr6mr1Q4/4gOwSped3Q2GIRcZtv4vjtq86B5xVjzT8qclay1xLX5nK702An2ttL1CjOEPN2PPExSYe6YzhCWwgRlAEOW6T0Fg=,iv:gXypds64tga0sOaF/Kf/jXHPlYqjUlCL/aHG4eC44H4=,tag:ALy9C5FEtT21WS5PNHI3SA==,type:str]
SECRET_MINIFLUX_PG_DBNAME=ENC[AES256_GCM,data:Gh38/ljUWkU=,iv:JPsEPf/aiDXFncN3ogLqV5FlUqWm7EQ5R4+fEf13yLA=,tag:tOzrhackOD9UdTwNBBBFvw==,type:str]
SECRET_MINIFLUX_PG_USER=ENC[AES256_GCM,data:tDy8L5RZaHI=,iv:0aHtZg0CWqBbby6PXyXAg5atsptM0bU/nwD2Srrp/rQ=,tag:h8xviXJKxGbCtcEWk0PfQw==,type:str]
SECRET_MINIFLUX_PG_PASS=ENC[AES256_GCM,data:rLuVT8S9hkQTE/T0Z6M06qgmzIt8ufC8drdofL1n19uefnLsU4WqgLZ/KYGrxQ==,iv:oLcrZilIuQf+QHCJYiQllummr4yRz6aflDhNb21GNUE=,tag:H4XCkfmJl8jQogvGDCVZOw==,type:str]
sops_mac=ENC[AES256_GCM,data:VnQnQ/pCifc/dyInxg2/IZnMCJkIen5G3klM6K5PwYJa6pMZNsENKXvZ6BhrSz6DxjofBPQv7egDnNDSOvPdAAnFUZbntAhn1m5jLkR9cQ3l62PAQynaq8pEsc3HUKR5ov23Ek65+7seOKYcVivnCBVnmCQWCbpgkycoNXwRUdg=,iv:w5fDuLLMK0ybJWKRnQkOXjQx6iCIQdAnlRWruMt4t4U=,tag:uyJjHyLn0SSMf9i69KX9bg==,type:str]
sops_pgp__list_0__map_enc=-----BEGIN PGP MESSAGE-----\n\nhF4DAAAAAAAAAAASAQdANDTQwVjZ/Ad3iqBe0LL2sGCrEvrl6W6VaMjFgJCUkzYw\nwASmi9Y/OqREXtEItA1rKZDTM38LuMfcU4vAeEV0SNWlW5CQquN8UpLwMATrBdXr\n0lwBcvIZFLbbnfqFAdJ1EzbRWvHuh+yn5DBMH+odm3ZLaJqiiV9EaWhfl2rdIOr4\nPJQf6Ev1hueWmc9H45a8nvwH8sOl9MH9hl3TW7o9JOOhGmZ4BBVaSJW6f0UiZw==\n=iSQg\n-----END PGP MESSAGE-----\n
sops_age__list_0__map_recipient=age1u57l4s400gqstc0p485j4646cemntufr0pcyp32yudklsp90xpmszxvnkj
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxalh5ckhGWGxFTmFqSDQv\ndXlPOUlyYVNkWHA5VGN2TERvaWtWMHlJdFRNCnQ1NlJldEgxb2E0VEdVSDVpbHp5\nZEpTMEQ5dWU0Q2ZWTFBOZFp5Ti95ejQKLS0tIDF0c3VlazRzVWtVQ1JXT3hyTWNN\nWXpUSUNydGY4V04xZ2dTSzlvWmNOTGsKQ3rimeB7zqB4dYMp1pR1AOltXk+GhGsb\ns0jDxr/SiPUaiYoVCY4fqu9geXNRDGlPh3T2Lhs9Siif4Vnc8qTQBw==\n-----END AGE ENCRYPTED FILE-----\n
sops_lastmodified=2023-06-07T10:44:37Z
sops_pgp__list_0__map_created_at=2023-06-01T18:01:07Z
sops_unencrypted_suffix=_unencrypted
sops_lastmodified=2023-06-07T07:45:23Z
sops_version=3.7.3
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxalh5ckhGWGxFTmFqSDQv\ndXlPOUlyYVNkWHA5VGN2TERvaWtWMHlJdFRNCnQ1NlJldEgxb2E0VEdVSDVpbHp5\nZEpTMEQ5dWU0Q2ZWTFBOZFp5Ti95ejQKLS0tIDF0c3VlazRzVWtVQ1JXT3hyTWNN\nWXpUSUNydGY4V04xZ2dTSzlvWmNOTGsKQ3rimeB7zqB4dYMp1pR1AOltXk+GhGsb\ns0jDxr/SiPUaiYoVCY4fqu9geXNRDGlPh3T2Lhs9Siif4Vnc8qTQBw==\n-----END AGE ENCRYPTED FILE-----\n
sops_pgp__list_0__map_fp=31E70E5BC80C58AFF5DD649921AC5A1AC6E5B7F2

View File

@@ -96,6 +96,8 @@ APP_IP_KAHIRC=ENC[AES256_GCM,data:Hd42pccz05+sAEA=,iv:EDz241GJi6I72ci0v0HLYJ9vHU
APP_UID_KAHIRC=ENC[AES256_GCM,data:oYaz184=,iv:IXl3d6G64DstmHl51Tctjzt0+Z+EQPc/4X6FPlAENa8=,tag:8LjzPnO8mpUGV+uUq6JOaA==,type:str]
APP_DNS_ATUIN=ENC[AES256_GCM,data:Kgs4WlWUPIJYD+87,iv:uUeziXEoVAFqfUWE2o/onryjeTOjNThRSAA6Jp/oAZ8=,tag:lNoFMwrAS8AgKPI/uXVNJg==,type:str]
APP_UID_ATUIN=ENC[AES256_GCM,data:HYuHZ24=,iv:zHsrDTCdO0T4+RCAun8PRVyRiIlQHI4ijxIn+XS21x4=,tag:lFgExxN5ltzTzJtAvxy6rQ==,type:str]
APP_DNS_MINIFLUX=ENC[AES256_GCM,data:BbbqsaMScHlifA==,iv:fIj1yKEoPyqvQoyMz5tghISWAcNL1A/3U4i2qBdt22c=,tag:/AVqrNyeL+Dm+F79ZbxyFA==,type:str]
APP_DNS_MINIFLUX=ENC[AES256_GCM,data:vXeyLzI=,iv:xCQjeomz10XMzcNw0CBdH+rj45z5BeoaI2ZMWJi2Jzw=,tag:dPA+EdUEOyr3KXZJdx/HkQ==,type:str]
CONFIG_MINECRAFT_OPS=ENC[AES256_GCM,data:al3glJDrtuqtTM2z4W7n+tPNf6XVfK64Jdb9s5RAE5NUwxyK,iv:kYqlsOabsa2iBZKgqjOpFYJo0DMFuoo3ZWCqb/Xzi5c=,tag:nIqPXvBvxdi8crMj1CYsEw==,type:str]
CONFIG_MINECRAFT_ICON=ENC[AES256_GCM,data:nNzsyRclLnPZ+8Td/WJg2u8V/QKf/xowrghmTaKRNb9a5BMOxtzmiyAt6Us8OoY=,iv:b7fHZQdOjc4oCCLtLhopNg6G7IS2u9NUdBLCN6CjSKc=,tag:+cPgP1oK/9+EK2tB9Y45zw==,type:str]
CONFIG_MINECRAFT_NAME=ENC[AES256_GCM,data:1qSqJGmGON9BhJKRJA==,iv:Sdwq0LLLdBQlr3m+0Ey2IE9FcRtVKOtXsswLMMp9A5A=,tag:WpaTzqSO3+N+vnJkGI+pCQ==,type:str]
@@ -109,12 +111,12 @@ CONFIG_SANDSTORM_INIT_SCENARIO=ENC[AES256_GCM,data:199SWIbX0ecKR9r5VjxL/aZROg==,
CONFIG_ZEROTIER_ENDPOINT=ENC[AES256_GCM,data:tOyIlrzdn8sck7um7OSicq5T0XWAmymaRLn2ENL1EyPGVdXZhi/IDRTNxmBzCVkUdju0D79EKB29qTw=,iv:FjiBFYt68V1J+/AOEptVDQ6IoXxGevvN9NCB54Rs9ws=,tag:bWkb2QIS32ltJKCrHWL0gw==,type:str]
CONFIG_AUTHENTIK_REMOTE_HOST=ENC[AES256_GCM,data:Iv7k3CoKsLrQf0PRIfhGMCAjOU3AdweS+LFWMeEQoWc=,iv:TsRwWDUrI3zAgBgFRkZAYUNlZV0Q/gOlGjKFrheM0nE=,tag:38OGfWYEm/h/+FH7IsIH3Q==,type:str]
CONFIG_HEADSCALE_IPV4=ENC[AES256_GCM,data:EZ7GMHA6u1wWPS5g6Pg=,iv:W1hcseQ4Q6CisTXnDLI7hWTy18fIVKtZ46tudCyhfa4=,tag:2WnnNjuZhwUPG07OKTQt2g==,type:str]
sops_mac=ENC[AES256_GCM,data:OH5KUjd3OEhKrbSfhxzmylI0PVvjpl2vOpIH15qWP2S7ma3WHaGuwQiF1B6VCVISWVHsyOD2O4EZJrSYWeFySW5t6KDacW32Lezfcq6f9xJpJ71kZyFlJ8BcBEbbA7iwB8sRWsdSZC4eEFlEsd9hQJz9eRo3eMmhaWxWe03srrQ=,iv:IGB+V1M6aE0pooxe3NWSd73ubDMvsvnnUbLR3FTLXcE=,tag:BT1IhsDVuY6FI1+AjZuQmw==,type:str]
sops_pgp__list_0__map_enc=-----BEGIN PGP MESSAGE-----\n\nhF4DAAAAAAAAAAASAQdAbA35718t0WVKrjQFYUPviCb0lVuh8NpfSdJCHjHcWWww\n8ak4q4VL69tZLSjQHx+VsMmKooknxWz6pw0lGxyDYlZMQ81bodInjaZGFZSz8Uuh\n0l4BhDCNDBBALTrnTliz6/DAHvmavI4UxMHost5alFio9JPkTDNmXZyvcy1/R6aw\n/uhQXLUBRvm0TSOhBZb7d0SLkLfe02Um40w1TibpKXsZz1GOMbPRNBMHHra0QIuQ\n=0jA+\n-----END PGP MESSAGE-----\n
sops_unencrypted_suffix=_unencrypted
sops_version=3.7.3
sops_lastmodified=2023-06-07T07:46:54Z
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFSXFvLzFQaFJ0OVJKUFV5\nTWh2OUltUlpJWFlVVytFYU9VajBHSnQ4SGdjCnRVbEVXdDVyUHJrR05Ba0xvUm1l\nTkt2YmNUZy90ZFA2b3QrODFKZ01EVG8KLS0tIEw2dkd1cnFCbnI5eWxKL2o1aDVB\nN0hveXZ2dWdxQ2k2L0pGR0ROMStVTmsK4dV/hNyDjsYnVUiFQ7kqdmcVHfYyVckz\nh/rwLjcZgsup72WDVP3v6Eul8B3LKFrSb8CDFA54tyQmSdFDCQC+Zg==\n-----END AGE ENCRYPTED FILE-----\n
sops_lastmodified=2023-06-07T11:42:24Z
sops_age__list_0__map_recipient=age1u57l4s400gqstc0p485j4646cemntufr0pcyp32yudklsp90xpmszxvnkj
sops_mac=ENC[AES256_GCM,data:FdsCmuG2wepyoYr7HeoIKI5Ft4cBeAC4tWQkXV5GIKGtCsdLisHYSJ43f4W+fVPDaBbDei8aUQKoCeB70gDOQeFUpjZHA2xCGL6m9WT+iHTdXkdvCy3uPNt2axfPTp76gRMSkWvoAMoMaaZVXwuGxfKxO1SBG6DADxw659FyVDY=,iv:slvwKgeWTzx1aCydvijzfXXLX6/UWXE/xeLlVeLUNxk=,tag:vF/SioHRw2gMTImsYPmFQA==,type:str]
sops_pgp__list_0__map_created_at=2023-06-01T18:01:04Z
sops_pgp__list_0__map_fp=31E70E5BC80C58AFF5DD649921AC5A1AC6E5B7F2
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFSXFvLzFQaFJ0OVJKUFV5\nTWh2OUltUlpJWFlVVytFYU9VajBHSnQ4SGdjCnRVbEVXdDVyUHJrR05Ba0xvUm1l\nTkt2YmNUZy90ZFA2b3QrODFKZ01EVG8KLS0tIEw2dkd1cnFCbnI5eWxKL2o1aDVB\nN0hveXZ2dWdxQ2k2L0pGR0ROMStVTmsK4dV/hNyDjsYnVUiFQ7kqdmcVHfYyVckz\nh/rwLjcZgsup72WDVP3v6Eul8B3LKFrSb8CDFA54tyQmSdFDCQC+Zg==\n-----END AGE ENCRYPTED FILE-----\n
sops_pgp__list_0__map_enc=-----BEGIN PGP MESSAGE-----\n\nhF4DAAAAAAAAAAASAQdAbA35718t0WVKrjQFYUPviCb0lVuh8NpfSdJCHjHcWWww\n8ak4q4VL69tZLSjQHx+VsMmKooknxWz6pw0lGxyDYlZMQ81bodInjaZGFZSz8Uuh\n0l4BhDCNDBBALTrnTliz6/DAHvmavI4UxMHost5alFio9JPkTDNmXZyvcy1/R6aw\n/uhQXLUBRvm0TSOhBZb7d0SLkLfe02Um40w1TibpKXsZz1GOMbPRNBMHHra0QIuQ\n=0jA+\n-----END PGP MESSAGE-----\n

View File

@@ -8,6 +8,7 @@ resources:
# - flux-install.yaml
# - flux-repo.yaml
- ../../../3-deploy/2-apps/atuin/
- ../../../3-deploy/2-apps/miniflux/
# - ceph-rgw-ext-users.yaml
# - ../../../3-deploy/1-core/05-ingress/cloudflare/
# - ../../../3-deploy/1-core/05-ingress/external-proxy-x/