feat(radicale): add Radicale to incubator (#3030)
* Add default Radicale config file
* Add Chart.yaml
* Add initial {questions,values}.yaml
* Fix config persistence
* Add Linux capabilities and set PUID
* Add server and encoding config
* Add storage, web, and logging config
* Add rights config
* Add auth settings
* Change mask_passwords to bool
* Add authentication
* Fix questions
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
{{/*
|
||||
Radicale config file. See also default config files:
|
||||
Kozea/Radicale https://github.com/Kozea/Radicale/blob/master/config
|
||||
tomsquest/docker-radicale https://github.com/tomsquest/docker-radicale/blob/master/config
|
||||
*/}}
|
||||
{{- define "radicale.configmap" -}}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: radicale-config
|
||||
labels:
|
||||
{{- include "tc.common.labels" . | nindent 4 }}
|
||||
data:
|
||||
config: |-
|
||||
# -*- mode: conf -*-
|
||||
# vim:ft=cfg
|
||||
|
||||
# Config file for Radicale - A simple calendar server
|
||||
#
|
||||
# Place it into /etc/radicale/config (global)
|
||||
# or ~/.config/radicale/config (user)
|
||||
#
|
||||
# The current values are the default ones
|
||||
|
||||
|
||||
[server]
|
||||
|
||||
# CalDAV server hostnames separated by a comma
|
||||
# IPv4 syntax: address:port
|
||||
# IPv6 syntax: [address]:port
|
||||
# For example: 0.0.0.0:9999, [::]:9999
|
||||
#hosts = localhost:5232
|
||||
hosts = 0.0.0.0:5232
|
||||
|
||||
# Max parallel connections
|
||||
#max_connections = 8
|
||||
max_connections = {{ .Values.radicale.server.max_connections }}
|
||||
|
||||
# Max size of request body (bytes)
|
||||
#max_content_length = 100000000
|
||||
{{- /*
|
||||
Multiply by 1, so large integers aren't rendered in scientific notation
|
||||
See: https://github.com/helm/helm/issues/1707#issuecomment-1167860346
|
||||
*/}}
|
||||
max_content_length = {{ mul .Values.radicale.server.max_content_length 1 }}
|
||||
|
||||
# Socket timeout (seconds)
|
||||
#timeout = 30
|
||||
timeout = {{ .Values.radicale.server.timeout }}
|
||||
|
||||
# SSL flag, enable HTTPS protocol
|
||||
#ssl = False
|
||||
|
||||
# SSL certificate path
|
||||
#certificate = /etc/ssl/radicale.cert.pem
|
||||
|
||||
# SSL private key
|
||||
#key = /etc/ssl/radicale.key.pem
|
||||
|
||||
# CA certificate for validating clients. This can be used to secure
|
||||
# TCP traffic between Radicale and a reverse proxy
|
||||
#certificate_authority =
|
||||
|
||||
|
||||
[encoding]
|
||||
|
||||
# Encoding for responding requests
|
||||
#request = utf-8
|
||||
request = {{ .Values.radicale.encoding.request }}
|
||||
|
||||
# Encoding for storing local collections
|
||||
#stock = utf-8
|
||||
stock = {{ .Values.radicale.encoding.stock }}
|
||||
|
||||
|
||||
[auth]
|
||||
|
||||
# Authentication method
|
||||
# Value: none | htpasswd | remote_user | http_x_remote_user
|
||||
#type = none
|
||||
|
||||
# Htpasswd filename
|
||||
#htpasswd_filename = /etc/radicale/users
|
||||
|
||||
# Htpasswd encryption method
|
||||
# Value: plain | bcrypt | md5
|
||||
# bcrypt requires the installation of radicale[bcrypt].
|
||||
#htpasswd_encryption = md5
|
||||
htpasswd_encryption = bcrypt
|
||||
|
||||
# Incorrect authentication delay (seconds)
|
||||
#delay = 1
|
||||
delay = {{ .Values.radicale.auth.delay }}
|
||||
|
||||
# Message displayed in the client when a password is needed
|
||||
#realm = Radicale - Password Required
|
||||
realm = {{ .Values.radicale.auth.realm }}
|
||||
|
||||
[rights]
|
||||
|
||||
# Rights backend
|
||||
# Value: none | authenticated | owner_only | owner_write | from_file
|
||||
#type = owner_only
|
||||
type = {{ .Values.radicale.rights.type }}
|
||||
|
||||
# File for rights management from_file
|
||||
#file = /etc/radicale/rights
|
||||
|
||||
|
||||
[storage]
|
||||
|
||||
# Storage backend
|
||||
# Value: multifilesystem | multifilesystem_nolock
|
||||
#type = multifilesystem
|
||||
type = {{ .Values.radicale.storage.type }}
|
||||
|
||||
# Folder for storing local collections, created if not present
|
||||
#filesystem_folder = /var/lib/radicale/collections
|
||||
filesystem_folder = /data/collections
|
||||
|
||||
# Delete sync token that are older (seconds)
|
||||
#max_sync_token_age = 2592000
|
||||
{{- /*
|
||||
Multiply by 1, so large integers aren't rendered in scientific notation
|
||||
See: https://github.com/helm/helm/issues/1707#issuecomment-1167860346
|
||||
*/}}
|
||||
max_sync_token_age = {{ mul .Values.radicale.storage.max_sync_token_age 1 }}
|
||||
|
||||
# Command that is run after changes to storage
|
||||
# Example: ([ -d .git ] || git init) && git add -A && (git diff --cached --quiet || git commit -m "Changes by "%(user)s)
|
||||
#hook =
|
||||
|
||||
|
||||
[web]
|
||||
|
||||
# Web interface backend
|
||||
# Value: none | internal
|
||||
#type = internal
|
||||
type = {{ .Values.radicale.web.type }}
|
||||
|
||||
|
||||
[logging]
|
||||
|
||||
# Threshold for the logger
|
||||
# Value: debug | info | warning | error | critical
|
||||
#level = warning
|
||||
level = {{ .Values.radicale.logging.level }}
|
||||
|
||||
# Don't include passwords in logs
|
||||
#mask_passwords = True
|
||||
mask_passwords = {{ .Values.radicale.logging.mask_passwords | ternary "True" "False" }}
|
||||
|
||||
|
||||
[headers]
|
||||
|
||||
# Additional HTTP headers
|
||||
#Access-Control-Allow-Origin = *
|
||||
|
||||
{{- end }}
|
||||
@@ -0,0 +1,16 @@
|
||||
{{/* Radicale htpasswd file */}}
|
||||
{{- define "radicale.secret" -}}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: radicale-secret
|
||||
labels:
|
||||
{{- include "tc.common.labels" . | nindent 4 }}
|
||||
stringData:
|
||||
users: |-
|
||||
{{- range .Values.radicale.auth.users }}
|
||||
{{ htpasswd .username .password }}
|
||||
{{- end }}
|
||||
|
||||
{{- end }}
|
||||
@@ -0,0 +1,11 @@
|
||||
{{/* Make sure all variables are set properly */}}
|
||||
{{- include "tc.common.loader.init" . }}
|
||||
|
||||
{{/* Render config map for radicale */}}
|
||||
{{- include "radicale.configmap" . }}
|
||||
|
||||
{{/* Render secret for radicale */}}
|
||||
{{- include "radicale.secret" . }}
|
||||
|
||||
{{/* Render the templates */}}
|
||||
{{ include "tc.common.loader.apply" . }}
|
||||
Reference in New Issue
Block a user