36 Commits

Author SHA1 Message Date
c5ffac41ce Bumping immich version 2025-04-01 12:03:50 +02:00
bb09fdb3d2 Bumped immich version 2025-03-27 20:08:24 +01:00
631c142475 Bumped immich to 1.129.0 2025-03-09 21:01:38 +01:00
d49317ef58 Bumped immich to 1.128.0 2025-03-03 07:17:25 +01:00
ac5c7a83ee Added transmission ingress 2025-02-27 07:24:33 +01:00
742a042b1e Bumped immich to 1.127.0 2025-02-26 17:21:22 +01:00
cc926cd2fc Bumped immich version to 1.126.1 2025-02-13 23:36:23 +01:00
6ef197ceae Bumped immich to 1.125.7 2025-01-31 12:12:55 +00:00
8e5e8492b1 Bumped immich to 1.125.3 2025-01-27 13:32:47 +00:00
6f2ca22f89 Bumped immich to 1.124.2 2025-01-16 22:45:12 +01:00
f0552c9548 Merge branch 'main' of ssh://git.blarre.net:2277/thomas/helm-charts 2024-12-28 16:33:48 +01:00
3e00bef7fa Forgot to handle the prefix on the service for keycloak 2024-12-28 16:32:57 +01:00
d8029652d1 Merge pull request 'keycloak-v2' (#3) from keycloak-v2 into main
Reviewed-on: #3
2024-12-28 15:27:41 +00:00
d11b156f15 adding db port 2024-12-26 10:58:30 +01:00
854f936c13 bad value 2024-12-23 21:07:11 +01:00
88e49484bb forgot targetRevision 2024-12-23 20:29:37 +01:00
d72e29ff16 handle prefix 2024-12-23 19:38:06 +01:00
3bbb2f8240 v2 suffix not to conflict with existing one 2024-12-23 19:01:49 +01:00
c84b0cd754 Prepping to use the linode database for keycloak 2024-12-22 09:54:12 +01:00
b0b300073f Bumped immich to 1.123.0 2024-12-18 21:37:50 +01:00
4c8e4fdda8 Bumped immich to 1.122.3 2024-12-14 11:03:34 +01:00
33ae8790bc Bumped immich to 1.122.3 2024-12-14 11:01:56 +01:00
ef882de1d8 Bumped immich to 1.122.2 2024-12-11 13:00:01 +01:00
975319c401 Bumped immich to 1.122.1 2024-12-06 23:43:14 +01:00
08359d4642 Bumped immich to 1.121.0 2024-11-22 07:43:35 +01:00
7924303a33 added admin token 2024-11-15 00:24:13 +00:00
4092438f95 fixed domain including protocol 2024-11-15 00:00:59 +00:00
180b147897 added accessmode for pvc 2024-11-14 23:48:48 +00:00
beaf854645 fixed errors 2024-11-14 23:44:11 +00:00
c06b8bf2f3 fixed typo 2024-11-14 23:36:01 +00:00
71d8aa9fc5 Refining vaultwarden 2024-11-14 23:25:16 +00:00
b648b0fc49 Merge branch 'vaultwarden' 2024-11-14 23:07:49 +00:00
5ffcfa4039 Finished vaultwarden 2024-11-14 23:07:23 +00:00
d083169e65 Using another chart for vaultwarden 2024-11-14 19:21:30 +00:00
529ebc8095 Finished requirements 2024-11-14 08:56:58 +00:00
70118e5aeb Prepared vaultwarden 2024-11-13 18:47:14 +00:00
34 changed files with 556 additions and 25 deletions

View File

@@ -2,5 +2,5 @@ apiVersion: v2
name: immich-argocd-apps name: immich-argocd-apps
description: A Helm chart for deploying Immich as an ArgoCD app description: A Helm chart for deploying Immich as an ArgoCD app
type: application type: application
version: 0.1.4 version: 0.8.0
appVersion: v1.120.2 appVersion: v1.131.0

View File

@@ -2,4 +2,4 @@ apiVersion: v2
name: keycloak-argocd-apps name: keycloak-argocd-apps
description: A Helm chart for deploying the different argocd apps to deploy Keycloak description: A Helm chart for deploying the different argocd apps to deploy Keycloak
type: application type: application
version: 0.1.0 version: 0.2.1

View File

@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: keycloak-deployment name: {{ .Values.argocd.prefix }}keycloak-deployment
namespace: {{ .Values.argocd.namespace }} namespace: {{ .Values.argocd.namespace }}
annotations: annotations:
argocd.argoproj.io/sync-wave: "0" argocd.argoproj.io/sync-wave: "0"
@@ -10,14 +10,26 @@ spec:
project: {{ .Values.argocd.project }} project: {{ .Values.argocd.project }}
source: source:
repoURL: "https://git.blarre.net/thomas/helm-charts.git" repoURL: "https://git.blarre.net/thomas/helm-charts.git"
targetRevision: HEAD targetRevision: {{ .Values.keycloakDeployment.targetRevision }}
path: keycloak-deployment path: keycloak-deployment
helm: helm:
releaseName: keycloak-deployment releaseName: keycloak-deployment
valuesObject: valuesObject:
prefix: {{ .Values.argocd.prefix }}
keycloakDeployment: keycloakDeployment:
deploymentName: {{ .Values.keycloakDeployment.deploymentName }}
numInstances: {{ .Values.keycloakDeployment.numInstances }} numInstances: {{ .Values.keycloakDeployment.numInstances }}
hostname: {{ .Values.keycloakDeployment.hostname }} hostname: {{ .Values.keycloakDeployment.hostname }}
vendor: {{ .Values.keycloakDeployment.vendor }}
dbHost: {{ .Values.keycloakDeployment.dbHost }}
dbPort: {{ .Values.keycloakDeployment.dbPort }}
usernameSecret:
name: {{ .Values.keycloakDeployment.usernameSecret.name }}
key: {{ .Values.keycloakDeployment.usernameSecret.key }}
passwordSecret:
name: {{ .Values.keycloakDeployment.passwordSecret.name }}
key: {{ .Values.keycloakDeployment.passwordSecret.key }}
database: {{ .Values.keycloakDeployment.database }}
destination: destination:
server: {{ .Values.mainDestination }} server: {{ .Values.mainDestination }}
namespace: {{ .Values.mainNamespace }} namespace: {{ .Values.mainNamespace }}

View File

@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: keycloak-postinstall name: {{ .Values.argocd.prefix }}keycloak-postinstall
namespace: {{ .Values.argocd.namespace }} namespace: {{ .Values.argocd.namespace }}
annotations: annotations:
argocd.argoproj.io/sync-wave: "1" argocd.argoproj.io/sync-wave: "1"
@@ -10,11 +10,12 @@ spec:
project: {{ .Values.argocd.project }} project: {{ .Values.argocd.project }}
source: source:
repoURL: "https://git.blarre.net/thomas/helm-charts.git" repoURL: "https://git.blarre.net/thomas/helm-charts.git"
targetRevision: HEAD targetRevision: {{ .Values.keycloakDeployment.targetRevision }}
path: keycloak-postinstall path: keycloak-postinstall
helm: helm:
releaseName: keycloak-postinstall releaseName: keycloak-postinstall
valuesObject: valuesObject:
prefix: {{ .Values.argocd.prefix }}
tailscaleIngresses: tailscaleIngresses:
keycloakHostname: {{ .Values.tailscaleIngresses.keycloakHostname }} keycloakHostname: {{ .Values.tailscaleIngresses.keycloakHostname }}
destination: destination:

View File

@@ -1,7 +1,8 @@
{{- if .Values.dbCluster.enable -}}
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: keycloak-requirements name: {{ .Values.argocd.prefix }}keycloak-requirements
namespace: {{ .Values.argocd.namespace }} namespace: {{ .Values.argocd.namespace }}
annotations: annotations:
argocd.argoproj.io/sync-wave: "-1" argocd.argoproj.io/sync-wave: "-1"
@@ -15,6 +16,7 @@ spec:
helm: helm:
releaseName: keycloak-requirements releaseName: keycloak-requirements
valuesObject: valuesObject:
prefix: {{ .Values.argocd.prefix }}
dbCluster: dbCluster:
size: {{ .Values.dbCluster.size }} size: {{ .Values.dbCluster.size }}
numInstances: {{ .Values.dbCluster.numInstances }} numInstances: {{ .Values.dbCluster.numInstances }}
@@ -29,3 +31,4 @@ spec:
- ApplyOutOfSyncOnly=true - ApplyOutOfSyncOnly=true
- ServerSideApply=true - ServerSideApply=true
- CreateNamespace=true - CreateNamespace=true
{{- end }}

View File

@@ -1,13 +1,26 @@
argocd: argocd:
namespace: argocd namespace: argocd
project: default project: default
prefix: null
dbCluster: dbCluster:
size: 1Gi enable: true
size: 10Gi
numInstances: 3 numInstances: 3
mainNamespace: keycloak mainNamespace: keycloak
mainDestination: https://kubernetes.default.svc mainDestination: https://kubernetes.default.svc
keycloakDeployment: keycloakDeployment:
targetRevision: HEAD
numInstances: 1 numInstances: 1
hostname: sso.domain.net hostname: sso.domain.net
vendor: postgres
dbHost: keycloak-db-rw
dbPort: 5432
usernameSecret:
name: keycloak-db-app
key: user
passwordSecret:
name: keycloak-db-app
key: password
database: app
tailscaleIngresses: tailscaleIngresses:
keycloakHostname: sso keycloakHostname: sso

View File

@@ -2,4 +2,4 @@ apiVersion: v2
name: keycloak-deployment name: keycloak-deployment
description: A Helm chart for deploying the actual keycloak pod through the keycloak operator description: A Helm chart for deploying the actual keycloak pod through the keycloak operator
type: application type: application
version: 0.1.0 version: 0.2.1

View File

@@ -1,19 +1,20 @@
apiVersion: k8s.keycloak.org/v2alpha1 apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak kind: Keycloak
metadata: metadata:
name: linode-keycloak name: {{ .Values.prefix }}keycloak
spec: spec:
instances: {{ .Values.keycloakDeployment.numInstances }} instances: {{ .Values.keycloakDeployment.numInstances }}
db: db:
vendor: postgres vendor: {{ .Values.keycloakDeployment.vendor }}
host: keycloak-db-rw host: {{ .Values.keycloakDeployment.dbHost }}
port: {{ .Values.keycloakDeployment.dbPort }}
usernameSecret: usernameSecret:
name: keycloak-db-app name: {{ .Values.keycloakDeployment.usernameSecret.name }}
key: user key: {{ .Values.keycloakDeployment.usernameSecret.key }}
passwordSecret: passwordSecret:
name: keycloak-db-app name: {{ .Values.keycloakDeployment.passwordSecret.name }}
key: password key: {{ .Values.keycloakDeployment.passwordSecret.key }}
database: app database: {{ .Values.keycloakDeployment.database }}
ingress: ingress:
enabled: false enabled: false
http: http:

View File

@@ -1,3 +1,14 @@
prefix: null
keycloakDeployment: keycloakDeployment:
numInstances: 1 numInstances: 1
hostname: sso.domain.net hostname: sso.domain.net
vendor: postgres
dbHost: keycloak-db-rw
dbPort: 5432
usernameSecret:
name: keycloak-db-app
key: user
passwordSecret:
name: keycloak-db-app
key: password
database: app

View File

@@ -1,13 +1,13 @@
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: ts-keycloak name: {{ .Values.prefix }}ts-keycloak
annotations: annotations:
tailscale.com/funnel: "true" tailscale.com/funnel: "true"
spec: spec:
defaultBackend: defaultBackend:
service: service:
name: linode-keycloak-service name: {{ .Values.prefix }}keycloak-service
port: port:
number: 8080 number: 8080
ingressClassName: tailscale ingressClassName: tailscale

View File

@@ -1,2 +1,3 @@
prefix: null
tailscaleIngresses: tailscaleIngresses:
keycloakHostname: sso keycloakHostname: sso

View File

@@ -2,4 +2,4 @@ apiVersion: v2
name: keycloak-requirements name: keycloak-requirements
description: A Helm chart for deploying the DB used by keycloak description: A Helm chart for deploying the DB used by keycloak
type: application type: application
version: 0.1.0 version: 0.1.1

View File

@@ -1,7 +1,7 @@
apiVersion: postgresql.cnpg.io/v1 apiVersion: postgresql.cnpg.io/v1
kind: Cluster kind: Cluster
metadata: metadata:
name: keycloak-db name: {{ .Values.prefix }}keycloak-db
spec: spec:
instances: {{ .Values.dbCluster.numInstances }} instances: {{ .Values.dbCluster.numInstances }}

View File

@@ -1,4 +1,4 @@
prefix: null
dbCluster: dbCluster:
size: 1Gi size: 1Gi
numInstances: 3 numInstances: 3

View File

@@ -0,0 +1,16 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: transmission-thomflix
annotations:
tailscale.com/tags: "tag:k8s,tag:thomflix"
spec:
defaultBackend:
service:
name: transmission
port:
number: 10109
ingressClassName: tailscale
tls:
- hosts:
- {{ .Values.tailscaleIngresses.transmissionHostname }}

View File

@@ -3,6 +3,7 @@ tailscaleIngresses:
sonarrHostname: thomflix-sonarr sonarrHostname: thomflix-sonarr
radarrHostname: thomflix-radarr radarrHostname: thomflix-radarr
filebrowserHostname: thomflix-files filebrowserHostname: thomflix-files
transmissionHostname: thomflix-transmission
mainNamespace: thomflix mainNamespace: thomflix
jellyfinURL: "jellyfin.domain.net" jellyfinURL: "jellyfin.domain.net"
jellyseerrURL: "jellyserr.domain.net" jellyseerrURL: "jellyserr.domain.net"

View File

@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -0,0 +1,5 @@
apiVersion: v2
name: vaultwarden-argocd-apps
description: A Helm chart for Kubernetes
type: application
version: 0.1.0

View File

@@ -0,0 +1,62 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "vaultwarden-argocd-apps.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "vaultwarden-argocd-apps.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "vaultwarden-argocd-apps.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "vaultwarden-argocd-apps.labels" -}}
helm.sh/chart: {{ include "vaultwarden-argocd-apps.chart" . }}
{{ include "vaultwarden-argocd-apps.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "vaultwarden-argocd-apps.selectorLabels" -}}
app.kubernetes.io/name: {{ include "vaultwarden-argocd-apps.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "vaultwarden-argocd-apps.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "vaultwarden-argocd-apps.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,48 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: vaultwarden
namespace: {{ .Values.argocd.namespace }}
annotations:
argocd.argoproj.io/sync-wave: "0"
notifications.argoproj.io/subscribe.on-sync-succeeded.telegram: "-1002270587578"
spec:
project: {{ .Values.argocd.project }}
source:
repoURL: "https://guerzon.github.io/vaultwarden"
chart: vaultwarden
targetRevision: v0.29.x
helm:
releaseName: vaultwarden
valuesObject:
domain: {{ .Values.vaultwarden.domain }}
timeZone: {{ .Values.vaultwarden.timeZone }}
adminToken:
value: {{ .Values.vaultwarden.adminToken.value }}
database:
type: postgresql
existingSecret: {{ .Values.vaultwarden.dbCluster.secretName }}
existingSecretKey: uri
data:
name: {{ .Values.vaultwarden.dataPvc.name }}
size: {{ .Values.vaultwarden.dataPvc.size }}
class: {{ .Values.vaultwarden.dataPvc.storageClassName }}
accessMode: {{ .Values.vaultwarden.dataPvc.accessMode }}
attachments:
name: {{ .Values.vaultwarden.attachmentPvc.name }}
size: {{ .Values.vaultwarden.attachmentPvc.size }}
class: {{ .Values.vaultwarden.attachmentPvc.storageClassName }}
accessMode: {{ .Values.vaultwarden.attachmentPvc.accessMode }}
ingress:
enabled: false
destination:
server: {{ .Values.destination.server }}
namespace: {{ .Values.destination.namespace }}
syncPolicy:
automated:
prune: true # Automatically remove resources no longer in the repo
selfHeal: true # Automatically self-heal when drift is detected
syncOptions:
- ApplyOutOfSyncOnly=true
- ServerSideApply=true
- CreateNamespace=true

View File

@@ -0,0 +1,30 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: vaultwarden-postinstall
namespace: {{ .Values.argocd.namespace }}
annotations:
argocd.argoproj.io/sync-wave: "1"
notifications.argoproj.io/subscribe.on-sync-succeeded.telegram: "-1002270587578"
spec:
project: {{ .Values.argocd.project }}
source:
repoURL: {{ .Values.argocd.postinstall.repoURL }}
targetRevision: {{ .Values.argocd.postinstall.targetRevision }}
path: {{ .Values.argocd.postinstall.path }}
helm:
releaseName: vaultwarden-postinstall
valuesObject:
tailscaleIngresses:
vaultwardenHostname: {{ .Values.tailscaleIngresses.vaultwardenHostname }}
destination:
server: {{ .Values.destination.server }}
namespace: {{ .Values.destination.namespace }}
syncPolicy:
automated:
prune: true # Automatically remove resources no longer in the repo
selfHeal: true # Automatically self-heal when drift is detected
syncOptions:
- ApplyOutOfSyncOnly=true
- ServerSideApply=true
- CreateNamespace=true

View File

@@ -0,0 +1,37 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: vaultwarden-requirements
namespace: {{ .Values.argocd.namespace }}
annotations:
argocd.argoproj.io/sync-wave: "-1"
notifications.argoproj.io/subscribe.on-sync-succeeded.telegram: "-1002270587578"
spec:
project: {{ .Values.argocd.project }}
source:
repoURL: {{ .Values.argocd.requirements.repoURL }}
targetRevision: {{ .Values.argocd.requirements.targetRevision }}
path: {{ .Values.argocd.requirements.path }}
helm:
releaseName: vaultwarden-requirements
valuesObject:
vaultwarden:
dbCluster:
numInstances: {{ .Values.vaultwarden.dbCluster.numInstances }}
size: {{ .Values.vaultwarden.dbCluster.size }}
dataPvc:
name: {{ .Values.vaultwarden.dataPvc.name }}
storageClassName: {{ .Values.vaultwarden.dataPvc.storageClassName }}
size: {{ .Values.vaultwarden.dataPvc.size }}
mainNamespace: {{ .Values.destination.namespace }}
destination:
server: {{ .Values.destination.server }}
namespace: {{ .Values.destination.namespace }}
syncPolicy:
automated:
prune: true # Automatically remove resources no longer in the repo
selfHeal: true # Automatically self-heal when drift is detected
syncOptions:
- ApplyOutOfSyncOnly=true
- ServerSideApply=true
- CreateNamespace=true

View File

@@ -0,0 +1,38 @@
argocd:
namespace: argocd
project: default
requirements:
repoURL: "https://git.blarre.net/thomas/helm-charts.git"
targetRevision: HEAD
path: vaultwarden-requirements
postinstall:
repoURL: "https://git.blarre.net/thomas/helm-charts.git"
targetRevision: HEAD
path: vaultwarden-postinstall
destination:
server: "https://kubernetes.default.svc"
namespace: vaultwarden
vaultwarden:
dbCluster:
numInstances: 3
size: 10Gi
secretName: vaultwarden-db-app
dataPvc:
name: vaultwarden-data
storageClassName: ''
size: 10Gi
accessMode: "ReadWriteOnce"
attachmentPvc:
name: vaultwarden-attachments
storageClassName: 'linode-block-storage-retain-luks-vw'
size: 10Gi
accessMode: "ReadWriteOnce"
domain: "https://vaultwarden.domain.net"
timeZone: "Europe/Lisbon"
adminToken:
value:
tailscaleIngresses:
vaultwardenHostname: vaultwarden

View File

@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -0,0 +1,5 @@
apiVersion: v2
name: vaultwarden-postinstall
description: A Helm chart for deploynig vaultwarden's ingress
type: application
version: 0.1.0

View File

@@ -0,0 +1,62 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "vaultwarden-postinstall.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "vaultwarden-postinstall.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "vaultwarden-postinstall.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "vaultwarden-postinstall.labels" -}}
helm.sh/chart: {{ include "vaultwarden-postinstall.chart" . }}
{{ include "vaultwarden-postinstall.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "vaultwarden-postinstall.selectorLabels" -}}
app.kubernetes.io/name: {{ include "vaultwarden-postinstall.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "vaultwarden-postinstall.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "vaultwarden-postinstall.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,16 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ts-vaultwarden
annotations:
tailscale.com/funnel: "true"
spec:
defaultBackend:
service:
name: vaultwarden
port:
name: http
ingressClassName: tailscale
tls:
- hosts:
- {{ .Values.tailscaleIngresses.vaultwardenHostname }}

View File

@@ -0,0 +1,2 @@
tailscaleIngresses:
vaultwardenHostname: vaultwarden

View File

@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -0,0 +1,5 @@
apiVersion: v2
name: vaultwarden-requirements
description: A Helm chart for deploying the dbcluster and pvc for vaultwarden
type: application
version: 0.1.0

View File

@@ -0,0 +1,62 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "vaultwarden-requirements.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "vaultwarden-requirements.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "vaultwarden-requirements.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "vaultwarden-requirements.labels" -}}
helm.sh/chart: {{ include "vaultwarden-requirements.chart" . }}
{{ include "vaultwarden-requirements.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "vaultwarden-requirements.selectorLabels" -}}
app.kubernetes.io/name: {{ include "vaultwarden-requirements.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "vaultwarden-requirements.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "vaultwarden-requirements.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,8 @@
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: vaultwarden-db
spec:
instances: {{ .Values.vaultwarden.dbCluster.numInstances }}
storage:
size: {{ .Values.vaultwarden.dbCluster.size }}

View File

@@ -0,0 +1,14 @@
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: linode-block-storage-retain-luks-vw
namespace: kube-system
provisioner: linodebs.csi.linode.com
reclaimPolicy: Retain
parameters:
linodebs.csi.linode.com/luks-encrypted: "true"
linodebs.csi.linode.com/luks-cipher: "aes-xts-plain64"
linodebs.csi.linode.com/luks-key-size: "512"
csi.storage.k8s.io/node-stage-secret-namespace: {{ .Values.mainNamespace }}
csi.storage.k8s.io/node-stage-secret-name: vw-data-luks-key

View File

@@ -0,0 +1,9 @@
vaultwarden:
dbCluster:
numInstances: 3
size: 10Gi
dataPvc:
name: vaultwarden-data
storageClassName: ''
size: 10Gi
mainNamespace: vaultwarden