Compare commits

...

8 Commits

Author SHA1 Message Date
d0255ca5d1 remove specific values 2024-03-16 05:44:05 -06:00
790ad5b440 update renovate config 2024-03-16 05:43:49 -06:00
9539635918 change repo 2024-03-16 04:38:43 -06:00
7c61825d5f enable enviroment variables 2024-03-16 04:11:46 -06:00
c2446ab6e2 add freshrss 2024-03-16 04:11:17 -06:00
120fbe05e6 fix mount location 2024-03-16 01:42:55 -06:00
e686771ce3 fix names 2024-03-16 01:34:46 -06:00
a5bd0b724a enable proxy auth for ha 2024-03-15 23:04:47 -06:00
25 changed files with 335 additions and 49 deletions

75
.github/renovate.json vendored
View File

@@ -7,11 +7,9 @@
], ],
"timezone": "US/Mountain", "timezone": "US/Mountain",
"schedule": [ "schedule": [
"after 10am every weekday", "every weekday"
"before 5pm every weekday"
],
"labels": [
], ],
"labels": [],
"packageRules": [ "packageRules": [
{ {
"description": "Disables for non major Renovate version", "description": "Disables for non major Renovate version",
@@ -41,53 +39,74 @@
"automerge": false "automerge": false
}, },
{ {
"description": "Generate image updates on Tuesdays", "description": "Label service images",
"matchPackageNames": [ "matchPackageNames": [
"linuxserver/calibre",
"homeassistant/home-assistant",
"linuxserver/code-server",
"ghcr.io/gethomepage/homepage",
"ghcr.io/alex1989hu/kubelet-serving-cert-approver", "ghcr.io/alex1989hu/kubelet-serving-cert-approver",
"rmcrackan/libation", "ghcr.io/cloudnative-pg/postgresql",
"outlinewiki/outline", "redis/redis-stack-server"
"ghcr.io/cloudnative-pg/postgresql"
], ],
"matchDatasources": [ "matchDatasources": [
"docker" "docker"
], ],
"schedule": [
"after 10am on tuesday",
"before 5pm on tuesday"
],
"addLabels": [ "addLabels": [
"upgrade", "service",
"weekly",
"image" "image"
], ],
"bumpVersion": "minor",
"automerge": false, "automerge": false,
"minimumReleaseAge": "3 days" "minimumReleaseAge": "3 days"
}, },
{ {
"description": "Generate application charts on Tuesdays", "description": "Label service charts",
"matchPackageNames": [ "matchPackageNames": [
"elasticsearch",
"redis" "redis"
], ],
"matchDatasources": [ "matchDatasources": [
"helm" "helm"
], ],
"schedule": [
"after 10am on tuesday",
"before 5pm on tuesday"
],
"addLabels": [ "addLabels": [
"upgrade", "serivce",
"weekly", "chart"
],
"automerge": false,
"minimumReleaseAge": "3 days"
},
{
"description": "Label application images",
"matchPackageNames": [
"bbilly1/tubearchivist-jf",
"bbilly1/tubearchivist",
"freshrss/freshrss",
"ghcr.io/gethomepage/homepage",
"homeassistant/home-assistant",
"linuxserver/calibre",
"linuxserver/code-server",
"linuxserver/cops",
"outlinewiki/outline",
"rmcrackan/libation"
],
"matchDatasources": [
"docker"
],
"addLabels": [
"application",
"image"
],
"automerge": false,
"minimumReleaseAge": "3 days"
},
{
"description": "Label application charts",
"matchPackageNames": [],
"matchDatasources": [
"helm"
],
"addLabels": [
"application",
"chart" "chart"
], ],
"bumpVersion": "minor",
"automerge": false, "automerge": false,
"minimumReleaseAge": "3 days" "minimumReleaseAge": "3 days"
} }
] ]
} }

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: calibre-server name: calibre-server
version: 0.0.5 version: 0.0.6
description: Chart for Calibre content database description: Chart for Calibre content database
keywords: keywords:
- media - media

View File

@@ -31,7 +31,7 @@ ingressRoute:
http: http:
host: host:
authentik: authentik:
outpost: authentik-proxy-outpost outpost:
port: 9000 port: 9000
persistence: persistence:
config: config:

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: cops name: cops
version: 0.0.2 version: 0.0.3
description: Chart for Calibre OPDS (and HTML) PHP Server description: Chart for Calibre OPDS (and HTML) PHP Server
keywords: keywords:
- calibre - calibre

View File

@@ -40,6 +40,15 @@ spec:
name: cops-books name: cops-books
resources: resources:
{{- toYaml .Values.deployment.resources | nindent 12 }} {{- toYaml .Values.deployment.resources | nindent 12 }}
env:
{{- range $k,$v := .Values.deployment.env }}
- name: {{ $k }}
value: {{ $v | quote }}
{{- end }}
{{- with .Values.deployment.envFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
livenessProbe: livenessProbe:
httpGet: httpGet:
path: / path: /

View File

@@ -9,6 +9,7 @@ deployment:
PGID: "1000" PGID: "1000"
PUID: "1000" PUID: "1000"
TZ: UTC TZ: UTC
envFrom:
resources: resources:
limits: limits:
cpu: 500m cpu: 500m

View File

@@ -0,0 +1,12 @@
apiVersion: v2
name: freshrss
version: 0.0.3
description: Chart for Freshrss
keywords:
- rss
sources:
- https://github.com/FreshRSS/FreshRSS
maintainers:
- name: alexlebens
icon: https://avatars.githubusercontent.com/u/9414285?s=48&v=4
appVersion: "1.23.1"

18
charts/freshrss/README.md Normal file
View File

@@ -0,0 +1,18 @@
## Introduction
[FreshRSS](https://github.com/FreshRSS/FreshRSS)
FreshRSS is a self-hosted RSS feed aggregator.
It is lightweight, easy to work with, powerful, and customizable.
This chart bootstraps a [FreshRSS](https://github.com/FreshRSS/FreshRSS) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Prerequisites
- Kubernetes
- Helm
## Parameters
See the [values files](values.yaml).

View File

@@ -0,0 +1,76 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace | quote }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.deployment.replicas }}
strategy:
type: {{ .Values.deployment.strategy }}
selector:
matchLabels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: {{ .Release.Name }}
containers:
- name: {{ .Release.Name }}
image: "{{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag }}"
imagePullPolicy: {{ .Values.deployment.image.imagePullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.http.port }}
protocol: TCP
volumeMounts:
- name: {{ .Release.Name }}-config
mountPath: /config
resources:
{{- toYaml .Values.deployment.resources | nindent 12 }}
env:
- name: LISTEN
value: "0.0.0.0:{{ .Values.service.http.port }}"
{{- range $k,$v := .Values.deployment.env }}
- name: {{ $k }}
value: {{ $v | quote }}
{{- end }}
{{- with .Values.deployment.envFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
livenessProbe:
tcpSocket:
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 3
timeoutSeconds: 1
periodSeconds: 10
readinessProbe:
tcpSocket:
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 3
timeoutSeconds: 1
periodSeconds: 10
startupProbe:
tcpSocket:
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 30
timeoutSeconds: 1
periodSeconds: 5
volumes:
- name: {{ .Release.Name }}-config
persistentVolumeClaim:
claimName: {{ .Release.Name }}-config

View File

@@ -0,0 +1,32 @@
{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
annotations:
{{- toYaml .Values.ingress.annotations | nindent 4 }}
spec:
ingressClassName: {{ .Values.ingress.className }}
tls:
- hosts:
- {{ .Values.ingress.host }}
secretName: {{ .Release.Name }}-secret-tls
rules:
- host: {{ .Values.ingress.host }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ .Release.Name }}
port:
name: http
{{- end }}

View File

@@ -0,0 +1,19 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Release.Name }}-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.persistence.config.storageSize }}
storageClassName: {{ .Values.persistence.config.storageClassName }}
volumeMode: {{ .Values.persistence.config.volumeMode }}

View File

@@ -0,0 +1,26 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ .Release.Name }}-test-connection"
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
annotations:
"helm.sh/hook": test-success
spec:
restartPolicy: Never
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ .Release.Name }}:{{ .Values.service.http.port }}']
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 50m
memory: 256Mi

View File

@@ -0,0 +1,11 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}

View File

@@ -0,0 +1,21 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
type: ClusterIP
ports:
- port: {{ .Values.service.http.port }}
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -0,0 +1,33 @@
deployment:
replicas: 1
strategy: Recreate
image:
repository: freshrss/freshrss
tag: 1.23.1
imagePullPolicy: IfNotPresent
env:
PGID: "568"
PUID: "568"
TZ: UTC
FRESHRSS_ENV: production
envFrom:
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 50m
memory: 256Mi
service:
http:
port: 80
ingress:
enabled: true
className:
annotations:
host:
persistence:
config:
storageClassName: default
storageSize: 5Gi
volumeMode: Filesystem

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: home-assistant name: home-assistant
version: 0.1.0 version: 0.1.1
description: Chart for Home Assistant description: Chart for Home Assistant
keywords: keywords:
- home-automation - home-automation

View File

@@ -16,12 +16,21 @@ spec:
routes: routes:
- kind: Rule - kind: Rule
match: "Host(`{{ .Values.ingressRoute.host }}`)" match: "Host(`{{ .Values.ingressRoute.host }}`)"
middlewares:
- name: "authentik-{{ .Release.Name }}"
namespace: {{ .Release.Namespace }}
priority: 10 priority: 10
services: services:
- kind: Service - kind: Service
name: {{ .Release.Name }} name: {{ .Release.Name }}
port: {{ .Values.service.http.port }} port: {{ .Values.service.http.port }}
- kind: Rule
match: "Host(`{{ .Values.ingressRoute.host }}`) && PathPrefix(`/outpost.goauthentik.io/`)"
priority: 15
services:
- kind: Service
name: {{ .Values.ingressRoute.authentik.outpost }}
port: {{ .Values.ingressRoute.authentik.port }}
{{- end }} {{- end }}
--- ---

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: homepage name: homepage
version: 0.0.7 version: 0.0.8
description: Chart for benphelps homepage description: Chart for benphelps homepage
keywords: keywords:
- dashboard - dashboard

View File

@@ -20,7 +20,7 @@ service:
ingressRoute: ingressRoute:
host: host:
authentik: authentik:
outpost: authentik-proxy-outpost outpost:
port: 9000 port: 9000
config: config:
bookmarks: bookmarks:

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: libation name: libation
version: 0.0.5 version: 0.0.6
description: Import library from audible description: Import library from audible
keywords: keywords:
- audiobooks - audiobooks

View File

@@ -6,8 +6,8 @@ image:
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
persistence: persistence:
config: config:
storageClassName: nfs-client storageClassName: default
storageSize: 1Gi storageSize: 1Gi
volumeMode: Filesystem volumeMode: Filesystem
books: books:
claimName: libation-nfs-storage claimName:

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: outline name: outline
version: 0.0.7 version: 0.0.8
description: Chart for Outline wiki description: Chart for Outline wiki
keywords: keywords:
- wiki - wiki

View File

@@ -17,7 +17,7 @@ service:
port: 3000 port: 3000
ingress: ingress:
enabled: true enabled: true
className: traefik className:
annotations: annotations:
host: host:
persistence: persistence:
@@ -54,16 +54,16 @@ outline:
database: database:
passwordSecret: passwordSecret:
existingSecretName: existingSecretName:
existingSecretKey: password existingSecretKey:
usernameSecret: usernameSecret:
existingSecretName: existingSecretName:
existingSecretKey: username existingSecretKey:
databaseName: databaseName:
existingSecretName: existingSecretName:
existingSecretKey: dbname existingSecretKey:
databaseHost: databaseHost:
existingSecretName: existingSecretName:
existingSecretKey: host existingSecretKey:
connectionPoolMin: "" connectionPoolMin: ""
connectionPoolMax: "20" connectionPoolMax: "20"
sslMode: disable sslMode: disable

View File

@@ -1,6 +1,6 @@
apiVersion: v2 apiVersion: v2
name: tubearchivist-to-jellyfin name: tubearchivist-to-jellyfin
version: 0.0.1 version: 0.0.3
description: Import library from tubearchivist to jellyfin description: Import library from tubearchivist to jellyfin
keywords: keywords:
- tubearchivist - tubearchivist

View File

@@ -1,10 +1,10 @@
apiVersion: batch/v1 apiVersion: batch/v1
kind: CronJob kind: CronJob
metadata: metadata:
name: {{ .Release.Name }} name: tubearchivist-to-jellyfin
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
labels: labels:
app.kubernetes.io/name: {{ .Release.Name }} app.kubernetes.io/name: tubearchivist-to-jellyfin
app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }} app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: job app.kubernetes.io/component: job
@@ -19,7 +19,7 @@ spec:
spec: spec:
restartPolicy: Never restartPolicy: Never
containers: containers:
- name: {{ .Release.Name }} - name: tubearchivist-to-jellyfin
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }} imagePullPolicy: {{ .Values.image.pullPolicy }}
command: ["python"] command: ["python"]
@@ -30,7 +30,7 @@ spec:
{{- end }} {{- end }}
volumeMounts: volumeMounts:
- name: tubearchivist-youtube - name: tubearchivist-youtube
mountPath: /data mountPath: /youtube
volumes: volumes:
- name: tubearchivist-youtube - name: tubearchivist-youtube
persistentVolumeClaim: persistentVolumeClaim: