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 }}