added deployment

This commit is contained in:
2025-12-16 08:34:20 +00:00
parent 988f6f9d1a
commit ad50051343
9 changed files with 297 additions and 24 deletions
+111
View File
@@ -0,0 +1,111 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: postgres
name: postgres
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: postgres
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: postgres
spec:
containers:
- env:
- name: POSTGRES_DB
value: MailArchiver
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: secret-ma-postgres
key: password
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: secret-ma-postgres
key: username
image: postgres:17-alpine
livenessProbe:
exec:
command:
- pg_isready -U mailuser -d MailArchiver
failureThreshold: 5
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
name: postgres
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: ma-postgres-data
restartPolicy: Always
volumes:
- name: ma-postgres-data
persistentVolumeClaim:
claimName: ma-postgres-data-pvc
---
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: mailarchive-app
name: mailarchive-app
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: mailarchive-app
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: mailarchive-app
spec:
containers:
- env:
- name: Authentication__Password
valueFrom:
secretKeyRef:
name:
key:
- name: Authentication__Username
valueFrom:
secretKeyRef:
name:
key:
- name: ConnectionStrings__DefaultConnection
value: Host=postgres;Database=MailArchiver;Username=archivadm;Password=cEkYJ3DsVGWbRWpD;
- name: TimeZone__DisplayTimeZoneId
value: Europe/Berlin
image: s1t5/mailarchiver:latest
name: mailarchive-app
ports:
- containerPort: 5000
protocol: TCP
volumeMounts:
- mountPath: /app/DataProtection-Keys
name: ma-data-protection-keys
restartPolicy: Always
volumes:
- name: ma-data-protection-keys
persistentVolumeClaim:
claimName: ma-data-protection-keys-pvc
+48
View File
@@ -0,0 +1,48 @@
---
apiVersion: v1
kind: PersistentVolume
metadata:
annotations:
pv.kubernetes.io/provisioned-by: nfs.csi.k8s.io
name: ma-data-protection-keys-pv
spec:
capacity:
storage: 300Mi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-csi
mountOptions:
- nfsvers=4.1
csi:
driver: nfs.csi.k8s.io
# volumeHandle format: {nfs-server-address}#{sub-dir-name}#{share-name}
# make sure this value is unique for every share in the cluster
volumeHandle: nfs-server.default.svc.cluster.local/share##
volumeAttributes:
server: 192.168.0.40
share: /volume1/kubernetes/mail-archiver/data-protection-keys
---
apiVersion: v1
kind: PersistentVolume
metadata:
annotations:
pv.kubernetes.io/provisioned-by: nfs.csi.k8s.io
name: ma-postgres-data-pv
spec:
capacity:
storage: 300Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-csi
mountOptions:
- nfsvers=4.1
csi:
driver: nfs.csi.k8s.io
# volumeHandle format: {nfs-server-address}#{sub-dir-name}#{share-name}
# make sure this value is unique for every share in the cluster
volumeHandle: nfs-server.default.svc.cluster.local/share##
volumeAttributes:
server: 192.168.0.40
share: /volume1/kubernetes/mail-archiver/postgres-data
+28
View File
@@ -0,0 +1,28 @@
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: ma-data-protection-keys-pvc
namespace: homeassistant
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 300Mi
volumeName: ma-data-protection-keys-pv
storageClassName: nfs-csi
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: ma-postgres-data-pvc
namespace: homeassistant
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 300Gi
volumeName: ma-postgres-data-pv
storageClassName: nfs-csi
+18
View File
@@ -0,0 +1,18 @@
---
apiVersion: v1
kind: Secret
metadata:
name: secret-ma-admin
type: kubernetes.io/basic-auth
stringData:
username: admin
password: PteF8WDum2xsKfUZ
---
apiVersion: v1
kind: Secret
metadata:
name: secret-ma-postgres
type: kubernetes.io/basic-auth
stringData:
username: archivadm
password: cEkYJ3DsVGWbRWpD
+17
View File
@@ -0,0 +1,17 @@
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose convert
kompose.version: 1.34.0 (cbf2835db)
labels:
io.kompose.service: mailarchive-app
name: mailarchive-app
spec:
ports:
- name: "5000"
port: 5000
targetPort: 5000
selector:
io.kompose.service: mailarchive-app
type: LoadBalancer
@@ -1,12 +0,0 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: mailarchive-app-claim0
name: mailarchive-app-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -1,12 +0,0 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
io.kompose.service: postgres-claim0
name: postgres-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
@@ -0,0 +1,61 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: grafana-k8s-monitoring
namespace: "{argocd-namespace}"
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
destination:
name: ''
namespace: "{namespace}"
server: 'https://kubernetes.default.svc'
source:
path: ''
repoURL: 'https://grafana.github.io/helm-charts'
targetRevision: ''
chart: k8s-monitoring
helm:
valuesObject:
cluster:
name: "{cluster-name}"
destinations:
- name: grafana-cloud-metrics
type: prometheus
host: "{prometheus-url}/api/prom/push"
auth:
type: basic
username: "{prometheus-username}"
password: "{cloud-access-token}"
- name: grafana-cloud-logs
type: loki
host: "{loki-url}"
auth:
type: basic
username: "{loki-username}"
password: "{cloud-access-token}"
clusterMetrics:
enabled: true
kepler:
enabled: true
opencost:
enabled: true
metricsSource: grafana-cloud-metrics
opencost:
exporter:
defaultClusterId: "{cluster-name}"
prometheus:
existingSecretName: grafana-cloud-metrics-grafana-k8s-monitoring
external:
url: "{prometheus-url}/api/prom"
clusterEvents:
enabled: true
podLogs:
enabled: true
alloy-metrics:
enabled: true
alloy-singleton:
enabled: true
alloy-logs:
enabled: true
+14
View File
@@ -0,0 +1,14 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: prometheus
namespace: argocd
spec:
project: default
source:
repoURL: https://prometheus-community.github.io/helm-charts
targetRevision: 27.50.0
chart: kube-prometheus-stack
destination:
server: https://kubernetes.default.svc
namespace: prometheus