Piped-Kubernetes/charts/apps/piped/templates/backend/configmap.yaml

112 lines
7 KiB
YAML

apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "backend.names.fullname" . }}-config
{{- with (merge (.Values.backend.labels | default dict) (include "bjw-s.common.lib.metadata.allLabels" $ | fromYaml)) }}
labels: {{- toYaml . | nindent 4 }}
{{- end }}
{{- with (merge (.Values.backend.annotations | default dict) (include "bjw-s.common.lib.metadata.globalAnnotations" $ | fromYaml)) }}
annotations: {{- toYaml . | nindent 4 }}
{{- end }}
data:
config.properties: |
{{- if .Values.backend.config.PORT }}
PORT: {{ .Values.backend.config.PORT }}
{{- else }}
PORT: 8080
{{ end }}
{{- if .Values.backend.config.HTTP_WORKERS }}
HTTP_WORKERS: {{ .Values.backend.config.HTTP_WORKERS }}
{{- else }}
HTTP_WORKERS: 2
{{ end }}
{{- if .Values.backend.config.HTTP_PROXY }}
HTTP_PROXY: {{ .Values.backend.config.HTTP_PROXY }}
{{ end }}
{{- if .Values.backend.config.PROXY_PART }}
PROXY_PART: {{.Values.backend.config.PROXY_PART }}
{{- else if (and .Values.ingress.ytproxy.enabled .Values.ingress.ytproxy.tls) }}
PROXY_PART: https://{{ index (index .Values.ingress.ytproxy.hosts 0) "host" }}
{{- else if .Values.ingress.ytproxy.enabled }}
PROXY_PART: http://{{ index (index .Values.ingress.ytproxy.hosts 0) "host" }}
{{- else }}
{{- fail "PROXY_PART needs to be set in config values or ytproxy ingress must be enabled."}}
{{ end }}
{{- if (and .Values.backend.config.REQWEST_PROXY .Values.backend.config.REQWEST_PROXY_USER .Values.backend.config.REQWEST_PROXY_PASS) }}
REQWEST_PROXY: {{ .Values.backend.config.REQWEST_PROXY }}
REQWEST_PROXY_USER: {{ .Values.backend.config.REQWEST_PROXY_USER }}
REQWEST_PROXY_PASS: {{ .Values.backend.config.REQWEST_PROXY_PASS }}
{{- else if and (not .Values.backend.config.REQWEST_PROXY_USER) (not .Values.backend.config.REQWEST_PROXY_PASS) (.Values.backend.config.REQWEST_PROXY) }}
REQWEST_PROXY: {{ .Values.backend.config.REQWEST_PROXY }}
{{- end }}
{{- if .Values.backend.config.CAPTCHA_BASE_URL }}
CAPTCHA_BASE_URL: {{ .Values.backend.config.CAPTCHA_BASE_URL }}
{{- else if (and .Values.backend.config.CAPTCHA_BASE_URL .Values.backend.config.CAPTCHA_API_KEY) }}
CAPTCHA_BASE_URL: {{ .Values.backend.config.CAPTCHA_BASE_URL }}
CAPTCHA_API_KEY: {{ .Values.backend.config.CAPTCHA_API_KEY }}
{{- end}}
{{- if .Values.backend.config.API_URL }}
API_URL: {{ .Values.backend.config.API_URL }}
{{- else if (and .Values.ingress.backend.enabled .Values.ingress.backend.tls) }}
API_URL: https://{{ index (index .Values.ingress.backend.hosts 0) "host" }}
{{- else if .Values.ingress.backend.enabled }}
API_URL: http://{{ index (index .Values.ingress.backend.hosts 0) "host" }}
{{- else }}
{{- fail "API_URL needs to be set in config values or backend ingress must be enabled."}}
{{ end }}
{{- if .Values.backend.config.BG_HELPER_URL }}
BG_HELPER_URL: {{ .Values.backend.config.BG_HELPER_URL }}
{{ end }}
{{- if .Values.backend.config.FRONTEND_URL }}
FRONTEND_URL: {{.Values.backend.config.FRONTEND_URL }}
{{- else if (and .Values.ingress.main.enabled .Values.ingress.main.tls) }}
FRONTEND_URL: https://{{ index (index .Values.ingress.main.hosts 0) "host" }}
{{- else if .Values.ingress.main.enabled }}
FRONTEND_URL: {{ index (index .Values.ingress.main.hosts 0) "host" }}
{{- else }}
{{- fail "FRONTEND_URL needs to be set in config values or main ingress must be enabled."}}
{{ end }}
COMPROMISED_PASSWORD_CHECK: {{ .Values.backend.config.COMPROMISED_PASSWORD_CHECK | default true }}
DISABLE_REGISTRATION: {{ .Values.backend.config.DISABLE_REGISTRATION | default false }}
FEED_RETENTION: {{ .Values.backend.config.FEED_RETENTION | default 30 | int }}
{{- if .Values.backend.config.database }}
hibernate.connection.url: {{.Values.backend.config.database.connection_url }}
{{- $dbUsername := (.Values.backend.config.database.username | default "") }}
{{- $dbPassword := (.Values.backend.config.database.password | default "") }}
hibernate.connection.driver_class: {{ .Values.backend.config.database.driver_class | default "org.postgresql.Driver" }}
hibernate.dialect: {{ .Values.backend.config.database.dialect | default "org.hibernate.dialect.PostgreSQLDialect" }}
{{- if and (.Values.backend.config.database.secret) (.Values.backend.config.database.secret.name) }}
{{- $dbSecretNamespace := (.Values.backend.config.database.secret.namespace | default .Release.Namespace) }}
{{- $dbSecretUsernameKey := (.Values.backend.config.database.secret.username | default "DB_USERNAME") }}
{{- $dbSecretPasswordKey := (.Values.backend.config.database.secret.password | default "DB_PASSWORD") }}
{{- $dbSecretData := (lookup "v1" "Secret" $dbSecretNamespace .Values.backend.config.database.secret.name).data }}
{{- if and $dbSecretData (hasKey $dbSecretData $dbSecretUsernameKey) (hasKey $dbSecretData $dbSecretPasswordKey) -}}
{{- $dbSecretUsername := (include "common.getValueFromSecret" (dict "Namespace" $dbSecretNamespace "Name" .Values.backend.config.database.secret.name "Key" $dbSecretUsernameKey)) -}}
{{- $dbSecretPassword := (include "common.getValueFromSecret" (dict "Namespace" $dbSecretNamespace "Name" .Values.backend.config.database.secret.name "Key" $dbSecretPasswordKey)) -}}
{{- $dbUsername = $dbSecretUsername -}}
{{- $dbPassword = $dbSecretPassword -}}
{{- else if and $dbSecretData (or (hasKey $dbSecretData $dbSecretUsernameKey) (hasKey $dbSecretData $dbSecretPasswordKey)) -}}
{{- fail (printf "Database secret %q in namespace %q is missing required keys %q and/or %q" .Values.backend.config.database.secret.name $dbSecretNamespace $dbSecretUsernameKey $dbSecretPasswordKey) -}}
{{- end -}}
{{- end }}
{{- if and $dbUsername $dbPassword }}
hibernate.connection.username: {{ $dbUsername }}
hibernate.connection.password: {{ $dbPassword }}
{{- else }}
{{- fail "Unable to construct database credentials. Either set backend.config.database.username/password (works offline with helm template), or configure backend.config.database.secret and run with cluster access so lookup can resolve it." }}
{{- end }}
{{- else }}
{{ fail "Unable to construct database configuration. Set backend.config.database.connection_url, driver_class, dialect, username and password, or configure backend.config.database.secret.{name,username,password} to point at an existing Secret. This chart does not deploy a database; it must point to an external one." }}
{{- end }}
{{- if .Values.backend.config.SENTRY_DNS }}
SENTRY_DSN: {{.Values.backend.SENTRY_DNS }}
{{- else }}
SENTRY_DSN:
{{- end }}
{{- if (and .Values.backend.config.MATRIX_SERVER .Values.backend.config.MATRIX_TOKEN) }}
MATRIX_SERVER: {{.Values.backend.config.MATRIX_SERVER }}
MATRIX_TOKEN: {{ .Values.backend.config.MATRIX_TOKEN }}
{{- else if (not .Values.backend.config.MATRIX_TOKEN) }}
MATRIX_SERVER: https://matrix-client.matrix.org
{{- end }}