fuck helm.

This commit is contained in:
j 2025-07-10 20:00:02 +10:00
parent ba63e97b2e
commit c8cd4659a3
25 changed files with 138 additions and 161 deletions

View file

@ -1,6 +0,0 @@
apiVersion: v2
name: home-server
description: A Helm chart for deploying the home-server application
type: application
version: 0.1.3
appVersion: "1.0.0"

View file

@ -1,9 +0,0 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: grafana
namespace: {{ .Release.Namespace }}
spec:
url: https://grafana.github.io/helm-charts
interval: 1h

View file

@ -1,16 +0,0 @@
global:
domain: hxme.net
ssl_secret_name: wildcard-hxme-net
namespace: hsp-system
issuerName: letsencrypt-rfc2136
email: admin@hxme.net
rfc2136:
nameserver: hawke.hxst.com.au:53
tsigKeyName: hxme-update-key
tsigAlgorithm: HMACSHA512
tsigSecretName: hxme-update-key
tsigSecretKey: hxme-update-key
replicatorNamespaces: "monitoring,authentik,nextcloud"

View file

@ -1,9 +1,14 @@
--- ---
apiVersion: v1
kind: Namespace
metadata:
name: ai
---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: openwebui name: openwebui
namespace: {{ .Release.Namespace }} namespace: ai
spec: spec:
replicas: 1 replicas: 1
selector: selector:
@ -35,7 +40,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: openwebui name: openwebui
namespace: {{ .Release.Namespace }} namespace: ai
spec: spec:
selector: selector:
app: openwebui app: openwebui
@ -48,7 +53,7 @@ apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: openwebui name: openwebui
namespace: {{ .Release.Namespace }} namespace: ai
annotations: annotations:
kubernetes.io/ingress.class: "traefik" kubernetes.io/ingress.class: "traefik"
external-dns.alpha.kubernetes.io/hostname: nc.hxme.net external-dns.alpha.kubernetes.io/hostname: nc.hxme.net

View file

@ -1,18 +1,31 @@
--- ---
apiVersion: v1
kind: Namespace
metadata:
name: authentik
---
apiVersion: source.toolkit.fluxcd.io/v1 apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository kind: HelmRepository
metadata: metadata:
name: authentik name: authentik
namespace: {{ .Release.Namespace }} namespace: flux-system
spec: spec:
url: https://charts.goauthentik.io/ url: https://charts.goauthentik.io/
interval: 1h interval: 1h
--- ---
apiVersion: v1
kind: Secret
metadata:
name: wildcard-hxme-net
namespace: authentik
annotations:
replicator.v1.mittwald.de/replicate-from: cert-manager/wildcard-hxme-net
---
apiVersion: helm.toolkit.fluxcd.io/v2 apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: authentik name: authentik
namespace: {{ .Release.Namespace }} namespace: authentik
spec: spec:
interval: 30m interval: 30m
chart: chart:
@ -22,7 +35,7 @@ spec:
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: authentik name: authentik
namespace: {{ .Release.Namespace }} namespace: flux-system
install: install:
createNamespace: true createNamespace: true
upgrade: upgrade:
@ -32,13 +45,9 @@ spec:
- kind: Secret - kind: Secret
name: authentik-values name: authentik-values
values: values:
server:
ingress: ingress:
enabled: true
annotations: annotations:
external-dns.alpha.kubernetes.io/hostname: auth.hxme.net external-dns.alpha.kubernetes.io/hostname: auth.hxme.net
hosts:
- auth.hxme.net
tls: tls:
- secretName: wildcard-hxme-net - secretName: wildcard-hxme-net
hosts: hosts:

View file

@ -3,7 +3,7 @@ apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: bind-master-config name: bind-master-config
namespace: {{ .Release.Namespace }} namespace: dns
data: data:
named.conf: | named.conf: |
include "/etc/bind/externaldns-key.conf"; include "/etc/bind/externaldns-key.conf";
@ -52,7 +52,7 @@ apiVersion: apps/v1
kind: DaemonSet kind: DaemonSet
metadata: metadata:
name: bind-master name: bind-master
namespace: {{ .Release.Namespace }} namespace: dns
spec: spec:
selector: selector:
matchLabels: matchLabels:
@ -122,7 +122,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: bind-master name: bind-master
namespace: {{ .Release.Namespace }} namespace: dns
spec: spec:
selector: selector:
app: bind-master app: bind-master

View file

@ -13,9 +13,6 @@ rules:
- apiGroups: [""] - apiGroups: [""]
resources: ["nodes"] resources: ["nodes"]
verbs: ["list","watch"] verbs: ["list","watch"]
- apiGroups: ["discovery.k8s.io"]
resources: ["endpointslices"]
verbs: ["get", "watch", "list"]
# Add DNS provider specific rules here if needed (e.g., for AWS IAM, GCP etc.) # Add DNS provider specific rules here if needed (e.g., for AWS IAM, GCP etc.)
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
@ -29,19 +26,19 @@ roleRef:
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: external-dns name: external-dns
namespace: {{ .Release.Namespace }} namespace: dns
--- ---
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: external-dns name: external-dns
namespace: {{ .Release.Namespace }} namespace: dns
--- ---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: external-dns name: external-dns
namespace: {{ .Release.Namespace }} namespace: dns
spec: spec:
replicas: 1 replicas: 1
selector: selector:
@ -60,7 +57,7 @@ spec:
- --source=service - --source=service
- --source=ingress - --source=ingress
- --provider=rfc2136 - --provider=rfc2136
- --rfc2136-host=bind-master.{{ .Release.Namespace }}.svc.cluster.local - --rfc2136-host=bind-master.dns.svc.cluster.local
- --rfc2136-port=53 - --rfc2136-port=53
- --rfc2136-zone=hxme.net - --rfc2136-zone=hxme.net
- --rfc2136-tsig-secret=$(RFC2136_TSIG_SECRET) - --rfc2136-tsig-secret=$(RFC2136_TSIG_SECRET)

View file

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

View file

@ -1,5 +1,10 @@
--- ---
apiVersion: v1 apiVersion: v1
kind: Namespace
metadata:
name: nextcloud
---
apiVersion: v1
kind: PersistentVolume kind: PersistentVolume
metadata: metadata:
name: nextcloud-pv name: nextcloud-pv
@ -17,7 +22,7 @@ apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: nextcloud-pvc name: nextcloud-pvc
namespace: {{ .Release.Namespace }} namespace: nextcloud
spec: spec:
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
@ -31,7 +36,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: nextcloud name: nextcloud
namespace: {{ .Release.Namespace }} namespace: nextcloud
spec: spec:
ports: ports:
- port: 80 - port: 80
@ -42,7 +47,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: nextcloud name: nextcloud
namespace: {{ .Release.Namespace }} namespace: nextcloud
spec: spec:
securityContext: securityContext:
runAsUser: 1000 runAsUser: 1000
@ -89,7 +94,7 @@ apiVersion: k8s.mariadb.com/v1alpha1
kind: MariaDB kind: MariaDB
metadata: metadata:
name: nextcloud-db name: nextcloud-db
namespace: {{ .Release.Namespace }} namespace: nextcloud
spec: spec:
rootPasswordSecretKeyRef: rootPasswordSecretKeyRef:
name: nextcloud-secrets name: nextcloud-secrets
@ -103,11 +108,19 @@ spec:
storage: storage:
size: 5Gi size: 5Gi
--- ---
apiVersion: v1
kind: Secret
metadata:
name: wildcard-hxme-net
namespace: nextcloud
annotations:
replicator.v1.mittwald.de/replicate-from: cert-manager/wildcard-hxme-net
---
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: nextcloud name: nextcloud
namespace: {{ .Release.Namespace }} namespace: nextcloud
annotations: annotations:
external-dns.alpha.kubernetes.io/hostname: nc.hxme.net external-dns.alpha.kubernetes.io/hostname: nc.hxme.net
spec: spec:

View file

@ -1,9 +1,14 @@
--- ---
apiVersion: v1 apiVersion: v1
kind: Namespace
metadata:
name: syncthing
---
apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: syncthing-data name: syncthing-data
namespace: {{ .Release.Namespace }} namespace: syncthing
spec: spec:
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
@ -28,7 +33,7 @@ apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: syncthing-share name: syncthing-share
namespace: {{ .Release.Namespace }} namespace: syncthing
spec: spec:
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
@ -41,7 +46,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: syncthing name: syncthing
namespace: {{ .Release.Namespace }} namespace: syncthing
spec: spec:
replicas: 1 replicas: 1
selector: selector:
@ -81,7 +86,7 @@ apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: syncthing name: syncthing
namespace: {{ .Release.Namespace }} namespace: syncthing
spec: spec:
selector: selector:
app: syncthing app: syncthing

View file

@ -2,8 +2,16 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- manifests/00-namespaces.yaml - monitoring/provider.yaml
- manifests/10-repo-prod.yaml - monitoring/grafana.yaml
- manifests/20-hrel-mariadb.yaml - monitoring/loki.yaml
- manifests/20-hrel-replicator.yaml - monitoring/prometheus.yaml
- manifests/30-hrel-prod.yaml - operators/mariadb.yaml
- operators/replicator.yaml
- dns/namespace.yaml
- dns/bind.yaml
- dns/externaldns.yaml
- ssl/certmanager.yaml
- auth/authentik.yaml
- files/nextcloud.yaml
- files/syncthing.yaml

View file

@ -1,10 +0,0 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: hsp-system
---
apiVersion: v1
kind: Namespace
metadata:
name: home-server-dev

View file

@ -1,13 +0,0 @@
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: GitRepository
metadata:
name: home-server-dev
namespace: flux-system
spec:
interval: 1m
url: ssh://git@repobase.net/j/home-server.git
secretRef:
name: flux-ssh
ref:
branch: dev

View file

@ -1,14 +0,0 @@
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: GitRepository
metadata:
name: hsp-system
namespace: flux-system
spec:
interval: 1m
url: ssh://git@repobase.net/j/home-server.git
secretRef:
name: flux-ssh
ref:
branch: main

View file

@ -1,17 +0,0 @@
#---
#apiVersion: helm.toolkit.fluxcd.io/v2beta1
#kind: HelmRelease
#metadata:
# name: home-server-dev
# namespace: home-server-dev
#spec:
# interval: 1m
# chart:
# spec:
# chart: ./
# sourceRef:
# kind: GitRepository
# name: home-server-dev
# namespace: flux-system
# values:
# mariadbNamespace: mariadb-db-dev

View file

@ -1,15 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: hsp-release
namespace: hsp-system
spec:
interval: 1m
chart:
spec:
chart: ./chart
sourceRef:
kind: GitRepository
name: hsp-system
namespace: flux-system

View file

@ -3,7 +3,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: grafana name: grafana
namespace: {{ .Release.Namespace }} namespace: monitoring
spec: spec:
interval: 30m interval: 30m
chart: chart:
@ -13,7 +13,7 @@ spec:
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: grafana name: grafana
namespace: {{ .Release.Namespace }} namespace: flux-system
install: install:
createNamespace: true createNamespace: true
values: values:

View file

@ -3,7 +3,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: loki name: loki
namespace: {{ .Release.Namespace }} namespace: monitoring
spec: spec:
interval: 30m interval: 30m
chart: chart:
@ -13,7 +13,7 @@ spec:
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: grafana name: grafana
namespace: {{ .Release.Namespace }} namespace: flux-system
install: install:
createNamespace: true createNamespace: true
values: values:

View file

@ -3,7 +3,7 @@ apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository kind: HelmRepository
metadata: metadata:
name: prometheus-community name: prometheus-community
namespace: {{ .Release.Namespace }} namespace: flux-system
spec: spec:
url: https://prometheus-community.github.io/helm-charts url: https://prometheus-community.github.io/helm-charts
interval: 1h interval: 1h
@ -12,7 +12,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: prometheus-operator name: prometheus-operator
namespace: {{ .Release.Namespace }} namespace: monitoring
spec: spec:
interval: 30m interval: 30m
chart: chart:
@ -22,9 +22,9 @@ spec:
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: prometheus-community name: prometheus-community
namespace: {{ .Release.Namespace }} namespace: flux-system
install: install:
createNamespace: false createNamespace: true
upgrade: upgrade:
disableWait: true disableWait: true
timeout: 5m timeout: 5m

View file

@ -0,0 +1,22 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: monitoring
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: grafana
namespace: flux-system
spec:
url: https://grafana.github.io/helm-charts
interval: 1h
---
apiVersion: v1
kind: Secret
metadata:
name: wildcard-hxme-net
namespace: monitoring
annotations:
replicator.v1.mittwald.de/replicate-from: cert-manager/wildcard-hxme-net

View file

@ -54,3 +54,7 @@ spec:
dependsOn: dependsOn:
- name: mariadb-operator-crds - name: mariadb-operator-crds
namespace: mariadb-system namespace: mariadb-system
values:
metrics:
enabled: true

View file

@ -96,4 +96,3 @@ spec:
serviceAccount: serviceAccount:
create: false create: false
name: kubernetes-replicator name: kubernetes-replicator

View file

@ -1,9 +1,14 @@
--- ---
apiVersion: v1
kind: Namespace
metadata:
name: rustdesk
---
apiVersion: source.toolkit.fluxcd.io/v1 apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository kind: HelmRepository
metadata: metadata:
name: rustdesk-charts name: rustdesk-charts
namespace: {{ .Release.Namespace }} namespace: flux-system
spec: spec:
url: https://charts.rustdesk.com url: https://charts.rustdesk.com
interval: 1h interval: 1h
@ -12,7 +17,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: rustdesk-server name: rustdesk-server
namespace: {{ .Release.Namespace }} namespace: rustdesk
spec: spec:
interval: 30m interval: 30m
chart: chart:
@ -22,7 +27,7 @@ spec:
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: rustdesk-charts name: rustdesk-charts
namespace: {{ .Release.Namespace }} namespace: flux-system
install: install:
createNamespace: true createNamespace: true
values: values:

View file

@ -3,7 +3,7 @@ apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository kind: HelmRepository
metadata: metadata:
name: jetstack name: jetstack
namespace: {{ .Release.Namespace }} namespace: flux-system
spec: spec:
url: https://charts.jetstack.io url: https://charts.jetstack.io
interval: 1h interval: 1h
@ -12,7 +12,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: cert-manager name: cert-manager
namespace: {{ .Release.Namespace }} namespace: cert-manager
spec: spec:
interval: 30m interval: 30m
chart: chart:
@ -22,10 +22,10 @@ spec:
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: jetstack name: jetstack
namespace: {{ .Release.Namespace }} namespace: flux-system
install: install:
crds: CreateReplace crds: CreateReplace
createNamespace: false createNamespace: true
values: values:
installCRDs: true installCRDs: true
extraArgs: extraArgs:
@ -56,7 +56,7 @@ apiVersion: cert-manager.io/v1
kind: Certificate kind: Certificate
metadata: metadata:
name: wildcard-hxme-net name: wildcard-hxme-net
namespace: {{ .Release.Namespace }} namespace: cert-manager
spec: spec:
secretName: wildcard-hxme-net secretName: wildcard-hxme-net
secretTemplate: secretTemplate:

View file

@ -1,9 +1,14 @@
--- ---
apiVersion: v1
kind: Namespace
metadata:
name: bitwarden
---
apiVersion: source.toolkit.fluxcd.io/v1 apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository kind: HelmRepository
metadata: metadata:
name: bjw-s-charts name: bjw-s-charts
namespace: {{ .Release.Namespace }} namespace: flux-system
spec: spec:
url: https://bjw-s.github.io/helm-charts/ url: https://bjw-s.github.io/helm-charts/
interval: 1h interval: 1h
@ -12,7 +17,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease kind: HelmRelease
metadata: metadata:
name: vaultwarden name: vaultwarden
namespace: {{ .Release.Namespace }} namespace: bitwarden
spec: spec:
interval: 30m interval: 30m
chart: chart:
@ -22,7 +27,7 @@ spec:
sourceRef: sourceRef:
kind: HelmRepository kind: HelmRepository
name: bjw-s-charts name: bjw-s-charts
namespace: {{ .Release.Namespace }} namespace: flux-system
install: install:
createNamespace: true createNamespace: true
values: values: