wekan: add

This commit is contained in:
2025-07-10 16:46:17 -04:00
parent 55b01276ba
commit 173cc0abc9
5 changed files with 146 additions and 0 deletions

28
wekan/Chart.yaml Normal file
View File

@@ -0,0 +1,28 @@
apiVersion: v2
name: wekan
description: A Helm chart for Kubernetes
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
appVersion: "1.0"
dependencies:
- name: wekan
version: 7.92.0
repository: https://wekan.github.io/charts/

View File

@@ -0,0 +1,12 @@
{{- define "wekan.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 -}}

View File

@@ -0,0 +1,12 @@
{{ if .Values.configMapsManaged }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "wekan.fullname" $ }}-config
data:
{{- range $key := .Values.configMapEnv -}}
{{ if $key.value }}
{{ $key.name | indent 2 }}: {{ $key.value | toString | quote }}
{{- end }}
{{- end }}
{{ end }}

View File

@@ -0,0 +1,31 @@
{{- if .Values.externalSecretsManaged }}
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: {{ include "wekan.fullname" . }}-extsecret
spec:
data:
{{- if .Values.externalSecrets.secrets }}
{{- range $key := .Values.externalSecrets.secrets }}
{{- if $key.keyName }}
- secretKey: {{ $key.secretKeyName }}
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: {{ $key.keyName }}
metadataPolicy: None
property: {{ $key.property }}
{{- end }}
{{- end }}
{{- else }}
{{- fail "externalSecrets.secrets must be defined when externalSecretsManaged is true" }}
{{- end }}
refreshInterval: 1h
secretStoreRef:
kind: {{ .Values.externalSecrets.secretStore.kind }}
name: {{ .Values.externalSecrets.secretStore.name }}
target:
creationPolicy: Owner
deletionPolicy: Retain
name: {{ .Values.externalSecrets.targetSecretName }}
{{- end }}

63
wekan/values.yaml Normal file
View File

@@ -0,0 +1,63 @@
externalSecretsManaged: true
externalSecrets:
targetSecretName: wekan-secrets
secrets:
- keyName: wekan
secretKeyName: OAUTH2_CLIENT_ID
property: client_id
- keyName: wekan
secretKeyName: OAUTH2_SECRET
property: secret
secretStore:
kind: ClusterSecretStore
name: weyma-vault
configMapsManaged: true
configMapEnv:
- name: OAUTH2_ENABLED
value: "true"
- name: OAUTH2_LOGIN_STYLE
value: redirect
- name: OAUTH2_SERVER_URL
value: https://auth.dubyatp.xyz
- name: OAUTH2_AUTH_ENDPOINT
value: /application/o/authorize/
- name: OAUTH2_USERINFO_ENDPOINT
value: /application/o/userinfo/
- name: OAUTH2_TOKEN_ENDPOINT
value: /application/o/token/
- name: OAUTH2_ID_MAP
value: sub
- name: OAUTH2_USERNAME_MAP
value: email
- name: OAUTH2_FULLNAME_MAP
value: given_name
- name: OAUTH2_EMAIL_MAP
value: email
wekan:
endpoint: wekan.dubyatp.xyz
root_url: https://wekan.dubyatp.xyz
secretManaged: false
podAnnotations:
backup.velero.io/backup-volumes: shared-data-volume
sharedDataFolder:
accessMode: ReadWriteMany
extraEnvFrom: |
- configMapRef:
name: wekan-config
- secretRef:
name: wekan-secrets
ingress:
enabled: true
path: /
pathtype: ImplementationSpecific
hosts:
- wekan.dubyatp.xyz
tls:
- secretName: cert-dubyatp-xyz
hosts:
- wekan.dubyatp.xyz
mongodb:
updateStrategy:
type: Recreate
podAnnotations:
backup.velero.io/backup-volumes: datadir