feat: implement backups to vaultwarden

This commit is contained in:
SeanOMik 2024-11-01 20:37:09 -04:00
parent 84f703fabc
commit 854fb942bc
Signed by: SeanOMik
GPG Key ID: FEC9E2FC15235964
5 changed files with 151 additions and 61 deletions

View File

@ -4,6 +4,6 @@ resources:
- ./namespace.yaml - ./namespace.yaml
#- ./network_policy.yaml #- ./network_policy.yaml
- ./transfersh - ./transfersh
- ./vaultwarden - ./vaultwarden/ks.yaml
- ./hastebin - ./hastebin
- ./gotify - ./gotify

View File

@ -0,0 +1,117 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2beta2.schema.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: vaultwarden
spec:
interval: 5m
chart:
spec:
chart: app-template
version: 3.4.0
sourceRef:
kind: HelmRepository
name: bjws-charts
namespace: flux-system
values:
controllers:
main:
containers:
main:
image:
repository: vaultwarden/server
tag: 1.32.3
service:
app:
controller: main
ports:
http:
port: 80
ingress:
main:
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production
traefik.ingress.kubernetes.io/router.entrypoints: websecure
hosts:
- host: "bitwarden.${SECRET_NEW_DOMAIN}"
paths:
- path: /
service:
identifier: app
port: http
persistence:
data:
existingClaim: vaultwarden
# hostPath: /mnt/MainPool/Kubernetes/vaultwarden
globalMounts:
- path: /data
#apiVersion: helm.toolkit.fluxcd.io/v2
#kind: HelmRelease
#metadata:
# name: vaultwarden
#spec:
# interval: 5m
# chart:
# spec:
# chart: app-template
# version: 1.3.x
# sourceRef:
# kind: HelmRepository
# name: bjws-charts
# namespace: flux-system
#
# values:
# image:
# repository: vaultwarden/server
# tag: 1.32.3
#
# service:
# main:
# ports:
# http:
# port: 80
#
# probes:
# liveness:
# enabled: false
#
# ingress:
# main:
# enabled: true
# annotations:
# cert-manager.io/cluster-issuer: letsencrypt-production
# traefik.ingress.kubernetes.io/router.entrypoints: websecure
# hosts:
# - host: &host "bitwarden.${SECRET_NEW_DOMAIN}"
# paths:
# - path: /
# pathType: Prefix
# tls:
# - hosts:
# - *host
#
# persistence:
# data:
# existingClaim: vaultwarden
# globalMounts:
# - path: /data
# # data:
# # enabled: true
# # type: hostPath
# # hostPath: /mnt/MainPool/Kubernetes/vaultwarden
# # mountPath: /data
#
# resources:
# requests:
# cpu: 1m
# memory: 50Mi
#
# limits:
# memory: 200Mi

View File

@ -1,4 +1,5 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- ../../../../../common/templates/volsync
- ./helm-release.yaml - ./helm-release.yaml

View File

@ -1,60 +0,0 @@
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: vaultwarden
namespace: tools
spec:
interval: 5m
chart:
spec:
chart: app-template
version: 1.3.x
sourceRef:
kind: HelmRepository
name: bjws-charts
namespace: flux-system
values:
image:
repository: vaultwarden/server
tag: "1.32.3"
service:
main:
ports:
http:
port: 80
probes:
liveness:
enabled: false
ingress:
main:
enabled: true
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production
traefik.ingress.kubernetes.io/router.entrypoints: websecure
hosts:
- host: &host "bitwarden.${SECRET_NEW_DOMAIN}"
paths:
- path: /
pathType: Prefix
tls:
- hosts:
- *host
persistence:
data:
enabled: true
type: hostPath
hostPath: /mnt/MainPool/Kubernetes/vaultwarden
mountPath: /data
resources:
requests:
cpu: 1m
memory: 50Mi
limits:
memory: 200Mi

View File

@ -0,0 +1,32 @@
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app vaultwarden
namespace: flux-system
spec:
timeout: 5m
interval: 10m
targetNamespace: tools
path: ./kubernetes/main/apps/tools/vaultwarden
prune: true
sourceRef:
kind: GitRepository
name: home-cluster
decryption:
provider: sops
secretRef:
name: sops-gpg
dependsOn:
- name: openebs
- name: openebs-sc
- name: volsync
postBuild:
substituteFrom:
- kind: ConfigMap
name: cluster-settings
- kind: Secret
name: cluster-secrets
substitute:
APP: *app
VOLSYNC_CAPACITY: 5Gi