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
description: A Helm chart for deploying Immich as an ArgoCD app
type: application
version: 0.1.4
appVersion: v1.120.2
version: 0.3.0
appVersion: v1.123.0

View File

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

View File

@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: keycloak-deployment
name: {{ .Values.argocd.prefix }}keycloak-deployment
namespace: {{ .Values.argocd.namespace }}
annotations:
argocd.argoproj.io/sync-wave: "0"
@@ -10,14 +10,26 @@ spec:
project: {{ .Values.argocd.project }}
source:
repoURL: "https://git.blarre.net/thomas/helm-charts.git"
targetRevision: HEAD
targetRevision: {{ .Values.keycloakDeployment.targetRevision }}
path: keycloak-deployment
helm:
releaseName: keycloak-deployment
valuesObject:
prefix: {{ .Values.argocd.prefix }}
keycloakDeployment:
deploymentName: {{ .Values.keycloakDeployment.deploymentName }}
numInstances: {{ .Values.keycloakDeployment.numInstances }}
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:
server: {{ .Values.mainDestination }}
namespace: {{ .Values.mainNamespace }}

View File

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

View File

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

View File

@@ -1,13 +1,26 @@
argocd:
namespace: argocd
project: default
prefix: null
dbCluster:
size: 1Gi
enable: true
size: 10Gi
numInstances: 3
mainNamespace: keycloak
mainDestination: https://kubernetes.default.svc
keycloakDeployment:
targetRevision: HEAD
numInstances: 1
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:
keycloakHostname: sso

View File

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

View File

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

View File

@@ -1,3 +1,14 @@
prefix: null
keycloakDeployment:
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
kind: Ingress
metadata:
name: ts-keycloak
name: {{ .Values.prefix }}ts-keycloak
annotations:
tailscale.com/funnel: "true"
spec:
defaultBackend:
service:
name: linode-keycloak-service
name: {{ .Values.prefix }}keycloak-service
port:
number: 8080
ingressClassName: tailscale

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: odoo-chart
name: {{ .Values.argocd.prefix }}odoo-chart
namespace: {{ .Values.argocd.namespace }}
annotations:
argocd.argoproj.io/sync-wave: "0"
@@ -13,8 +13,9 @@ spec:
chart: odoo
targetRevision: 28.x
helm:
releaseName: odoo
releaseName: {{ .Values.argocd.prefix }}odoo
valuesObject:
image.debug: {{ .Values.odoo.image.debug }}
odooEmail: {{ .Values.odoo.odooEmail }}
replicaCount: {{ .Values.odoo.replicaCount }}
resourcesPreset: {{ .Values.odoo.resourcesPreset }}
@@ -23,13 +24,15 @@ spec:
postgresql:
enabled: false
externalDatabase:
host: odoo-db-rw
port: 5432
user: app
database: app
create: false
existingSecret: odoo-db-app
existingSecretPasswordKey: password
host: {{ .Values.odoo.externalDatabase.host }}
port: {{ .Values.odoo.externalDatabase.port }}
user: {{ .Values.odoo.externalDatabase.user }}
database: {{ .Values.odoo.externalDatabase.database }}
create: {{ .Values.odoo.externalDatabase.create }}
existingSecret: {{ .Values.odoo.externalDatabase.passwordSecret.name }}
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:
server: {{ .Values.destination.server }}
namespace: {{ .Values.destination.namespace }}

View File

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

View File

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

View File

@@ -1,6 +1,7 @@
argocd:
namespace: argocd
project: default
prefix: null
requirements:
repoURL: "https://git.blarre.net/thomas/helm-charts.git"
targetRevision: HEAD
@@ -16,6 +17,7 @@ destination:
odoo:
dbCluster:
enable: true
numInstances: 3
size: 10Gi
dataPvc:
@@ -25,6 +27,17 @@ odoo:
odooEmail: "admin@domain.net"
resourcesPreset: "large"
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:
odooHostname: odoo

View File

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

View File

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

View File

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

View File

@@ -2,4 +2,4 @@ apiVersion: v2
name: odoo-requirements
description: A Helm chart for the requirements for Odoo
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
metadata:
name: odoo-db
name: {{ .Values.prefix }}odoo-db
spec:
instances: {{ .Values.odoo.dbCluster.numInstances }}
storage:
size: {{ .Values.odoo.dbCluster.size }}
size: {{ .Values.odoo.dbCluster.size }}
{{- end }}

View File

@@ -1,5 +1,7 @@
prefix: null
odoo:
dbCluster:
enable: true
numInstances: 3
size: 10Gi
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