This commit is contained in:
j 2025-08-22 22:12:13 +10:00
parent f75b44efca
commit 5b4bbe8f86
33 changed files with 691 additions and 35 deletions

View file

@ -0,0 +1,42 @@
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: home-server-databases
namespace: argocd
spec:
goTemplate: true
generators:
- list:
elements:
- name: mariadb-operators
path: applications/30-databases/mariadb-operators
wave: 1
- name: mariadb-database
path: applications/30-databases/mariadb-database
wave: 2
- name: postgresql
path: applications/30-databases/postgresql
wave: 2
- name: redis
path: applications/30-databases/redis
wave: 2
template:
metadata:
name: '{{.name}}'
spec:
project: default
source:
repoURL: 'https://repobase.net/j/home-server.git'
targetRevision: HEAD
path: '{{.path}}'
destination:
server: 'https://kubernetes.default.svc'
namespace: database
syncPolicy:
automated:
prune: false
selfHeal: true
syncOptions:
- CreateNamespace=true
- SyncWave={{.wave}}

View file

@ -0,0 +1,13 @@
---
apiVersion: k8s.mariadb.com/v1alpha1
kind: MariaDB
metadata:
name: mariadb
namespace: database
spec:
rootPasswordSecretKeyRef:
name: db-secrets
key: db-root-password
storage:
size: 5Gi

View file

@ -0,0 +1,53 @@
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: mariadb-operator-crds
namespace: argocd
spec:
project: default
source:
repoURL: "https://helm.mariadb.com/mariadb-operator"
chart: "mariadb-operator-crds"
targetRevision: "25.8.3"
helm:
releaseName: "mariadb-operator-crds"
destination:
server: "https://kubernetes.default.svc"
namespace: database
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
- SkipHooks=false
- SyncWave=0
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: mariadb-operator
namespace: argocd
spec:
project: default
source:
repoURL: "https://helm.mariadb.com/mariadb-operator"
chart: "mariadb-operator"
targetRevision: "25.8.3"
helm:
releaseName: "mariadb-operator"
destination:
server: "https://kubernetes.default.svc"
namespace: database
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ApplyOutOfSyncOnly=true
- SkipHooks=false
- SyncWave=1

View file

@ -0,0 +1,40 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: postgresql-database
namespace: argocd # Replace with your Argo CD namespace if different
spec:
project: default
source:
repoURL: https://charts.bitnami.com/bitnami
chart: postgresql
targetRevision: 16.7.26
helm:
releaseName: postgresql
values: |
auth:
existingSecret: postgresql-secret
secretKeys:
postgresPasswordKey: postgres-password
passwordKey: password
usernameKey: username
databaseKey: database
postgresql:
initdbScriptsConfigMap: postgresql-init
primary:
persistence:
enabled: true
size: 8Gi
architecture: standalone
destination:
server: https://kubernetes.default.svc
namespace: database
syncPolicy:
automated:
selfHeal: true
prune: false
syncOptions:
- CreateNamespace=true

View file

@ -0,0 +1,38 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-deployment
namespace: database
labels:
app: redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:latest
ports:
- containerPort: 6379
---
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: database
spec:
selector:
app: redis
ports:
- protocol: TCP
port: 6379
targetPort: 6379