diff options
-rw-r--r-- | config.yaml | 2 | ||||
-rw-r--r-- | playbooks/setup_single.yaml | 4 | ||||
-rw-r--r-- | roles/actual/tasks/main.yaml | 2 | ||||
-rw-r--r-- | roles/miniflux/defaults/main.yaml | 9 | ||||
-rw-r--r-- | roles/miniflux/files/miniflux/Chart.yaml | 6 | ||||
-rw-r--r-- | roles/miniflux/files/miniflux/templates/ingress.yaml | 34 | ||||
-rw-r--r-- | roles/miniflux/files/miniflux/templates/miniflux.yaml | 41 | ||||
-rw-r--r-- | roles/miniflux/files/miniflux/templates/pv.yaml | 16 | ||||
-rw-r--r-- | roles/miniflux/files/miniflux/templates/pvc.yaml | 14 | ||||
-rw-r--r-- | roles/miniflux/files/miniflux/templates/service.yaml | 13 | ||||
-rw-r--r-- | roles/miniflux/tasks/main.yaml | 17 |
11 files changed, 155 insertions, 3 deletions
diff --git a/config.yaml b/config.yaml index 2f8e73f..535545f 100644 --- a/config.yaml +++ b/config.yaml @@ -35,6 +35,8 @@ monitoring: papermc: enabled: true version: 1.21.3 +miniflux: + enabled: true servers: base: true ca: diff --git a/playbooks/setup_single.yaml b/playbooks/setup_single.yaml index f080bf9..b05fd20 100644 --- a/playbooks/setup_single.yaml +++ b/playbooks/setup_single.yaml @@ -2,6 +2,6 @@ hosts: all gather_facts: false tasks: - - name: Setup cgit + - name: Setup miniflux include_role: - name: "roles/cgit" + name: "roles/miniflux" diff --git a/roles/actual/tasks/main.yaml b/roles/actual/tasks/main.yaml index 1733c68..d6bb15a 100644 --- a/roles/actual/tasks/main.yaml +++ b/roles/actual/tasks/main.yaml @@ -6,7 +6,7 @@ namespace: default state: "{%- if actual.enabled -%} present {%- else -%} absent {%- endif -%}" values: - replicas: "{{ actual.replicas}}" + replicas: "{{ actual.replicas }}" port: "{{ actual.port }}" image: "{{ actual.image }}" version: "{{ actual.version }}" diff --git a/roles/miniflux/defaults/main.yaml b/roles/miniflux/defaults/main.yaml new file mode 100644 index 0000000..8dffa2a --- /dev/null +++ b/roles/miniflux/defaults/main.yaml @@ -0,0 +1,9 @@ +miniflux: + enabled: false + replicas: 1 + port: 80 + image: miniflux/miniflux + version: 2.2.11 + +nfs: + path: "/mnt/nfs/k3s/miniflux/" diff --git a/roles/miniflux/files/miniflux/Chart.yaml b/roles/miniflux/files/miniflux/Chart.yaml new file mode 100644 index 0000000..d3292d7 --- /dev/null +++ b/roles/miniflux/files/miniflux/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: miniflux +description: Miniflux RSS reader chart +type: application + +version: 0.1.0 diff --git a/roles/miniflux/files/miniflux/templates/ingress.yaml b/roles/miniflux/files/miniflux/templates/ingress.yaml new file mode 100644 index 0000000..52ab337 --- /dev/null +++ b/roles/miniflux/files/miniflux/templates/ingress.yaml @@ -0,0 +1,34 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: miniflux + annotations: + cert-manager.io/cluster-issuer: "ca-issuer" +spec: + ingressClassName: traefik + tls: + - hosts: + - news.aadityadhruv.com + - news.home + secretName: miniflux-tls + rules: + - host: news.home + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: miniflux-service + port: + number: 80 + - host: news.aadityadhruv.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: miniflux-service + port: + number: 80 diff --git a/roles/miniflux/files/miniflux/templates/miniflux.yaml b/roles/miniflux/files/miniflux/templates/miniflux.yaml new file mode 100644 index 0000000..38b2b74 --- /dev/null +++ b/roles/miniflux/files/miniflux/templates/miniflux.yaml @@ -0,0 +1,41 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: "{{ .Chart.Name }}-deployment" + labels: + app: {{ .Chart.Name }} +spec: + replicas: {{ .Values.replicas }} + selector: + matchLabels: + app: {{ .Chart.Name }} + template: + metadata: + labels: + app: {{ .Chart.Name }} + spec: + containers: + - name: miniflux + image: "{{ .Values.image }}:{{ .Values.version }}" + env: + - name: DATABASE_URL + value: "postgres://miniflux:{{ .Values.db_password }}@localhost:5432/miniflux?sslmode=disable" + - name: RUN_MIGRATIONS + value: "1" + - name: postgres + image: postgres:17-alpine + env: + - name: POSTGRES_DB + value: miniflux + - name: POSTGRES_USER + value: miniflux + - name: POSTGRES_PASSWORD + value: "{{ .Values.db_password }}" + volumeMounts: + - mountPath: "/var/lib/postgresql/data" + name: "{{ .Chart.Name }}-volume" + subPath: "db" + volumes: + - name: "{{ .Chart.Name }}-volume" + persistentVolumeClaim: + claimName: "{{ .Chart.Name }}-pvc" diff --git a/roles/miniflux/files/miniflux/templates/pv.yaml b/roles/miniflux/files/miniflux/templates/pv.yaml new file mode 100644 index 0000000..d5f42d5 --- /dev/null +++ b/roles/miniflux/files/miniflux/templates/pv.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: "{{ .Chart.Name }}-pv" + labels: + app: "{{ .Chart.Name }}-pv" +spec: + storageClassName: nfs + capacity: + storage: 10Gi + accessModes: + - ReadWriteMany + nfs: + server: {{ .Values.nfs.server }} + path: {{ .Values.nfs.path }} + readOnly: false diff --git a/roles/miniflux/files/miniflux/templates/pvc.yaml b/roles/miniflux/files/miniflux/templates/pvc.yaml new file mode 100644 index 0000000..4fa9c9f --- /dev/null +++ b/roles/miniflux/files/miniflux/templates/pvc.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ .Chart.Name }}-pvc +spec: + storageClassName: nfs + accessModes: + - ReadWriteMany + resources: + requests: + storage: 10Gi + selector: + matchLabels: + app: "{{ .Chart.Name }}-pv" diff --git a/roles/miniflux/files/miniflux/templates/service.yaml b/roles/miniflux/files/miniflux/templates/service.yaml new file mode 100644 index 0000000..5be1153 --- /dev/null +++ b/roles/miniflux/files/miniflux/templates/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Chart.Name }}-service +spec: + type: ClusterIP + selector: + app: {{ .Chart.Name }} + ports: + - protocol: TCP + port: {{ .Values.port }} + targetPort: 8080 + name: webui diff --git a/roles/miniflux/tasks/main.yaml b/roles/miniflux/tasks/main.yaml new file mode 100644 index 0000000..e4bbe1c --- /dev/null +++ b/roles/miniflux/tasks/main.yaml @@ -0,0 +1,17 @@ +- name: Deploy Miniflux + kubernetes.core.helm: + name: miniflux + chart_ref: "{{ lookup('env', 'PWD') }}/roles/miniflux/files/miniflux" + namespace: default + state: "{%- if miniflux.enabled -%} present {%- else -%} absent {%- endif -%}" + values: + replicas: "{{ miniflux.replicas }}" + port: "{{ miniflux.port }}" + image: "{{ miniflux.image }}" + version: "{{ miniflux.version }}" + db_password: "{{ miniflux.db_password }}" + nfs: + server: "{{ nfs.server }}" + path: "{{ nfs.path }}" + delegate_to: localhost + run_once: true |