diff --git a/apps/miniflux/app.yaml b/apps/miniflux/app.yaml new file mode 100644 index 0000000..2791bdc --- /dev/null +++ b/apps/miniflux/app.yaml @@ -0,0 +1,12 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: miniflux +metadata: + name: miniflux +resources: + - app/namespace.yaml + - app/miniflux-sealedsecret.yaml + - app/postgres.yaml + - app/repository.yaml + - app/release.yaml + - app/route.yaml diff --git a/apps/miniflux/app/miniflux-sealedsecret.yaml b/apps/miniflux/app/miniflux-sealedsecret.yaml new file mode 100644 index 0000000..4712f8b --- /dev/null +++ b/apps/miniflux/app/miniflux-sealedsecret.yaml @@ -0,0 +1,18 @@ +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + creationTimestamp: null + name: miniflux-secret + namespace: miniflux +spec: + encryptedData: + postgres-password: AgCDmnhV7iONi7rE2nixJed7g9acU/99AdJ0hg3H+tmpXQknUyIIkKY/DhL6sNOIfli0r9VsfU/c9guGAFx8VKhXOsl8t43K9j+2maowCackFv/Ok0N13qhd8sQd5wRcrT8eADUe+a0E4F7EHqWRV+EYtxtl2UXgD1MTDpaR15xQiKxgQXkVv1rnLH6NHjRrLQ0nKpeaoZdEHEch/Nh1OS5TGVzPRq0K8aI8HSIHGWn097wXLxHNjynYSOTayBncpJPSGMVt27t6UXhDni94DhO04UsbDJPUimdjmLQ5toC+qTo1q6wdQjX79u+S/9E7Qy3Driwk1OjGzNFSF7yy7jhWDrK5UlbG1qwSQjbXLwOgQWjJEJun+FPG90G+NxjkBtACdp4nhde+i2VShuf6lBgA/TXs+2YQL5QDiaWhhte0AdNQYDgZeQoOUQyxN1ecBD7vXYC+nWBkP7wLXZ9GB35p8/OupevWBwgaN6nd0G1/1BKJpUHXmnv8WdpzSMN0A8fbQRElyZr5I+PcAtFF6etH2/EYBxyWtAZSmhKidDySVlAnrYR19F1xM1t8iZXDbcpO9+CWr2vonara3/5mH3A8HYuUYY9heYSybZ51fRLv6F/K/bzkz2t7FQrfDXLbR76XR2ftumUPBbtIWoqP0uTVun/G7fxk+Ouj4q7VpgpCSLzgeXhvrvqkkM8NME3HnFlEmhU7AKwK0Iv2B7PMfA== + replication-password: AgBceAJPDS/VfYhNOAn98bYQUf1+y5uKp99x9Z+VDGKx+qSf1tdgAdjIP3RjfaQwJyaUbJIBnZmqyVre9/30+yrfjckQA4nZ23PfPJzG1zRbnKy4Gg5GBTIYx9qG4aSO1G8rAYDgyHCEZbJmHen32zqd+GL9vrcEy+tHanAmwzPQnv0ihBQzb8FVCU0WO+ZFdomeZ0djMCkphtKoqWoVcJMtTp+FEkb13PvDU1LetRx8i4+6iwNrLdo4YTWk54DGlwHmkZLVHte87J4AMOKAHG0FUHvzx+RbDbehEInbvRS2xte9Auck3ucUfQn/91TZdbl0dtW6IHq8T3cbcjocUSre4MJ7UuApMh11/rBqtZHe5u+ZqAUqfx5kMCH6IFfxoMpIK0q1e2kIC2Bza1+4qBaZ2T7eY60RNToqdktaXXy46Ly/Bn8/qqNXfgtYrVZHM+P2926U5L+QVqYvoDpMeTFCvWSgN4ZHRJT0gTvICDVQ956YlqI1XLWDjcZFaQDeiUn5opc6XRKoUHweLsW5ivxiui8lexXO+5ZzcV5u3VIm1TtqlY4CLw5hJZgD5cZrTZcftn1YZ8c3ZDurrn4Sp1plX9u7J8uleOqkSBBFMmLGKBPOdHM3L5TDLJ7h2FNS5sMRh6/5yuMZxIQ1m/kUgII9/SjvBDsIBUz4KzuT54nh8OZ07Cj29vNkZb0daGFvG9aqS+nnLx8qJTXaewvZpw== + values: AgBMzZ5SNZHJ72D5ds8x9xe96iPe5yFssh+z4AHHp76znTeNdOImfTGZUX9cUz2JoL8wO4DqpGG3S0tzM21zZqDXkMC3sTc/pVRHUDa9T1vV+RX/jxq2+PaE64xVtb4O8BiXSp2DpIEq/TyLhCBkbdSBuu7OeQxPN5MZ8S+7GTLQbqlav0lVc7N2zAYxQ6Lwr3znkV0aoEnn4Cw8NDjcOwjLBbdquTlthIN4J1U/tMgjmzT6TYD/kghpfmxm13FRGUPQzmFWoN0ymEsZemeyOL72c7sfJUpQQD2vKzUfuXnnkNytmrMCleer7a18Typ67V3iPGr+ewfxHNmp7HcTy2L1glTBNcaDxr0qDvnqHEQexSnlkXB5qTV6hlaPLWmAELFpGQKY06GPQ/Uw9EnTDj0e0/Vq3r8cAZorElCai48A3w9klTi7s+XpgMXLBcmh7ZM2095Of9KeupzXCBxXmxLsgb0wEgOgC7fFdXvz0rN02PKQa9ETWLd8Sft2TKY6PsDRwbLDd2NAeHZt6BqAfWFYLXm0stw8Bivxc1R28DIgTGiP6msgUSOTPfpcW2QzG2hRx5LfgDdqlNXavgj2gMyRMngTQ5MCdu1Cq/kIGhsLNFiV0Kv5SKw3uJZ4V3G1wbAf994cwlSqywgxT+4oIZRwmADPT6R3p+fklbls1DI8leLniUvS5il5Zzhl9nW443YVtzStMKbHUUhf5ACRj1+fNyRV78Iz60RDJGuJl+f87GDQCqk7iNsRfESxEaiUMNakZpy1kdC10j2q23tE5y6FROrwcTIAAxvbZIollDXdZG154Xv4YOeIZSiL4YJ/ePg9WexvDSKKf+ywEpbYpQBxVF6OPA5ikoLXLcEP/my4jbrCyhE= + template: + metadata: + creationTimestamp: null + name: miniflux-secret + namespace: miniflux + type: Opaque + diff --git a/apps/miniflux/app/namespace.yaml b/apps/miniflux/app/namespace.yaml new file mode 100644 index 0000000..0e7a040 --- /dev/null +++ b/apps/miniflux/app/namespace.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: miniflux + labels: + name: miniflux diff --git a/apps/miniflux/app/postgres.yaml b/apps/miniflux/app/postgres.yaml new file mode 100644 index 0000000..9cf8db8 --- /dev/null +++ b/apps/miniflux/app/postgres.yaml @@ -0,0 +1,22 @@ +apiVersion: kubegres.reactive-tech.io/v1 +kind: Kubegres +metadata: + name: miniflux-db + namespace: miniflux +spec: + replicas: 2 + image: postgres:16-alpine + database: + size: 2Gi + env: + - name: POSTGRES_PASSWORD + valueFrom: + secretKeyRef: + name: miniflux-secret + key: postgres-password + + - name: POSTGRES_REPLICATION_PASSWORD + valueFrom: + secretKeyRef: + name: miniflux-secret + key: replication-password diff --git a/apps/miniflux/app/release.yaml b/apps/miniflux/app/release.yaml new file mode 100644 index 0000000..5530db1 --- /dev/null +++ b/apps/miniflux/app/release.yaml @@ -0,0 +1,24 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: miniflux + namespace: miniflux +spec: + releaseName: miniflux + chart: + spec: + chart: miniflux + sourceRef: + kind: HelmRepository + name: miniflux + interval: 50m + install: + remediation: + retries: 3 + values: + postgresql: + enabled: false + valuesFrom: + - kind: Secret + name: miniflux-secret + valuesKey: values \ No newline at end of file diff --git a/apps/miniflux/app/repository.yaml b/apps/miniflux/app/repository.yaml new file mode 100644 index 0000000..ce7df9f --- /dev/null +++ b/apps/miniflux/app/repository.yaml @@ -0,0 +1,9 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: HelmRepository +metadata: + name: miniflux + namespace: miniflux +spec: + type: oci + interval: 5m + url: oci://ghcr.io/gabe565/charts \ No newline at end of file diff --git a/apps/miniflux/app/route.yaml b/apps/miniflux/app/route.yaml new file mode 100644 index 0000000..4a548aa --- /dev/null +++ b/apps/miniflux/app/route.yaml @@ -0,0 +1,14 @@ +apiVersion: traefik.containo.us/v1alpha1 +kind: IngressRoute +metadata: + name: miniflux-route + namespace: miniflux +spec: + entryPoints: + - web + routes: + - match: Host(`miniflux.trivernis.dev`) || Host(`miniflux.trivernis.net`) + kind: Rule + services: + - name: miniflux + port: 8080 diff --git a/cluster/apps.yaml b/cluster/apps.yaml index 7ed651c..16fd12f 100644 --- a/cluster/apps.yaml +++ b/cluster/apps.yaml @@ -87,3 +87,18 @@ spec: prune: true wait: true timeout: 5m0s +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: apps-miniflux + namespace: flux-system +spec: + interval: 5m + sourceRef: + kind: GitRepository + name: flux-system + path: ./apps/miniflux + prune: true + wait: true + timeout: 5m0s