34 Commits

Author SHA1 Message Date
27a5aacffd trying chatgpt trick 2024-12-29 18:10:09 +01:00
f26304e5b8 disabling ssl 2024-12-29 17:52:11 +01:00
cf39626324 same 2024-12-29 16:21:00 +01:00
42d2bdbf4a trying bypassing ssl verification 2024-12-29 15:55:45 +01:00
6b9f1792a6 adding debug mode 2024-12-29 00:36:34 +01:00
98e4812a3e removed superfluous prefix 2024-12-29 00:01:16 +01:00
88fd35d2fd added prefix 2024-12-28 23:52:17 +01:00
b6c96025d0 adding prefix and non cnpg database 2024-12-28 21:06:47 +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
43 changed files with 583 additions and 45 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.3.0
appVersion: v1.120.2 appVersion: v1.123.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

@@ -2,4 +2,4 @@ apiVersion: v2
name: odoo-argocd-apps name: odoo-argocd-apps
description: A Helm chart for deploying the requirements, main charts and postinstall as ArgoCD apps for Odoo description: A Helm chart for deploying the requirements, main charts and postinstall as ArgoCD apps for Odoo
type: application type: application
version: 0.1.0 version: 0.1.1

View File

@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: odoo-chart name: {{ .Values.argocd.prefix }}odoo-chart
namespace: {{ .Values.argocd.namespace }} namespace: {{ .Values.argocd.namespace }}
annotations: annotations:
argocd.argoproj.io/sync-wave: "0" argocd.argoproj.io/sync-wave: "0"
@@ -13,8 +13,9 @@ spec:
chart: odoo chart: odoo
targetRevision: 28.x targetRevision: 28.x
helm: helm:
releaseName: odoo releaseName: {{ .Values.argocd.prefix }}odoo
valuesObject: valuesObject:
image.debug: {{ .Values.odoo.image.debug }}
odooEmail: {{ .Values.odoo.odooEmail }} odooEmail: {{ .Values.odoo.odooEmail }}
replicaCount: {{ .Values.odoo.replicaCount }} replicaCount: {{ .Values.odoo.replicaCount }}
resourcesPreset: {{ .Values.odoo.resourcesPreset }} resourcesPreset: {{ .Values.odoo.resourcesPreset }}
@@ -23,13 +24,15 @@ spec:
postgresql: postgresql:
enabled: false enabled: false
externalDatabase: externalDatabase:
host: odoo-db-rw host: {{ .Values.odoo.externalDatabase.host }}
port: 5432 port: {{ .Values.odoo.externalDatabase.port }}
user: app user: {{ .Values.odoo.externalDatabase.user }}
database: app database: {{ .Values.odoo.externalDatabase.database }}
create: false create: {{ .Values.odoo.externalDatabase.create }}
existingSecret: odoo-db-app existingSecret: {{ .Values.odoo.externalDatabase.passwordSecret.name }}
existingSecretPasswordKey: password existingSecretPasswordKey: {{ .Values.odoo.externalDatabase.passwordSecret.key }}
sslmode: require
extraOptions: sslrootcert=/opt/ssl/root.crt sslcert=/opt/ssl/postgresql.crt sslkey=/opt/ssl/postgresql.key
destination: destination:
server: {{ .Values.destination.server }} server: {{ .Values.destination.server }}
namespace: {{ .Values.destination.namespace }} namespace: {{ .Values.destination.namespace }}

View File

@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: odoo-postinstall name: {{ .Values.argocd.prefix }}odoo-postinstall
namespace: {{ .Values.argocd.namespace }} namespace: {{ .Values.argocd.namespace }}
annotations: annotations:
argocd.argoproj.io/sync-wave: "1" argocd.argoproj.io/sync-wave: "1"
@@ -15,6 +15,7 @@ spec:
helm: helm:
releaseName: odoo-postinstall releaseName: odoo-postinstall
valuesObject: valuesObject:
prefix: {{ .Values.argocd.prefix }}
tailscaleIngresses: tailscaleIngresses:
odooHostname: {{ .Values.tailscaleIngresses.odooHostname }} odooHostname: {{ .Values.tailscaleIngresses.odooHostname }}
destination: destination:

View File

@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: odoo-requirements name: {{ .Values.argocd.prefix }}odoo-requirements
namespace: {{ .Values.argocd.namespace }} namespace: {{ .Values.argocd.namespace }}
annotations: annotations:
argocd.argoproj.io/sync-wave: "-1" argocd.argoproj.io/sync-wave: "-1"
@@ -15,8 +15,10 @@ spec:
helm: helm:
releaseName: odoo-requirements releaseName: odoo-requirements
valuesObject: valuesObject:
prefix: {{ .Values.argocd.prefix }}
odoo: odoo:
dbCluster: dbCluster:
enable: {{ .Values.odoo.dbCluster.enable }}
numInstances: {{ .Values.odoo.dbCluster.numInstances }} numInstances: {{ .Values.odoo.dbCluster.numInstances }}
size: {{ .Values.odoo.dbCluster.size }} size: {{ .Values.odoo.dbCluster.size }}
dataPvc: dataPvc:

View File

@@ -1,6 +1,7 @@
argocd: argocd:
namespace: argocd namespace: argocd
project: default project: default
prefix: null
requirements: requirements:
repoURL: "https://git.blarre.net/thomas/helm-charts.git" repoURL: "https://git.blarre.net/thomas/helm-charts.git"
targetRevision: HEAD targetRevision: HEAD
@@ -16,6 +17,7 @@ destination:
odoo: odoo:
dbCluster: dbCluster:
enable: true
numInstances: 3 numInstances: 3
size: 10Gi size: 10Gi
dataPvc: dataPvc:
@@ -25,6 +27,17 @@ odoo:
odooEmail: "admin@domain.net" odooEmail: "admin@domain.net"
resourcesPreset: "large" resourcesPreset: "large"
replicaCount: 1 replicaCount: 1
externalDatabase:
host: odoo-db-rw
port: 5432
user: app
database: app
create: false
passwordSecret:
name: odoo-db-secret
key: password
image:
debug: false
tailscaleIngresses: tailscaleIngresses:
odooHostname: odoo odooHostname: odoo

View File

@@ -2,4 +2,4 @@ apiVersion: v2
name: odoo-postinstall name: odoo-postinstall
description: A Helm chart for deploying the postinall stuff for odoo, mainly the ingress description: A Helm chart for deploying the postinall stuff for odoo, mainly the ingress
type: application type: application
version: 0.1.0 version: 0.1.1

View File

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

View File

@@ -1,2 +1,3 @@
prefix: null
tailcaleIngresses: tailcaleIngresses:
odooHostname: odoo odooHostname: odoo

View File

@@ -2,4 +2,4 @@ apiVersion: v2
name: odoo-requirements name: odoo-requirements
description: A Helm chart for the requirements for Odoo description: A Helm chart for the requirements for Odoo
type: application type: application
version: 0.1.0 version: 0.1.1

View File

@@ -1,8 +1,10 @@
apiVersion: postgresql.cnpg.io/v1 {{- if .Values.odoo.dbCluster.enabled -}}
: postgresql.cnpg.io/v1
kind: Cluster kind: Cluster
metadata: metadata:
name: odoo-db name: {{ .Values.prefix }}odoo-db
spec: spec:
instances: {{ .Values.odoo.dbCluster.numInstances }} instances: {{ .Values.odoo.dbCluster.numInstances }}
storage: storage:
size: {{ .Values.odoo.dbCluster.size }} size: {{ .Values.odoo.dbCluster.size }}
{{- end }}

View File

@@ -1,5 +1,7 @@
prefix: null
odoo: odoo:
dbCluster: dbCluster:
enable: true
numInstances: 3 numInstances: 3
size: 10Gi size: 10Gi
dataPvc: dataPvc:

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