1030 lines
37 KiB
YAML
1030 lines
37 KiB
YAML
|
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
||
|
kind: HelmRelease
|
||
|
metadata:
|
||
|
name: authentik
|
||
|
namespace: authentik
|
||
|
annotations:
|
||
|
force-recreate: true
|
||
|
spec:
|
||
|
chart:
|
||
|
spec:
|
||
|
chart: authentik
|
||
|
sourceRef:
|
||
|
kind: HelmRepository
|
||
|
name: authentik
|
||
|
namespace: flux-system
|
||
|
interval: 15m0s
|
||
|
timeout: 5m
|
||
|
releaseName: authentik
|
||
|
values:
|
||
|
# -- Provide a name in place of `authentik`. Prefer using global.nameOverride if possible
|
||
|
nameOverride: ""
|
||
|
# -- String to fully override `"authentik.fullname"`. Prefer using global.fullnameOverride if possible
|
||
|
fullnameOverride: ""
|
||
|
# -- Override the Kubernetes version, which is used to evaluate certain manifests
|
||
|
kubeVersionOverride: ""
|
||
|
|
||
|
|
||
|
## Globally shared configuration for authentik components.
|
||
|
global:
|
||
|
# -- Provide a name in place of `authentik`
|
||
|
nameOverride: ""
|
||
|
# -- String to fully override `"authentik.fullname"`
|
||
|
fullnameOverride: ""
|
||
|
# -- Common labels for all resources.
|
||
|
additionalLabels: {}
|
||
|
# app: authentik
|
||
|
|
||
|
# Number of old deployment ReplicaSets to retain. The rest will be garbage collected.
|
||
|
revisionHistoryLimit: 3
|
||
|
|
||
|
# Default image used by all authentik components. For GeoIP configuration, see the geoip values below.
|
||
|
image:
|
||
|
# -- If defined, a repository applied to all authentik deployments
|
||
|
repository: ghcr.io/goauthentik/server
|
||
|
# -- Overrides the global authentik whose default is the chart appVersion
|
||
|
tag: ""
|
||
|
# -- If defined, an image digest applied to all authentik deployments
|
||
|
digest: ""
|
||
|
# -- If defined, an imagePullPolicy applied to all authentik deployments
|
||
|
pullPolicy: IfNotPresent
|
||
|
|
||
|
# -- Secrets with credentials to pull images from a private registry
|
||
|
imagePullSecrets: []
|
||
|
|
||
|
# -- Annotations for all deployed Deployments
|
||
|
deploymentAnnotations: {}
|
||
|
|
||
|
# -- Annotations for all deployed pods
|
||
|
podAnnotations: {}
|
||
|
|
||
|
# -- Labels for all deployed pods
|
||
|
podLabels: {}
|
||
|
|
||
|
# -- Add Prometheus scrape annotations to all metrics services. This can be used as an alternative to the ServiceMonitors.
|
||
|
addPrometheusAnnotations: false
|
||
|
|
||
|
# -- Toggle and define pod-level security context.
|
||
|
# @default -- `{}` (See [values.yaml])
|
||
|
securityContext: {}
|
||
|
# runAsUser: 1000
|
||
|
# runAsGroup: 1000
|
||
|
# fsGroup: 1000
|
||
|
|
||
|
# -- Mapping between IP and hostnames that will be injected as entries in the pod's hosts files
|
||
|
hostAliases: []
|
||
|
# - ip: 10.20.30.40
|
||
|
# hostnames:
|
||
|
# - my.hostname
|
||
|
|
||
|
# -- Default priority class for all components
|
||
|
priorityClassName: ""
|
||
|
|
||
|
# -- Default node selector for all components
|
||
|
nodeSelector: {}
|
||
|
|
||
|
# -- Default tolerations for all components
|
||
|
tolerations: []
|
||
|
|
||
|
# Default affinity preset for all components
|
||
|
affinity:
|
||
|
# -- Default pod anti-affinity rules. Either: `none`, `soft` or `hard`
|
||
|
podAntiAffinity: soft
|
||
|
# Node affinity rules
|
||
|
nodeAffinity:
|
||
|
# -- Default node affinity rules. Either `none`, `soft` or `hard`
|
||
|
type: hard
|
||
|
# -- Default match expressions for node affinity
|
||
|
matchExpressions: []
|
||
|
# - key: topology.kubernetes.io/zone
|
||
|
# operator: In
|
||
|
# values:
|
||
|
# - zonea
|
||
|
# - zoneb
|
||
|
|
||
|
# -- Default [TopologySpreadConstraints] rules for all components
|
||
|
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||
|
topologySpreadConstraints: []
|
||
|
# - maxSkew: 1
|
||
|
# topologyKey: topology.kubernetes.io/zone
|
||
|
# whenUnsatisfiable: DoNotSchedule
|
||
|
|
||
|
# -- Deployment strategy for all deployed Deployments
|
||
|
deploymentStrategy: {}
|
||
|
# type: RollingUpdate
|
||
|
# rollingUpdate:
|
||
|
# maxSurge: 25%
|
||
|
# maxUnavailable: 25%
|
||
|
|
||
|
# -- Environment variables to pass to all deployed Deployments. Does not apply to GeoIP
|
||
|
# See configuration options at https://goauthentik.io/docs/installation/configuration/
|
||
|
# @default -- `[]` (See [values.yaml])
|
||
|
env:
|
||
|
- name: AUTHENTIK_SECRET_KEY
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: authentik-secret
|
||
|
key: secret-key
|
||
|
- name: AUTHENTIK_POSTGRESQL__PASSWORD
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: authentik-secret
|
||
|
key: postgres-password
|
||
|
- name: AUTHENTIK_REDIS__PASSWORD
|
||
|
valueFrom:
|
||
|
secretKeyRef:
|
||
|
name: authentik-secret
|
||
|
key: redis-password
|
||
|
# - name: AUTHENTIK_VAR_NAME
|
||
|
# value: VALUE
|
||
|
# - name: AUTHENTIK_VAR_OTHER
|
||
|
# valueFrom:
|
||
|
# secretKeyRef:
|
||
|
# name: secret-name
|
||
|
# key: secret-key
|
||
|
# - name: AUTHENTIK_VAR_ANOTHER
|
||
|
# valueFrom:
|
||
|
# configMapKeyRef:
|
||
|
# name: config-map-name
|
||
|
# key: config-map-key
|
||
|
|
||
|
# -- envFrom to pass to all deployed Deployments. Does not apply to GeoIP
|
||
|
# @default -- `[]` (See [values.yaml])
|
||
|
envFrom: []
|
||
|
# - configMapRef:
|
||
|
# name: config-map-name
|
||
|
# - secretRef:
|
||
|
# name: secret-name
|
||
|
|
||
|
# -- Additional volumeMounts to all deployed Deployments. Does not apply to GeoIP
|
||
|
# @default -- `[]` (See [values.yaml])
|
||
|
volumeMounts: []
|
||
|
# - name: custom
|
||
|
# mountPath: /custom
|
||
|
|
||
|
# -- Additional volumes to all deployed Deployments.
|
||
|
# @default -- `[]` (See [values.yaml])
|
||
|
volumes: []
|
||
|
# - name: custom
|
||
|
# emptyDir: {}
|
||
|
|
||
|
|
||
|
## Authentik configuration
|
||
|
authentik:
|
||
|
# -- Log level for server and worker
|
||
|
log_level: info
|
||
|
# -- Secret key used for cookie singing and unique user IDs,
|
||
|
# don't change this after the first install
|
||
|
secret_key: ""
|
||
|
events:
|
||
|
context_processors:
|
||
|
# -- Path for the GeoIP City database. If the file doesn't exist, GeoIP features are disabled.
|
||
|
geoip: /geoip/GeoLite2-City.mmdb
|
||
|
# -- Path for the GeoIP ASN database. If the file doesn't exist, GeoIP features are disabled.
|
||
|
asn: /geoip/GeoLite2-ASN.mmdb
|
||
|
email:
|
||
|
# -- SMTP Server emails are sent from, fully optional
|
||
|
host: ""
|
||
|
# -- SMTP server port
|
||
|
port: 587
|
||
|
# -- SMTP credentials, when left empty, no authentication will be done
|
||
|
username: ""
|
||
|
# -- SMTP credentials, when left empty, no authentication will be done
|
||
|
password: ""
|
||
|
# -- Enable either use_tls or use_ssl, they can't be enabled at the same time.
|
||
|
use_tls: false
|
||
|
# -- Enable either use_tls or use_ssl, they can't be enabled at the same time.
|
||
|
use_ssl: false
|
||
|
# -- Connection timeout
|
||
|
timeout: 30
|
||
|
# -- Email from address, can either be in the format "foo@bar.baz" or "authentik <foo@bar.baz>"
|
||
|
from: ""
|
||
|
outposts:
|
||
|
# -- Template used for managed outposts. The following placeholders can be used
|
||
|
# %(type)s - the type of the outpost
|
||
|
# %(version)s - version of your authentik install
|
||
|
# %(build_hash)s - only for beta versions, the build hash of the image
|
||
|
container_image_base: ghcr.io/goauthentik/%(type)s:%(version)s
|
||
|
error_reporting:
|
||
|
# -- This sends anonymous usage-data, stack traces on errors and
|
||
|
# performance data to sentry.beryju.org, and is fully opt-in
|
||
|
enabled: false
|
||
|
# -- This is a string that is sent to sentry with your error reports
|
||
|
environment: "k8s"
|
||
|
# -- Send PII (Personally identifiable information) data to sentry
|
||
|
send_pii: false
|
||
|
postgresql:
|
||
|
# -- set the postgresql hostname to talk to
|
||
|
# if unset and .Values.postgresql.enabled == true, will generate the default
|
||
|
# @default -- `{{ .Release.Name }}-postgresql`
|
||
|
host: "postgresql.postgresql-system.svc.cluster.local"
|
||
|
# -- postgresql Database name
|
||
|
# @default -- `authentik`
|
||
|
name: "authentik"
|
||
|
# -- postgresql Username
|
||
|
# @default -- `authentik`
|
||
|
user: "authentik"
|
||
|
#password: ""
|
||
|
port: 5432
|
||
|
redis:
|
||
|
# -- set the redis hostname to talk to
|
||
|
# @default -- `{{ .Release.Name }}-redis-master`
|
||
|
host: "redis-master.redis-system.svc.cluster.local"
|
||
|
#host: "{{ .Release.Name }}-redis-master"
|
||
|
#password: ""
|
||
|
|
||
|
|
||
|
blueprints:
|
||
|
# -- List of config maps to mount blueprints from.
|
||
|
# Only keys in the configMap ending with `.yaml` will be discovered and applied.
|
||
|
configMaps: []
|
||
|
# -- List of secrets to mount blueprints from.
|
||
|
# Only keys in the secret ending with `.yaml` will be discovered and applied.
|
||
|
secrets: []
|
||
|
|
||
|
|
||
|
## authentik server
|
||
|
server:
|
||
|
# -- authentik server name
|
||
|
name: server
|
||
|
|
||
|
# -- The number of server pods to run
|
||
|
replicas: 1
|
||
|
|
||
|
## authentik server Horizontal Pod Autoscaler
|
||
|
autoscaling:
|
||
|
# -- Enable Horizontal Pod Autoscaler ([HPA]) for the authentik server
|
||
|
enabled: false
|
||
|
# -- Minimum number of replicas for the authentik server [HPA]
|
||
|
minReplicas: 1
|
||
|
# -- Maximum number of replicas for the authentik server [HPA]
|
||
|
maxReplicas: 5
|
||
|
# -- Average CPU utilization percentage for the authentik server [HPA]
|
||
|
targetCPUUtilizationPercentage: 50
|
||
|
# -- Average memory utilization percentage for the authentik server [HPA]
|
||
|
targetMemoryUtilizationPercentage: ~
|
||
|
# -- Configures the scaling behavior of the target in both Up and Down directions.
|
||
|
behavior: {}
|
||
|
# scaleDown:
|
||
|
# stabilizationWindowSeconds: 300
|
||
|
# policies:
|
||
|
# - type: Pods
|
||
|
# value: 1
|
||
|
# periodSeconds: 180
|
||
|
# scaleUp:
|
||
|
# stabilizationWindowSeconds: 300
|
||
|
# policies:
|
||
|
# - type: Pods
|
||
|
# value: 2
|
||
|
# periodSeconds: 60
|
||
|
# -- Configures custom HPA metrics for the authentik server
|
||
|
# Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
|
||
|
metrics: []
|
||
|
|
||
|
## authentik server Pod Disruption Budget
|
||
|
## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
||
|
pdb:
|
||
|
# -- Deploy a [PodDistrubtionBudget] for the authentik server
|
||
|
enabled: false
|
||
|
# -- Labels to be added to the authentik server pdb
|
||
|
labels: {}
|
||
|
# -- Annotations to be added to the authentik server pdb
|
||
|
annotations: {}
|
||
|
# -- Number of pods that are available after eviction as number or percentage (eg.: 50%)
|
||
|
# @default -- `""` (defaults to 0 if not specified)
|
||
|
minAvailable: ""
|
||
|
# -- Number of pods that are unavailable after eviction as number or percentage (eg.: 50%)
|
||
|
## Has higher precedence over `server.pdb.minAvailable`
|
||
|
maxUnavailable: ""
|
||
|
|
||
|
## authentik server image
|
||
|
## This should match what is deployed in the worker. Prefer using global.image
|
||
|
image:
|
||
|
# -- Repository to use to the authentik server
|
||
|
# @default -- `""` (defaults to global.image.repository)
|
||
|
repository: "" # defaults to global.image.repository
|
||
|
# -- Tag to use to the authentik server
|
||
|
# @default -- `""` (defaults to global.image.tag)
|
||
|
tag: "" # defaults to global.image.tag
|
||
|
# -- Digest to use to the authentik server
|
||
|
# @default -- `""` (defaults to global.image.digest)
|
||
|
digest: "" # defaults to global.image.digest
|
||
|
# -- Image pull policy to use to the authentik server
|
||
|
# @default -- `""` (defaults to global.image.pullPolicy)
|
||
|
pullPolicy: "" # defaults to global.image.pullPolicy
|
||
|
|
||
|
# -- Secrets with credentials to pull images from a private registry
|
||
|
# @default -- `[]` (defaults to global.imagePullSecrets)
|
||
|
imagePullSecrets: []
|
||
|
|
||
|
# -- Environment variables to pass to the authentik server. Does not apply to GeoIP
|
||
|
# See configuration options at https://goauthentik.io/docs/installation/configuration/
|
||
|
# @default -- `[]` (See [values.yaml])
|
||
|
env: []
|
||
|
# - name: AUTHENTIK_VAR_NAME
|
||
|
# value: VALUE
|
||
|
# - name: AUTHENTIK_VAR_OTHER
|
||
|
# valueFrom:
|
||
|
# secretKeyRef:
|
||
|
# name: secret-name
|
||
|
# key: secret-key
|
||
|
# - name: AUTHENTIK_VAR_ANOTHER
|
||
|
# valueFrom:
|
||
|
# configMapKeyRef:
|
||
|
# name: config-map-name
|
||
|
# key: config-map-key
|
||
|
|
||
|
# -- envFrom to pass to the authentik server. Does not apply to GeoIP
|
||
|
# @default -- `[]` (See [values.yaml])
|
||
|
envFrom: []
|
||
|
# - configMapRef:
|
||
|
# name: config-map-name
|
||
|
# - secretRef:
|
||
|
# name: secret-name
|
||
|
|
||
|
# -- Specify postStart and preStop lifecycle hooks for you authentik server container
|
||
|
lifecycle: {}
|
||
|
|
||
|
# -- Additional containers to be added to the authentik server pod
|
||
|
## Note: Supports use of custom Helm templates
|
||
|
extraContainers: []
|
||
|
# - name: my-sidecar
|
||
|
# image: nginx:latest
|
||
|
|
||
|
# -- Init containers to add to the authentik server pod
|
||
|
## Note: Supports use of custom Helm templates
|
||
|
initContainers: []
|
||
|
# - name: download-tools
|
||
|
# image: alpine:3
|
||
|
# command: [sh, -c]
|
||
|
# args:
|
||
|
# - echo init
|
||
|
|
||
|
# -- Additional volumeMounts to the authentik server main container
|
||
|
volumeMounts: []
|
||
|
# - name: custom
|
||
|
# mountPath: /custom
|
||
|
|
||
|
# -- Additional volumes to the authentik server pod
|
||
|
volumes: []
|
||
|
# - name: custom
|
||
|
# emptyDir: {}
|
||
|
|
||
|
# -- Annotations to be added to the authentik server Deployment
|
||
|
deploymentAnnotations: {}
|
||
|
|
||
|
# -- Annotations to be added to the authentik server pods
|
||
|
podAnnotations: {}
|
||
|
|
||
|
# -- Labels to be added to the authentik server pods
|
||
|
podLabels: {}
|
||
|
|
||
|
# -- Resource limits and requests for the authentik server
|
||
|
resources: {}
|
||
|
# requests:
|
||
|
# cpu: 100m
|
||
|
# memory: 512Mi
|
||
|
# limits:
|
||
|
# memory: 512Mi
|
||
|
|
||
|
# authentik server container ports
|
||
|
containerPorts:
|
||
|
# -- http container port
|
||
|
http: 9000
|
||
|
# -- https container port
|
||
|
https: 9443
|
||
|
# -- metrics container port
|
||
|
metrics: 9300
|
||
|
|
||
|
# -- Host Network for authentik server pods
|
||
|
hostNetwork: false
|
||
|
|
||
|
# -- [DNS configuration]
|
||
|
dnsConfig: {}
|
||
|
# -- Alternative DNS policy for authentik server pods
|
||
|
dnsPolicy: ""
|
||
|
|
||
|
# -- authentik server pod-level security context
|
||
|
# @default -- `{}` (See [values.yaml])
|
||
|
securityContext: {}
|
||
|
# runAsUser: 1000
|
||
|
# runAsGroup: 1000
|
||
|
# fsGroup: 1000
|
||
|
|
||
|
# -- authentik server container-level security context
|
||
|
# @default -- See [values.yaml]
|
||
|
containerSecurityContext: {}
|
||
|
# Not all of the following has been tested. Use at your own risk.
|
||
|
# runAsNonRoot: true
|
||
|
# readOnlyRootFilesystem: true
|
||
|
# allowPrivilegeEscalation: false
|
||
|
# seccomProfile:
|
||
|
# type: RuntimeDefault
|
||
|
# capabilities:
|
||
|
# drop:
|
||
|
# - ALL
|
||
|
|
||
|
## Liveness, readiness and startup probes for authentik server
|
||
|
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
|
||
|
livenessProbe:
|
||
|
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
|
||
|
failureThreshold: 3
|
||
|
# -- Number of seconds after the container has started before [probe] is initiated
|
||
|
initialDelaySeconds: 5
|
||
|
# -- How often (in seconds) to perform the [probe]
|
||
|
periodSeconds: 10
|
||
|
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
|
||
|
successThreshold: 1
|
||
|
# -- Number of seconds after which the [probe] times out
|
||
|
timeoutSeconds: 1
|
||
|
## Probe configuration
|
||
|
httpGet:
|
||
|
path: /-/health/live/
|
||
|
port: http
|
||
|
|
||
|
readinessProbe:
|
||
|
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
|
||
|
failureThreshold: 3
|
||
|
# -- Number of seconds after the container has started before [probe] is initiated
|
||
|
initialDelaySeconds: 5
|
||
|
# -- How often (in seconds) to perform the [probe]
|
||
|
periodSeconds: 10
|
||
|
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
|
||
|
successThreshold: 1
|
||
|
# -- Number of seconds after which the [probe] times out
|
||
|
timeoutSeconds: 1
|
||
|
## Probe configuration
|
||
|
httpGet:
|
||
|
path: /-/health/ready/
|
||
|
port: http
|
||
|
|
||
|
startupProbe:
|
||
|
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
|
||
|
failureThreshold: 60
|
||
|
# -- Number of seconds after the container has started before [probe] is initiated
|
||
|
initialDelaySeconds: 5
|
||
|
# -- How often (in seconds) to perform the [probe]
|
||
|
periodSeconds: 10
|
||
|
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
|
||
|
successThreshold: 1
|
||
|
# -- Number of seconds after which the [probe] times out
|
||
|
timeoutSeconds: 1
|
||
|
## Probe configuration
|
||
|
httpGet:
|
||
|
path: /-/health/live/
|
||
|
port: http
|
||
|
|
||
|
# -- terminationGracePeriodSeconds for container lifecycle hook
|
||
|
terminationGracePeriodSeconds: 30
|
||
|
|
||
|
# -- Prority class for the authentik server pods
|
||
|
# @default -- `""` (defaults to global.priorityClassName)
|
||
|
priorityClassName: ""
|
||
|
|
||
|
# -- [Node selector]
|
||
|
# @default -- `{}` (defaults to global.nodeSelector)
|
||
|
nodeSelector: {}
|
||
|
|
||
|
# -- [Tolerations] for use with node taints
|
||
|
# @default -- `[]` (defaults to global.tolerations)
|
||
|
tolerations: []
|
||
|
|
||
|
# -- Assign custom [affinity] rules to the deployment
|
||
|
# @default -- `{}` (defaults to the global.affinity preset)
|
||
|
affinity: {}
|
||
|
|
||
|
# -- Assign custom [TopologySpreadConstraints] rules to the authentik server
|
||
|
# @default -- `[]` (defaults to global.topologySpreadConstraints)
|
||
|
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||
|
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
|
||
|
topologySpreadConstraints: []
|
||
|
# - maxSkew: 1
|
||
|
# topologyKey: topology.kubernetes.io/zone
|
||
|
# whenUnsatisfiable: DoNotSchedule
|
||
|
|
||
|
# -- Deployment strategy to be added to the authentik server Deployment
|
||
|
# @default -- `{}` (defaults to global.deploymentStrategy)
|
||
|
deploymentStrategy: {}
|
||
|
# type: RollingUpdate
|
||
|
# rollingUpdate:
|
||
|
# maxSurge: 25%
|
||
|
# maxUnavailable: 25%
|
||
|
|
||
|
## authentik server service configuration
|
||
|
service:
|
||
|
# -- authentik server service annotations
|
||
|
annotations: {}
|
||
|
# -- authentik server service labels
|
||
|
labels: {}
|
||
|
# -- authentik server service type
|
||
|
type: LoadBalancer
|
||
|
# -- authentik server service http port for NodePort service type (only if `server.service.type` is set to `NodePort`)
|
||
|
nodePortHttp: 30080
|
||
|
# -- authentik server service https port for NodePort service type (only if `server.service.type` is set to `NodePort`)
|
||
|
nodePortHttps: 30443
|
||
|
# -- authentik server service http port
|
||
|
servicePortHttp: 80
|
||
|
# -- authentik server service https port
|
||
|
servicePortHttps: 443
|
||
|
# -- authentik server service http port name
|
||
|
servicePortHttpName: http
|
||
|
# -- authentik server service https port name
|
||
|
servicePortHttpsName: https
|
||
|
# -- authentik server service http port appProtocol
|
||
|
# servicePortHttpAppProtocol: HTTP
|
||
|
# -- authentik server service https port appProtocol
|
||
|
# servicePortHttpsAppProtocol: HTTPS
|
||
|
# -- LoadBalancer will get created with the IP specified in this field
|
||
|
loadBalancerIP: ""
|
||
|
# -- Source IP ranges to allow access to service from
|
||
|
loadBalancerSourceRanges: []
|
||
|
# -- authentik server service external IPs
|
||
|
externalIPs: []
|
||
|
# -- Denotes if this service desires to route external traffic to node-local or cluster-wide endpoints
|
||
|
externalTrafficPolicy: ""
|
||
|
# -- Used to maintain session affinity. Supports `ClientIP` and `None`
|
||
|
sessionAffinity: ""
|
||
|
# -- Session affinity configuration
|
||
|
sessionAffinityConfig: {}
|
||
|
|
||
|
## authentik server metrics service configuration
|
||
|
metrics:
|
||
|
# -- deploy metrics service
|
||
|
enabled: true
|
||
|
service:
|
||
|
# -- metrics service type
|
||
|
type: ClusterIP
|
||
|
# -- metrics service clusterIP. `None` makes a "headless service" (no virtual IP)
|
||
|
clusterIP: ""
|
||
|
# -- metrics service annotations
|
||
|
annotations: {}
|
||
|
# -- metrics service labels
|
||
|
labels: {}
|
||
|
# -- metrics service port
|
||
|
servicePort: 9300
|
||
|
# -- metrics service port name
|
||
|
portName: metrics
|
||
|
serviceMonitor:
|
||
|
# -- enable a prometheus ServiceMonitor
|
||
|
enabled: false
|
||
|
# -- Prometheus ServiceMonitor interval
|
||
|
interval: 30s
|
||
|
# -- Prometheus ServiceMonitor scrape timeout
|
||
|
scrapeTimeout: 3s
|
||
|
# -- Prometheus [RelabelConfigs] to apply to samples before scraping
|
||
|
relabelings: []
|
||
|
# -- Prometheus [MetricsRelabelConfigs] to apply to samples before ingestion
|
||
|
metricRelabelings: []
|
||
|
# -- Prometheus ServiceMonitor selector
|
||
|
selector: {}
|
||
|
# prometheus: kube-prometheus
|
||
|
|
||
|
# -- Prometheus ServiceMonitor scheme
|
||
|
scheme: ""
|
||
|
# -- Prometheus ServiceMonitor tlsConfig
|
||
|
tlsConfig: {}
|
||
|
# -- Prometheus ServiceMonitor namespace
|
||
|
namespace: ""
|
||
|
# -- Prometheus ServiceMonitor labels
|
||
|
labels: {}
|
||
|
# -- Prometheus ServiceMonitor annotations
|
||
|
annotations: {}
|
||
|
|
||
|
ingress:
|
||
|
# -- enable an ingress resource for the authentik server
|
||
|
enabled: false
|
||
|
# -- additional ingress annotations
|
||
|
annotations: {}
|
||
|
# -- additional ingress labels
|
||
|
labels: {}
|
||
|
# -- defines which ingress controller will implement the resource
|
||
|
ingressClassName: ""
|
||
|
# -- List of ingress hosts
|
||
|
hosts: []
|
||
|
# - authentik.domain.tld
|
||
|
|
||
|
# -- List of ingress paths
|
||
|
paths:
|
||
|
- /
|
||
|
# -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific`
|
||
|
pathType: Prefix
|
||
|
# -- additional ingress paths
|
||
|
extraPaths: []
|
||
|
# - path: /*
|
||
|
# pathType: Prefix
|
||
|
# backend:
|
||
|
# service:
|
||
|
# name: ssl-redirect
|
||
|
# port:
|
||
|
# name: use-annotation
|
||
|
|
||
|
# -- ingress TLS configuration
|
||
|
tls: []
|
||
|
# - secretName: authentik-tls
|
||
|
# hosts:
|
||
|
# - authentik.domain.tld
|
||
|
|
||
|
# -- uses `server.service.servicePortHttps` instead of `server.service.servicePortHttp`
|
||
|
https: false
|
||
|
|
||
|
|
||
|
## authentik worker
|
||
|
worker:
|
||
|
# -- authentik worker name
|
||
|
name: worker
|
||
|
|
||
|
# -- The number of worker pods to run
|
||
|
replicas: 1
|
||
|
|
||
|
## authentik worker Horizontal Pod Autoscaler
|
||
|
autoscaling:
|
||
|
# -- Enable Horizontal Pod Autoscaler ([HPA]) for the authentik worker
|
||
|
enabled: true
|
||
|
# -- Minimum number of replicas for the authentik worker [HPA]
|
||
|
minReplicas: 1
|
||
|
# -- Maximum number of replicas for the authentik worker [HPA]
|
||
|
maxReplicas: 5
|
||
|
# -- Average CPU utilization percentage for the authentik worker [HPA]
|
||
|
targetCPUUtilizationPercentage: 50
|
||
|
# -- Average memory utilization percentage for the authentik worker [HPA]
|
||
|
targetMemoryUtilizationPercentage: ~
|
||
|
# -- Configures the scaling behavior of the target in both Up and Down directions.
|
||
|
behavior: {}
|
||
|
# scaleDown:
|
||
|
# stabilizationWindowSeconds: 300
|
||
|
# policies:
|
||
|
# - type: Pods
|
||
|
# value: 1
|
||
|
# periodSeconds: 180
|
||
|
# scaleUp:
|
||
|
# stabilizationWindowSeconds: 300
|
||
|
# policies:
|
||
|
# - type: Pods
|
||
|
# value: 2
|
||
|
# periodSeconds: 60
|
||
|
# -- Configures custom HPA metrics for the authentik worker
|
||
|
# Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
|
||
|
metrics: []
|
||
|
|
||
|
## authentik worker Pod Disruption Budget
|
||
|
## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
|
||
|
pdb:
|
||
|
# -- Deploy a [PodDistrubtionBudget] for the authentik worker
|
||
|
enabled: false
|
||
|
# -- Labels to be added to the authentik worker pdb
|
||
|
labels: {}
|
||
|
# -- Annotations to be added to the authentik worker pdb
|
||
|
annotations: {}
|
||
|
# -- Number of pods that are available after eviction as number or percentage (eg.: 50%)
|
||
|
# @default -- `""` (defaults to 0 if not specified)
|
||
|
minAvailable: ""
|
||
|
# -- Number of pods that are unavailable after eviction as number or percentage (eg.: 50%)
|
||
|
## Has higher precedence over `worker.pdb.minAvailable`
|
||
|
maxUnavailable: ""
|
||
|
|
||
|
## authentik worker image
|
||
|
## This should match what is deployed in the server. Prefer using global.image
|
||
|
image:
|
||
|
# -- Repository to use to the authentik worker
|
||
|
# @default -- `""` (defaults to global.image.repository)
|
||
|
repository: "" # defaults to global.image.repository
|
||
|
# -- Tag to use to the authentik worker
|
||
|
# @default -- `""` (defaults to global.image.tag)
|
||
|
tag: "" # defaults to global.image.tag
|
||
|
# -- Digest to use to the authentik worker
|
||
|
# @default -- `""` (defaults to global.image.digest)
|
||
|
digest: "" # defaults to global.image.digest
|
||
|
# -- Image pull policy to use to the authentik worker
|
||
|
# @default -- `""` (defaults to global.image.pullPolicy)
|
||
|
pullPolicy: "" # defaults to global.image.pullPolicy
|
||
|
|
||
|
# -- Secrets with credentials to pull images from a private registry
|
||
|
# @default -- `[]` (defaults to global.imagePullSecrets)
|
||
|
imagePullSecrets: []
|
||
|
|
||
|
# -- Environment variables to pass to the authentik worker. Does not apply to GeoIP
|
||
|
# See configuration options at https://goauthentik.io/docs/installation/configuration/
|
||
|
# @default -- `[]` (See [values.yaml])
|
||
|
env:
|
||
|
- name: AUTHENTIK_REDIS__DB
|
||
|
value: "1"
|
||
|
# - name: AUTHENTIK_VAR_NAME
|
||
|
# value: VALUE
|
||
|
# - name: AUTHENTIK_VAR_OTHER
|
||
|
# valueFrom:
|
||
|
# secretKeyRef:
|
||
|
# name: secret-name
|
||
|
# key: secret-key
|
||
|
# - name: AUTHENTIK_VAR_ANOTHER
|
||
|
# valueFrom:
|
||
|
# configMapKeyRef:
|
||
|
# name: config-map-name
|
||
|
# key: config-map-key
|
||
|
|
||
|
# -- envFrom to pass to the authentik worker. Does not apply to GeoIP
|
||
|
# @default -- `[]` (See [values.yaml])
|
||
|
envFrom: []
|
||
|
# - configMapRef:
|
||
|
# name: config-map-name
|
||
|
# - secretRef:
|
||
|
# name: secret-name
|
||
|
|
||
|
# -- Specify postStart and preStop lifecycle hooks for you authentik worker container
|
||
|
lifecycle: {}
|
||
|
|
||
|
# -- Additional containers to be added to the authentik worker pod
|
||
|
## Note: Supports use of custom Helm templates
|
||
|
extraContainers: []
|
||
|
# - name: my-sidecar
|
||
|
# image: nginx:latest
|
||
|
|
||
|
# -- Init containers to add to the authentik worker pod
|
||
|
## Note: Supports use of custom Helm templates
|
||
|
initContainers: []
|
||
|
# - name: download-tools
|
||
|
# image: alpine:3
|
||
|
# command: [sh, -c]
|
||
|
# args:
|
||
|
# - echo init
|
||
|
|
||
|
# -- Additional volumeMounts to the authentik worker main container
|
||
|
volumeMounts: []
|
||
|
# - name: custom
|
||
|
# mountPath: /custom
|
||
|
|
||
|
# -- Additional volumes to the authentik worker pod
|
||
|
volumes: []
|
||
|
# - name: custom
|
||
|
# emptyDir: {}
|
||
|
|
||
|
# -- Annotations to be added to the authentik worker Deployment
|
||
|
deploymentAnnotations: {}
|
||
|
|
||
|
# -- Annotations to be added to the authentik worker pods
|
||
|
podAnnotations: {}
|
||
|
|
||
|
# -- Labels to be added to the authentik worker pods
|
||
|
podLabels: {}
|
||
|
|
||
|
# -- Resource limits and requests for the authentik worker
|
||
|
resources: {}
|
||
|
# requests:
|
||
|
# cpu: 100m
|
||
|
# memory: 512Mi
|
||
|
# limits:
|
||
|
# memory: 512Mi
|
||
|
|
||
|
# -- Host Network for authentik worker pods
|
||
|
hostNetwork: false
|
||
|
|
||
|
# -- [DNS configuration]
|
||
|
dnsConfig: {}
|
||
|
# -- Alternative DNS policy for authentik worker pods
|
||
|
dnsPolicy: ""
|
||
|
|
||
|
# -- authentik worker pod-level security context
|
||
|
# @default -- `{}` (See [values.yaml])
|
||
|
securityContext: {}
|
||
|
# runAsUser: 1000
|
||
|
# runAsGroup: 1000
|
||
|
# fsGroup: 1000
|
||
|
|
||
|
# -- authentik worker container-level security context
|
||
|
# @default -- See [values.yaml]
|
||
|
containerSecurityContext: {}
|
||
|
# Not all of the following has been tested. Use at your own risk.
|
||
|
# runAsNonRoot: true
|
||
|
# readOnlyRootFilesystem: true
|
||
|
# allowPrivilegeEscalation: false
|
||
|
# seccomProfile:
|
||
|
# type: RuntimeDefault
|
||
|
# capabilities:
|
||
|
# drop:
|
||
|
# - ALL
|
||
|
|
||
|
livenessProbe:
|
||
|
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
|
||
|
failureThreshold: 3
|
||
|
# -- Number of seconds after the container has started before [probe] is initiated
|
||
|
initialDelaySeconds: 5
|
||
|
# -- How often (in seconds) to perform the [probe]
|
||
|
periodSeconds: 10
|
||
|
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
|
||
|
successThreshold: 1
|
||
|
# -- Number of seconds after which the [probe] times out
|
||
|
timeoutSeconds: 1
|
||
|
## Probe configuration
|
||
|
exec:
|
||
|
command:
|
||
|
- ak
|
||
|
- healthcheck
|
||
|
|
||
|
readinessProbe:
|
||
|
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
|
||
|
failureThreshold: 3
|
||
|
# -- Number of seconds after the container has started before [probe] is initiated
|
||
|
initialDelaySeconds: 5
|
||
|
# -- How often (in seconds) to perform the [probe]
|
||
|
periodSeconds: 10
|
||
|
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
|
||
|
successThreshold: 1
|
||
|
# -- Number of seconds after which the [probe] times out
|
||
|
timeoutSeconds: 1
|
||
|
## Probe configuration
|
||
|
exec:
|
||
|
command:
|
||
|
- ak
|
||
|
- healthcheck
|
||
|
|
||
|
startupProbe:
|
||
|
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
|
||
|
failureThreshold: 60
|
||
|
# -- Number of seconds after the container has started before [probe] is initiated
|
||
|
initialDelaySeconds: 30
|
||
|
# -- How often (in seconds) to perform the [probe]
|
||
|
periodSeconds: 10
|
||
|
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
|
||
|
successThreshold: 1
|
||
|
# -- Number of seconds after which the [probe] times out
|
||
|
timeoutSeconds: 1
|
||
|
## Probe configuration
|
||
|
exec:
|
||
|
command:
|
||
|
- ak
|
||
|
- healthcheck
|
||
|
|
||
|
# -- terminationGracePeriodSeconds for container lifecycle hook
|
||
|
terminationGracePeriodSeconds: 30
|
||
|
|
||
|
# -- Prority class for the authentik worker pods
|
||
|
# @default -- `""` (defaults to global.priorityClassName)
|
||
|
priorityClassName: ""
|
||
|
|
||
|
# -- [Node selector]
|
||
|
# @default -- `{}` (defaults to global.nodeSelector)
|
||
|
nodeSelector: {}
|
||
|
|
||
|
# -- [Tolerations] for use with node taints
|
||
|
# @default -- `[]` (defaults to global.tolerations)
|
||
|
tolerations: []
|
||
|
|
||
|
# -- Assign custom [affinity] rules to the deployment
|
||
|
# @default -- `{}` (defaults to the global.affinity preset)
|
||
|
affinity: {}
|
||
|
|
||
|
# -- Assign custom [TopologySpreadConstraints] rules to the authentik worker
|
||
|
# @default -- `[]` (defaults to global.topologySpreadConstraints)
|
||
|
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
|
||
|
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
|
||
|
topologySpreadConstraints: []
|
||
|
# - maxSkew: 1
|
||
|
# topologyKey: topology.kubernetes.io/zone
|
||
|
# whenUnsatisfiable: DoNotSchedule
|
||
|
|
||
|
# -- Deployment strategy to be added to the authentik worker Deployment
|
||
|
# @default -- `{}` (defaults to global.deploymentStrategy)
|
||
|
deploymentStrategy: {}
|
||
|
# type: RollingUpdate
|
||
|
# rollingUpdate:
|
||
|
# maxSurge: 25%
|
||
|
# maxUnavailable: 25%
|
||
|
|
||
|
|
||
|
serviceAccount:
|
||
|
# -- Create service account. Needed for managed outposts
|
||
|
create: true
|
||
|
# -- additional service account annotations
|
||
|
annotations: {}
|
||
|
serviceAccountSecret:
|
||
|
# As we use the authentik-remote-cluster chart as subchart, and that chart
|
||
|
# creates a service account secret by default which we don't need here,
|
||
|
# disable its creation
|
||
|
enabled: false
|
||
|
fullnameOverride: authentik
|
||
|
|
||
|
|
||
|
geoip:
|
||
|
# -- enable GeoIP sidecars for the authentik server and worker pods
|
||
|
enabled: false
|
||
|
|
||
|
editionIds: "GeoLite2-City GeoLite2-ASN"
|
||
|
# -- GeoIP update frequency, in hours
|
||
|
updateInterval: 8
|
||
|
# -- sign up under https://www.maxmind.com/en/geolite2/signup
|
||
|
accountId: ""
|
||
|
# -- sign up under https://www.maxmind.com/en/geolite2/signup
|
||
|
licenseKey: ""
|
||
|
## use existing secret instead of values above
|
||
|
existingSecret:
|
||
|
# -- name of an existing secret to use instead of values above
|
||
|
secretName: ""
|
||
|
# -- key in the secret containing the account ID
|
||
|
accountId: "account_id"
|
||
|
# -- key in the secret containing the license key
|
||
|
licenseKey: "license_key"
|
||
|
|
||
|
image:
|
||
|
# -- If defined, a repository for GeoIP images
|
||
|
repository: ghcr.io/maxmind/geoipupdate
|
||
|
# -- If defined, a tag for GeoIP images
|
||
|
tag: v6.0.0
|
||
|
# -- If defined, an image digest for GeoIP images
|
||
|
digest: ""
|
||
|
# -- If defined, an imagePullPolicy for GeoIP images
|
||
|
pullPolicy: IfNotPresent
|
||
|
|
||
|
# -- Environment variables to pass to the GeoIP containers
|
||
|
# @default -- `[]` (See [values.yaml])
|
||
|
env: []
|
||
|
# - name: GEOIPUPDATE_VAR_NAME
|
||
|
# value: VALUE
|
||
|
# - name: GEOIPUPDATE_VAR_OTHER
|
||
|
# valueFrom:
|
||
|
# secretKeyRef:
|
||
|
# name: secret-name
|
||
|
# key: secret-key
|
||
|
# - name: GEOIPUPDATE_VAR_ANOTHER
|
||
|
# valueFrom:
|
||
|
# configMapKeyRef:
|
||
|
# name: config-map-name
|
||
|
# key: config-map-key
|
||
|
|
||
|
# -- envFrom to pass to the GeoIP containers
|
||
|
# @default -- `[]` (See [values.yaml])
|
||
|
envFrom: []
|
||
|
# - configMapRef:
|
||
|
# name: config-map-name
|
||
|
# - secretRef:
|
||
|
# name: secret-name
|
||
|
|
||
|
# -- Additional volumeMounts to the GeoIP containers. Make sure the volumes exists for the server and the worker.
|
||
|
volumeMounts: []
|
||
|
# - name: custom
|
||
|
# mountPath: /custom
|
||
|
|
||
|
# -- Resource limits and requests for GeoIP containers
|
||
|
resources: {}
|
||
|
# requests:
|
||
|
# cpu: 100m
|
||
|
# memory: 128Mi
|
||
|
# limits:
|
||
|
# memory: 128Mi
|
||
|
|
||
|
# -- GeoIP container-level security context
|
||
|
# @default -- See [values.yaml]
|
||
|
containerSecurityContext: {}
|
||
|
# Not all of the following has been tested. Use at your own risk.
|
||
|
# runAsNonRoot: true
|
||
|
# readOnlyRootFilesystem: true
|
||
|
# allowPrivilegeEscalation: false
|
||
|
# seccomProfile:
|
||
|
# type: RuntimeDefault
|
||
|
# capabilities:
|
||
|
# drop:
|
||
|
# - ALL
|
||
|
|
||
|
|
||
|
prometheus:
|
||
|
rules:
|
||
|
enabled: false
|
||
|
# -- PrometheusRule namespace
|
||
|
namespace: ""
|
||
|
# -- PrometheusRule selector
|
||
|
selector: {}
|
||
|
# prometheus: kube-prometheus
|
||
|
|
||
|
# -- PrometheusRule labels
|
||
|
labels: {}
|
||
|
# -- PrometheusRule annotations
|
||
|
annotations: {}
|
||
|
|
||
|
|
||
|
postgresql:
|
||
|
# -- enable the Bitnami PostgreSQL chart. Refer to https://github.com/bitnami/charts/blob/main/bitnami/postgresql/ for possible values.
|
||
|
enabled: false
|
||
|
auth:
|
||
|
username: authentik
|
||
|
database: authentik
|
||
|
# password: ""
|
||
|
primary:
|
||
|
extendedConfiguration: |
|
||
|
max_connections = 500
|
||
|
# persistence:
|
||
|
# enabled: true
|
||
|
# storageClass:
|
||
|
# accessModes:
|
||
|
# - ReadWriteOnce
|
||
|
|
||
|
|
||
|
redis:
|
||
|
# -- enable the Bitnami Redis chart. Refer to https://github.com/bitnami/charts/blob/main/bitnami/redis/ for possible values.
|
||
|
enabled: false
|
||
|
architecture: standalone
|
||
|
auth:
|
||
|
enabled: false
|
||
|
|
||
|
|
||
|
# -- additional resources to deploy. Those objects are templated.
|
||
|
additionalObjects: []
|
||
|
|