1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- {{- define "invidious.configuration" -}}
- {{- $fullname := (include "ix.v1.common.lib.chart.names.fullname" $) -}}
- {{- $dbHost := (printf "%s-postgres" $fullname) -}}
- {{- $dbUser := "kemal" -}} {{/* User is hardcoded */}}
- {{- $dbName := "kemal" -}} {{/* Database is hardcoded */}}
- {{- $dbPass := (randAlphaNum 32) -}}
- {{- with (lookup "v1" "Secret" .Release.Namespace (printf "%s-postgres-creds" $fullname)) -}}
- {{- $dbPass = ((index .data "POSTGRES_PASSWORD") | b64dec) -}}
- {{- end -}}
- {{- $hmacKey := (randAlphaNum 64) -}}
- {{- with (lookup "v1" "Secret" .Release.Namespace (printf "%s-invidious-creds" $fullname)) -}}
- {{- $hmacKey = ((index .data "INVIDIOUS_HMAC_KEY") | b64dec) -}}
- {{- end -}}
- {{/* Temporary set dynamic db details on values,
- so we can print them on the notes */}}
- {{- $_ := set .Values "invidiousDbPass" $dbPass -}}
- {{- $_ := set .Values "invidiousDbHost" $dbHost -}}
- {{- $dbURL := (printf "postgres://%s:%s@%s:5432/%s?sslmode=disable" $dbUser $dbPass $dbHost $dbName) }}
- secret:
- postgres-creds:
- enabled: true
- data:
- POSTGRES_USER: {{ $dbUser }}
- POSTGRES_DB: {{ $dbName }}
- POSTGRES_PASSWORD: {{ $dbPass }}
- POSTGRES_HOST: {{ $dbHost }}
- POSTGRES_URL: {{ $dbURL }}
- # Used by invidious init script
- PGPASSWORD: {{ $dbPass }}
- PGHOST: {{ $dbHost }}
- PGPORT: "5432"
- {{/* Do not quote: bools, numbers, json */}}
- {{- $configOpts := list
- (dict "path" "check_tables" "value" "true")
- (dict "path" "database_url" "value" ($dbURL | quote))
- (dict "path" "db.user" "value" ($dbUser | quote))
- (dict "path" "db.password" "value" ($dbPass | quote))
- (dict "path" "db.dbname" "value" ($dbName | quote))
- (dict "path" "db.host" "value" ($dbHost | quote))
- (dict "path" "db.port" "value" "5432")
- (dict "path" "hmac_key" "value" ($hmacKey | quote))
- (dict "path" "host_binding" "value" ("0.0.0.0" | quote))
- (dict "path" "port" "value" .Values.invidiousNetwork.webPort)
- (dict "path" "admins" "value" (.Values.invidiousConfig.admins | toJson))
- (dict "path" "registration_enabled" "value" .Values.invidiousConfig.registrationEnabled)
- (dict "path" "login_enabled" "value" .Values.invidiousConfig.loginEnabled)
- (dict "path" "captcha_enabled" "value" .Values.invidiousConfig.captchaEnabled)
- }}
- invidious-creds:
- enabled: true
- data:
- INVIDIOUS_HMAC_KEY: {{ $hmacKey }}
- config.sh: |
- #!/bin/sh
- config="/config/config.yaml"
- echo "Updating Invidious Config..."
- {{- range $item := $configOpts }}
- echo "Updating [{{ $item.path }}]"
- yq -i '.{{ $item.path }} = {{ $item.value }}' "$config"
- echo "Updated [{{ $item.path }}] to $(yq '.{{ $item.path }}' "$config")"
- {{- end }}
- echo "Config updated!"
- {{- end -}}
|