feat(authentik): make manual outpost much easier for both helm and scale gui (#3679)

* feat(authentik): some rework

* disable built in outposts as we aim to spin our own

* piping the proxy outpost

* use bootstrap token for outposts

* remove comments

* add some docs about the token

* set defaults for outposts with ability to override

* add some docs

* empty space

* add spaces for readability

* different ports for metrics

* add comments for metrics

* remove service from gui

* rename prots

* rearrange

* update ports to solve conflicts

* reenable outpost

* turn off outposts

* rearrange

* try previous image

* nop

* major bump

* add ingresses

* set default $host

* quote true

* test with outposts enabled

* update docs

* try only ldap outpost

* update docs

* expose services of outpost to gui and values

* update gui

* update docs

* disable outpost

* update default port type

* use the targetPort to set ports for metrics

* flexible ports everywhere

* change probe port

* update probe

* some quote fixes

* update probes

* update ports

* no message

* give worker more startup time

* more

* probes...

* dont quote ports

* lint

* rofs

* whoops

* quote

* see env

* extract listen ports from main config

* don't load listen_ports envs

* use default port

* try quoting  differently

* hardcode

* try more hardcoded change

* disable probes

* enable 1 probe

* another probe

* remove trailing slash?!

* again

* again

* test template

* give more time to probes

* more!?

* hmm

* see env vars

* I"M STUPID

* run

* last fixies

* see env

* disabel startup probe

* hmm

* enable readiness probe

* wth

* load env ..

* Aaaahh

* fix quotting

* start without worker

* delay worker startup

* enable worker

* try something better

* bash

* try again

* whoops

* dont chain

* oneliner

* one more try

* back to normal startup

* and default startup probe
This commit is contained in:
Stavros Kois
2022-09-06 00:07:41 +03:00
committed by GitHub
parent 4adc4b91b5
commit e4b2e09d4e
12 changed files with 740 additions and 326 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/authentik - https://github.com/truecharts/charts/tree/master/charts/incubator/authentik
- https://github.com/goauthentik/authentik - https://github.com/goauthentik/authentik
- https://goauthentik.io/docs/ - https://goauthentik.io/docs/
version: 5.0.0 version: 6.0.0
annotations: annotations:
truecharts.org/catagories: | truecharts.org/catagories: |
- authentication - authentication
@@ -0,0 +1,25 @@
# Installation notes
## Credentials
Default username: `akadmin`
## Outposts
Enable each outpost by simple setting `enabled` to `true`.
Scale users, just have to check the checkbox
> You have to create an outpost in the GUI first.
> Applications > Outposts
### Host
`host` should not need to be overridden. Defaults to `http://localhost:9000`
### Host Browser
`host_browser` by default is set to the first ingress host you set
### Token
`token` is only needed if you accidentally deleted it within the UI
File diff suppressed because it is too large Load Diff
@@ -1,16 +1,26 @@
{{/* Define the configmap */}} {{/* Define the configmap */}}
{{- define "authentik.config" -}} {{- define "authentik.config" -}}
{{- $authentikConfigName := printf "%s-authentik-config" (include "tc.common.names.fullname" .) }} {{- $authServerWorkerConfigName := printf "%s-authentik-config" (include "tc.common.names.fullname" .) }}
{{- $authServerConfigName := printf "%s-authentik-server-config" (include "tc.common.names.fullname" .) }}
{{- $geoipConfigName := printf "%s-geoip-config" (include "tc.common.names.fullname" .) }} {{- $geoipConfigName := printf "%s-geoip-config" (include "tc.common.names.fullname" .) }}
{{- $ldapConfigName := printf "%s-ldap-config" (include "tc.common.names.fullname" .) }} {{- $ldapConfigName := printf "%s-ldap-config" (include "tc.common.names.fullname" .) }}
{{- $proxyConfigName := printf "%s-proxy-config" (include "tc.common.names.fullname" .) }}
{{ $host := printf "http://localhost:%v" .Values.service.http.ports.http.targetPort }}
{{- if .Values.ingress.main.enabled }}
{{ $first := (first .Values.ingress.main.hosts) }}
{{- if $first }}
{{ $host = printf "https://%s" $first.host }}
{{- end }}
{{- end }}
--- ---
{{/* This configmap are loaded on both main authentik container and worker */}} {{/* This configmap are loaded on both main authentik container and worker */}}
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: {{ $authentikConfigName }} name: {{ $authServerWorkerConfigName }}
labels: labels:
{{- include "tc.common.labels" . | nindent 4 }} {{- include "tc.common.labels" . | nindent 4 }}
data: data:
@@ -59,9 +69,26 @@ data:
{{- with .Values.authentik.ldap.tls_ciphers }} {{- with .Values.authentik.ldap.tls_ciphers }}
AUTHENTIK_LDAP__TLS__CIPHERS: {{ . | quote }} AUTHENTIK_LDAP__TLS__CIPHERS: {{ . | quote }}
{{- end }} {{- end }}
{{/* Metrics */}} {{/* Outposts */}}
AUTHENTIK_LISTEN__METRICS: {{ .Values.authentik.metrics.internalPort | quote }} AUTHENTIK_OUTPOSTS__DISCOVER: {{ "false" | quote }}
--- ---
{{/* This configmap are loaded on both main authentik container and worker */}}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $authServerConfigName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
{{/* Listen */}}
AUTHENTIK_LISTEN__HTTPS: 0.0.0.0:{{ .Values.service.main.ports.main.targetPort | default 9443 }}
AUTHENTIK_LISTEN__HTTP: 0.0.0.0:{{ .Values.service.http.ports.http.targetPort | default 9000 }}
AUTHENTIK_LISTEN__METRICS: 0.0.0.0:{{ .Values.service.metrics.ports.metrics.targetPort | default 9301 }}
---
{{/* This configmap is loaded on ldap container */}} {{/* This configmap is loaded on ldap container */}}
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
@@ -70,11 +97,32 @@ metadata:
labels: labels:
{{- include "tc.common.labels" . | nindent 4 }} {{- include "tc.common.labels" . | nindent 4 }}
data: data:
AUTHENTIK_INSECURE: {{ .Values.outposts.ldap.insecure | quote }} AUTHENTIK_INSECURE: {{ .Values.outposts.ldap.insecure | default "true" | quote }}
{{- with .Values.outposts.ldap.host }} AUTHENTIK_HOST: {{ .Values.outposts.ldap.host | default (printf "http://localhost:%v" .Values.service.http.ports.http.targetPort) }}
AUTHENTIK_HOST: {{ . }} AUTHENTIK_HOST_BROWSER: {{ .Values.outposts.ldap.host_browser | default $host }}
{{- end }} AUTHENTIK_LISTEN__LDAPS: 0.0.0.0:{{ .Values.service.ldapldaps.ports.ldapldaps.targetPort | default 6636 }}
AUTHENTIK_LISTEN__LDAP: 0.0.0.0:{{ .Values.service.ldapldap.ports.ldapldap.targetPort | default 3389 }}
AUTHENTIK_LISTEN__METRICS: 0.0.0.0:{{ .Values.service.ldapmetrics.ports.ldapmetrics.targetPort | default 9302 }}
--- ---
{{/* This configmap is loaded on ldap container */}}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ $proxyConfigName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
AUTHENTIK_INSECURE: {{ .Values.outposts.proxy.insecure | default "true" | quote }}
AUTHENTIK_HOST: {{ .Values.outposts.proxy.host | default (printf "http://localhost:%v" .Values.service.http.ports.http.targetPort) }}
AUTHENTIK_HOST_BROWSER: {{ .Values.outposts.proxy.host_browser | default $host }}
AUTHENTIK_LISTEN__HTTPS: 0.0.0.0:{{ .Values.service.proxyhttps.ports.proxyhttps.targetPort | default 9444 }}
AUTHENTIK_LISTEN__HTTP: 0.0.0.0:{{ .Values.service.proxyhttp.ports.proxyhttp.targetPort | default 9001 }}
AUTHENTIK_LISTEN__METRICS: 0.0.0.0:{{ .Values.service.proxymetrics.ports.proxymetrics.targetPort | default 9303 }}
---
{{/* This configmap is loaded on geoip container */}} {{/* This configmap is loaded on geoip container */}}
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
@@ -90,6 +138,6 @@ data:
{{- with .Values.geoip.host_server }} {{- with .Values.geoip.host_server }}
GEOIPUPDATE_HOST: {{ . }} GEOIPUPDATE_HOST: {{ . }}
{{- end }} {{- end }}
GEOIPUPDATE_PRESERVE_FILE_TIMES: '{{ ternary "1" "0" .Values.geoip.preserve_file_times }}' GEOIPUPDATE_PRESERVE_FILE_TIMES: {{ ternary "1" "0" .Values.geoip.preserve_file_times | quote }}
GEOIPUPDATE_VERBOSE: '{{ ternary "1" "0" .Values.geoip.verbose }}' GEOIPUPDATE_VERBOSE: {{ ternary "1" "0" .Values.geoip.verbose | quote }}
{{- end }} {{- end -}}
@@ -1,7 +1,7 @@
{{/* Define the geoip container */}} {{/* Define the geoip container */}}
{{- define "authentik.geoip" -}} {{- define "authentik.geoip" -}}
image: {{ .Values.geoipImage.repository }}:{{ .Values.geoipImage.tag }} image: {{ .Values.geoipImage.repository }}:{{ .Values.geoipImage.tag }}
imagePullPolicy: '{{ .Values.geoipImage.pullPolicy }}' imagePullPolicy: {{ .Values.geoipImage.pullPolicy }}
securityContext: securityContext:
runAsUser: 0 runAsUser: 0
runAsGroup: 0 runAsGroup: 0
+21 -25
View File
@@ -1,7 +1,7 @@
{{/* Define the ldap container */}} {{/* Define the ldap container */}}
{{- define "authentik.ldap" -}} {{- define "authentik.ldap" -}}
image: {{ .Values.ldapImage.repository }}:{{ .Values.ldapImage.tag }} image: {{ .Values.ldapImage.repository }}:{{ .Values.ldapImage.tag }}
imagePullPolicy: '{{ .Values.ldapImage.pullPolicy }}' imagePullPolicy: {{ .Values.ldapImage.pullPolicy }}
securityContext: securityContext:
runAsUser: {{ .Values.podSecurityContext.runAsUser }} runAsUser: {{ .Values.podSecurityContext.runAsUser }}
runAsGroup: {{ .Values.podSecurityContext.runAsGroup }} runAsGroup: {{ .Values.podSecurityContext.runAsGroup }}
@@ -13,40 +13,36 @@ envFrom:
- configMapRef: - configMapRef:
name: '{{ include "tc.common.names.fullname" . }}-ldap-config' name: '{{ include "tc.common.names.fullname" . }}-ldap-config'
ports: ports:
- containerPort: 3389 - containerPort: {{ .Values.service.ldapldaps.ports.ldapldaps.targetPort }}
- containerPort: 6636 name: ldapldaps
{{ if .Values.outposts.ldap.metrics }} - containerPort: {{ .Values.service.ldapldap.ports.ldapldap.targetPort }}
- containerPort: 9300 name: ldapldap
name: ldap-metrics {{- if .Values.outposts.ldap.metrics }}
{{ end }} - containerPort: {{ .Values.service.ldapmetrics.ports.ldapmetrics.targetPort }}
name: ldapmetrics
{{- end }}
readinessProbe: readinessProbe:
exec: httpGet:
command: path: /outpost.goauthentik.io/ping
- "wget" port: {{ .Values.service.ldapmetrics.ports.ldapmetrics.targetPort }}
- "--spider"
- "http://localhost:9300/outpost.goauthentik.io/ping"
initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }} initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }}
periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }}
timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }} timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }} failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }}
livenessProbe: livenessProbe:
exec: httpGet:
command: path: /outpost.goauthentik.io/ping
- "wget" port: {{ .Values.service.ldapmetrics.ports.ldapmetrics.targetPort }}
- "--spider"
- "http://localhost:9300/outpost.goauthentik.io/ping"
initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }} initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }}
periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }}
timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }} timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }} failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }}
startupProbe: startupProbe:
exec: httpGet:
command: path: /outpost.goauthentik.io/ping
- "wget" port: {{ .Values.service.ldapmetrics.ports.ldapmetrics.targetPort }}
- "--spider"
- "http://localhost:9300/outpost.goauthentik.io/ping"
initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }} initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }}
periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }}
timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }} timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }} failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }}
{{- end -}} {{- end -}}
@@ -0,0 +1,48 @@
{{/* Define the proxy container */}}
{{- define "authentik.proxy" -}}
image: {{ .Values.proxyImage.repository }}:{{ .Values.proxyImage.tag }}
imagePullPolicy: {{ .Values.proxyImage.pullPolicy }}
securityContext:
runAsUser: {{ .Values.podSecurityContext.runAsUser }}
runAsGroup: {{ .Values.podSecurityContext.runAsGroup }}
readOnlyRootFilesystem: true
runAsNonRoot: true
envFrom:
- secretRef:
name: '{{ include "tc.common.names.fullname" . }}-proxy-secret'
- configMapRef:
name: '{{ include "tc.common.names.fullname" . }}-proxy-config'
ports:
- containerPort: {{ .Values.service.proxyhttps.ports.proxyhttps.targetPort }}
name: proxyhttps
- containerPort: {{ .Values.service.proxyhttp.ports.proxyhttp.targetPort }}
name: proxyhttp
{{- if .Values.outposts.proxy.metrics }}
- containerPort: {{ .Values.service.proxymetrics.ports.proxymetrics.targetPort }}
name: proxymetrics
{{- end }}
readinessProbe:
httpGet:
path: /outpost.goauthentik.io/ping
port: {{ .Values.service.proxymetrics.ports.proxymetrics.targetPort }}
initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }}
livenessProbe:
httpGet:
path: /outpost.goauthentik.io/ping
port: {{ .Values.service.proxymetrics.ports.proxymetrics.targetPort }}
initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }}
startupProbe:
httpGet:
path: /outpost.goauthentik.io/ping
port: {{ .Values.service.proxymetrics.ports.proxymetrics.targetPort }}
initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }}
timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }}
{{- end -}}
@@ -4,8 +4,11 @@
{{- $authentikSecretName := printf "%s-authentik-secret" (include "tc.common.names.fullname" .) }} {{- $authentikSecretName := printf "%s-authentik-secret" (include "tc.common.names.fullname" .) }}
{{- $geoipSecretName := printf "%s-geoip-secret" (include "tc.common.names.fullname" .) }} {{- $geoipSecretName := printf "%s-geoip-secret" (include "tc.common.names.fullname" .) }}
{{- $ldapSecretName := printf "%s-ldap-secret" (include "tc.common.names.fullname" .) }} {{- $ldapSecretName := printf "%s-ldap-secret" (include "tc.common.names.fullname" .) }}
{{- $proxySecretName := printf "%s-proxy-secret" (include "tc.common.names.fullname" .) }}
{{- $token := randAlphaNum 32 | b64enc }}
--- ---
{{/* This secrets are loaded on both main authentik container and worker */}} {{/* This secrets are loaded on both main authentik container and worker */}}
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
@@ -18,9 +21,11 @@ data:
{{/* Secret Key */}} {{/* Secret Key */}}
{{- with (lookup "v1" "Secret" .Release.Namespace $authentikSecretName) }} {{- with (lookup "v1" "Secret" .Release.Namespace $authentikSecretName) }}
AUTHENTIK_SECRET_KEY: {{ index .data "AUTHENTIK_SECRET_KEY" }} AUTHENTIK_SECRET_KEY: {{ index .data "AUTHENTIK_SECRET_KEY" }}
{{ $token = index .data "AUTHENTIK_BOOTSTRAP_TOKEN" }}
{{- else }} {{- else }}
AUTHENTIK_SECRET_KEY: {{ randAlphaNum 32 | b64enc }} AUTHENTIK_SECRET_KEY: {{ randAlphaNum 32 | b64enc }}
{{- end }} {{- end }}
AUTHENTIK_BOOTSTRAP_TOKEN: {{ $token }}
{{/* Dependencies */}} {{/* Dependencies */}}
AUTHENTIK_POSTGRESQL__PASSWORD: {{ .Values.postgresql.postgresqlPassword | trimAll "\"" | b64enc }} AUTHENTIK_POSTGRESQL__PASSWORD: {{ .Values.postgresql.postgresqlPassword | trimAll "\"" | b64enc }}
AUTHENTIK_REDIS__PASSWORD: {{ .Values.redis.redisPassword | trimAll "\"" | b64enc }} AUTHENTIK_REDIS__PASSWORD: {{ .Values.redis.redisPassword | trimAll "\"" | b64enc }}
@@ -28,9 +33,6 @@ data:
{{- with .Values.authentik.credentials.password }} {{- with .Values.authentik.credentials.password }}
AUTHENTIK_BOOTSTRAP_PASSWORD: {{ . | b64enc }} AUTHENTIK_BOOTSTRAP_PASSWORD: {{ . | b64enc }}
{{- end }} {{- end }}
{{- with .Values.authentik.credentials.token }}
AUTHENTIK_BOOTSTRAP_TOKEN: {{ . | b64enc }}
{{- end }}
{{/* Mail */}} {{/* Mail */}}
{{- with .Values.authentik.mail.host }} {{- with .Values.authentik.mail.host }}
AUTHENTIK_EMAIL__HOST: {{ . | b64enc }} AUTHENTIK_EMAIL__HOST: {{ . | b64enc }}
@@ -44,20 +46,9 @@ data:
{{- with .Values.authentik.mail.from }} {{- with .Values.authentik.mail.from }}
AUTHENTIK_EMAIL__FROM: {{ . | b64enc }} AUTHENTIK_EMAIL__FROM: {{ . | b64enc }}
{{- end }} {{- end }}
--- ---
{{/* This secrets are loaded on ldap container */}}
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ $ldapSecretName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
{{- with .Values.outposts.ldap.token }}
AUTHENTIK_TOKEN: {{ . | b64enc }}
{{- end }}
---
{{/* This secrets are loaded on geoip container */}} {{/* This secrets are loaded on geoip container */}}
apiVersion: v1 apiVersion: v1
kind: Secret kind: Secret
@@ -81,4 +72,38 @@ data:
{{- with .Values.geoip.proxy_user_pass }} {{- with .Values.geoip.proxy_user_pass }}
GEOIPUPDATE_PROXY_USER_PASSWORD: {{ . | b64enc }} GEOIPUPDATE_PROXY_USER_PASSWORD: {{ . | b64enc }}
{{- end }} {{- end }}
---
{{/* This secrets are loaded on ldap container */}}
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ $ldapSecretName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
{{- with .Values.outposts.ldap.token }}
AUTHENTIK_TOKEN: {{ . | b64enc }}
{{- else }}
AUTHENTIK_TOKEN: {{ $token }}
{{- end }}
---
{{/* This secrets are loaded on ldap container */}}
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: {{ $proxySecretName }}
labels:
{{- include "tc.common.labels" . | nindent 4 }}
data:
{{- with .Values.outposts.proxy.token }}
AUTHENTIK_TOKEN: {{ . | b64enc }}
{{- else }}
AUTHENTIK_TOKEN: {{ $token }}
{{- end }}
{{- end }} {{- end }}
@@ -1,12 +1,12 @@
{{/* Define the worker container */}} {{/* Define the worker container */}}
{{- define "authentik.worker" -}} {{- define "authentik.worker" -}}
image: {{ .Values.image.repository }}:{{ .Values.image.tag }} image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
imagePullPolicy: '{{ .Values.image.pullPolicy }}' imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext: securityContext:
runAsUser: {{ .Values.podSecurityContext.runAsUser }} runAsUser: {{ .Values.podSecurityContext.runAsUser }}
runAsGroup: {{ .Values.podSecurityContext.runAsGroup }} runAsGroup: {{ .Values.podSecurityContext.runAsGroup }}
readOnlyRootFilesystem: false readOnlyRootFilesystem: {{ .Values.securityContext.readOnlyRootFilesystem }}
runAsNonRoot: true runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }}
args: ["worker"] args: ["worker"]
envFrom: envFrom:
- secretRef: - secretRef:
@@ -28,8 +28,8 @@ readinessProbe:
- /lifecycle/ak - /lifecycle/ak
- healthcheck - healthcheck
initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }} initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }}
periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }}
timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }} timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }} failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }}
livenessProbe: livenessProbe:
exec: exec:
@@ -37,8 +37,8 @@ livenessProbe:
- /lifecycle/ak - /lifecycle/ak
- healthcheck - healthcheck
initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }} initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }}
periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }}
timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }} timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }} failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }}
startupProbe: startupProbe:
exec: exec:
@@ -46,7 +46,7 @@ startupProbe:
- /lifecycle/ak - /lifecycle/ak
- healthcheck - healthcheck
initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }} initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }}
periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }}
timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }} timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }}
periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }}
failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }} failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }}
{{- end -}} {{- end -}}
@@ -10,7 +10,7 @@
{{- if .Values.authentik.metrics.enabled -}} {{- if .Values.authentik.metrics.enabled -}}
{{- $_ := set .Values.podAnnotations "prometheus.io/scrape" "true" -}} {{- $_ := set .Values.podAnnotations "prometheus.io/scrape" "true" -}}
{{- $_ := set .Values.podAnnotations "prometheus.io/path" "/metrics" -}} {{- $_ := set .Values.podAnnotations "prometheus.io/path" "/metrics" -}}
{{- $_ := set .Values.podAnnotations "prometheus.io/scrape" ( .Values.service.metrics.ports.metrics.targetPort | quote) -}} {{- $_ := set .Values.podAnnotations "prometheus.io/scrape" (.Values.service.metrics.ports.metrics.targetPort | default 9301 | quote) -}}
{{- end -}} {{- end -}}
{{- if .Values.workerContainer.enabled -}} {{- if .Values.workerContainer.enabled -}}
@@ -22,8 +22,18 @@
{{- end -}} {{- end -}}
{{- if .Values.outposts.ldap.enabled -}} {{- if .Values.outposts.ldap.enabled -}}
{{- $_ := set .Values.additionalContainers "ldap" (include "authentik.ldap" . | fromYaml) -}} {{- $_ := set .Values.additionalContainers "ldap-outpost" (include "authentik.ldap" . | fromYaml) -}}
{{/* - if .Values.outposts.ldap.metrics - */}} {{/* - if .Values.outposts.ldap.metrics - */}}
{{/* https://github.com/prometheus/prometheus/issues/3756 */}}
{{/* TODO: Figure how the pipe works to connect it to prometheus operator */}}
{{/* We can't define multiple ports/endpoints with annotations */}}
{{/* - end - */}}
{{- end -}}
{{- if .Values.outposts.proxy.enabled -}}
{{- $_ := set .Values.additionalContainers "proxy-outpost" (include "authentik.proxy" . | fromYaml) -}}
{{/* - if .Values.outposts.proxy.metrics - */}}
{{/* https://github.com/prometheus/prometheus/issues/3756 */}}
{{/* TODO: Figure how the pipe works to connect it to prometheus operator */}} {{/* TODO: Figure how the pipe works to connect it to prometheus operator */}}
{{/* We can't define multiple ports/endpoints with annotations */}} {{/* We can't define multiple ports/endpoints with annotations */}}
{{/* - end - */}} {{/* - end - */}}
+94 -38
View File
@@ -13,19 +13,26 @@ ldapImage:
tag: 2022.8.2@sha256:53c681184a447add074fda306acd58e69e48a6189dc5046de27769f1dceac835 tag: 2022.8.2@sha256:53c681184a447add074fda306acd58e69e48a6189dc5046de27769f1dceac835
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
extraArgs: ["server"] proxyImage:
repository: tccr.io/truecharts/authentik-proxy
tag: 2022.8.2@sha256:ecc83a3c15e3c093e6c8002f534b16769e2e1e953cd508071c7920a4d8bd7c3d
pullPolicy: IfNotPresent
args: ["server"]
podSecurityContext: podSecurityContext:
runAsUser: 1000 runAsUser: 1000
runAsGroup: 1000 runAsGroup: 1000
securityContext:
readOnlyRootFilesystem: false
workerContainer: workerContainer:
enabled: true enabled: true
authentik: authentik:
credentials: credentials:
password: "supersecret" password: "supersecret"
token: "supersecretapitoken"
general: general:
disable_update_check: false disable_update_check: false
disable_startup_analytics: true disable_startup_analytics: true
@@ -57,9 +64,6 @@ authentik:
tls_ciphers: "null" tls_ciphers: "null"
metrics: metrics:
enabled: true enabled: true
# LDAP Outpost listens on 9300. To avoid conflicts
# This sets internal Authentik metrics port to 9301
internalPort: 9301
geoip: geoip:
enabled: false enabled: false
@@ -75,43 +79,51 @@ geoip:
outposts: outposts:
ldap: ldap:
# -- First you have to create an Outpost in the GUI. Applications > Outposts
enabled: false enabled: false
insecure: false # -- Host Browser by default is set to the first ingress host you set
host: "" # host_browser: ""
token: "test" # -- Host should not need to be overridden. Defaults to http://localhost:9000
metrics: true # host: ""
# -- As we use http://localhost:9000 it's an unsecure connection
# insecure: false
# -- Token is only needed if you accidentally deleted the token within the UI
# token: ""
metrics: false
proxy:
# -- First you have to create an Outpost in the GUI. Applications > Outposts
enabled: false
# -- Host Browser by default is set to the first ingress host you set
# host_browser: ""
# -- As we use http://localhost:9000 it's an unsecure connection
# insecure: false
# -- Host should not need to be overridden. Defaults to http://localhost:9000
# host: ""
# -- Token is only needed if you accidentally deleted the token within the UI
# token: ""
metrics: false
envFrom: envFrom:
- secretRef: - secretRef:
name: '{{ include "tc.common.names.fullname" . }}-authentik-secret' name: '{{ include "tc.common.names.fullname" . }}-authentik-secret'
- configMapRef: - configMapRef:
name: '{{ include "tc.common.names.fullname" . }}-authentik-config' name: '{{ include "tc.common.names.fullname" . }}-authentik-config'
- configMapRef:
name: '{{ include "tc.common.names.fullname" . }}-authentik-server-config'
probes: probes:
liveness: liveness:
enabled: true type: HTTP
custom: true path: /-/health/live/
spec: port: "{{ .Values.service.http.ports.http.targetPort }}"
exec:
command:
- /lifecycle/ak
- healthcheck
readiness: readiness:
enabled: true type: HTTP
custom: true path: /-/health/ready/
spec: port: "{{ .Values.service.http.ports.http.targetPort }}"
exec:
command:
- /lifecycle/ak
- healthcheck
startup: startup:
enabled: true type: HTTP
custom: true path: /-/health/ready/
spec: port: "{{ .Values.service.http.ports.http.targetPort }}"
exec:
command:
- /lifecycle/ak
- healthcheck
service: service:
main: main:
@@ -136,22 +148,66 @@ service:
protocol: HTTP protocol: HTTP
port: 10231 port: 10231
targetPort: 9301 targetPort: 9301
ldap: ldapldaps:
enabled: true enabled: true
type: ClusterIP
ports: ports:
ldap1: ldapldaps:
enabled: true
port: 389
targetPort: 3389
ldap2:
enabled: true enabled: true
port: 636 port: 636
targetPort: 6636 targetPort: 6636
ldap-metrics: ldapldap:
enabled: true
type: ClusterIP
ports:
ldapldap:
enabled: true
port: 389
targetPort: 3389
ldapmetrics:
enabled: true
type: ClusterIP
ports:
ldapmetrics:
enabled: true enabled: true
port: 10232 port: 10232
protocol: HTTP protocol: HTTP
targetPort: 9300 targetPort: 9302
proxyhttps:
enabled: true
type: ClusterIP
ports:
proxyhttps:
enabled: true
port: 10233
protocol: HTTPS
targetPort: 9444
proxyhttp:
enabled: true
type: ClusterIP
ports:
proxyhttp:
enabled: true
port: 10234
protocl: HTTP
targetPort: 9001
proxymetrics:
enabled: true
type: ClusterIP
ports:
proxymetrics:
enabled: true
port: 10235
protocol: HTTP
targetPort: 9303
ingress:
http:
autoLink: true
proxyhttps:
autoLink: true
proxyhttp:
autoLink: true
persistence: persistence:
media: media:
+12
View File
@@ -2,6 +2,7 @@ version: "0.2"
words: words:
- ADLIST - ADLIST
- airsonic - airsonic
- akadmin
- aliasgroup - aliasgroup
- allowtransparency - allowtransparency
- APITOKEN - APITOKEN
@@ -43,8 +44,11 @@ words:
- Fireshare - Fireshare
- FLUSHTABLES - FLUSHTABLES
- fullname - fullname
- geoip
- geoipupdate
- gibibyte - gibibyte
- gluster - gluster
- goauthentik
- GUNICORN - GUNICORN
- healthcheck - healthcheck
- healthchecks - healthchecks
@@ -75,6 +79,10 @@ words:
- kubectl - kubectl
- kubernetes - kubernetes
- lancache - lancache
- ldapldap
- ldapldaps
- ldapmetrics
- ldaps
- lebbing - lebbing
- letsencrypt - letsencrypt
- lidarr - lidarr
@@ -86,6 +94,7 @@ words:
- mailenabled - mailenabled
- Mailgun - Mailgun
- mariadbcreds - mariadbcreds
- maxmind
- mattwebbio - mattwebbio
- mediafiles - mediafiles
- meshroom - meshroom
@@ -124,6 +133,9 @@ words:
- prefs - prefs
- Preload - Preload
- proto - proto
- proxyhttp
- proxyhttps
- proxymetrics
- puid - puid
- putregexhere - putregexhere
- pvcname - pvcname