k3s-infra/unused/authelia/values.yaml
2023-10-05 14:34:37 +02:00

1236 lines
42 KiB
YAML

---
## @formatter:off
## values.yaml
##
## Repository: authelia https://charts.authelia.com
## Chart: authelia
##
## This values file is designed for full deployment, eventually for in production once the chart makes it to 1.0.0.
## It uses the following providers:
## - authentication: LDAP
## - storage: MySQL
## - session: redis
## Version Override allows changing some chart characteristics that render only on specific versions.
## This does NOT affect the image used, please see the below image section instead for this.
## If this value is not specified, it's assumed the appVersion of the chart is the version.
## The format of this value is x.x.x, for example 4.100.0.
##
## Important Points:
## - No guarantees of support for prior versions is given. The chart is intended to be used with the AppVersion.
## - Does not and will not support any version prior to 4.30.0 due to a significant refactor of the configuration
## system.
versionOverride: ""
## Image Parameters
## ref: https://hub.docker.com/r/authelia/authelia/tags/
##
image:
# registry: docker.io
registry: ghcr.io
repository: authelia/authelia
tag: ""
pullPolicy: IfNotPresent
pullSecrets: []
# pullSecrets:
# - myPullSecretName
# nameOverride: authelia-deployment-name
# appNameOverride: authelia
##
## extra labels/annotations applied to all resources
##
annotations: {}
# annotations:
# myAnnotation: myValue
labels: {}
# labels:
# myLabel: myValue
##
## RBAC Configuration.
##
rbac:
## Enable RBAC. Turning this on associates Authelia with a service account.
## If the vault injector is enabled, then RBAC must be enabled.
enabled: false
annotations: {}
labels: {}
serviceAccountName: authelia
## Authelia Domain
## Should be the root domain you want to protect.
## For example if you have apps app1.example.com and app2.example.com it should be example.com
## This affects the ingress (partially sets the domain used) and configMap.
## Authelia must be served from the domain or a subdomain under it.
domain: kluster.moll.re
service:
annotations: {}
# annotations:
# myAnnotation: myValue
labels: {}
# labels:
# myLabel: myValue
port: 80
# clusterIP:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: cloudflare-letsencrypt-prod
labels: {}
# labels:
# myLabel: myValue
certManager: false
rewriteTarget: true
## The Ingress Class Name.
# className: ingress-nginx
## Subdomain is the only thing required since we specify the domain as part of the root values of the chart.
## Example: To get Authelia to listen on https://auth.example.com specify 'auth' for ingress.subdomain,
## and specify example.com for the domain.
subdomain: auth
tls:
enabled: true
secretName: cloudflare-letsencrypt-issuer-account-key
hosts:
- auth.kluster.moll.re
# hostNameOverride:
traefikCRD:
enabled: false
## Use a standard Ingress object, not an IngressRoute.
disableIngressRoute: false
# matchOverride: Host(`auth.example.com`) && PathPrefix(`/`)
entryPoints: []
# entryPoints:
# - http
# priority: 10
# weight: 10
sticky: false
# stickyCookieNameOverride: authelia_traefik_lb
# strategy: RoundRobin
# responseForwardingFlushInterval: 100ms
middlewares:
auth:
# nameOverride: authelia-auth
authResponseHeaders:
- Remote-User
- Remote-Name
- Remote-Email
- Remote-Groups
chains:
auth:
# nameOverride: authelia-auth-chain
# List of Middlewares to apply before the forwardAuth Middleware in the authentication chain.
before: []
# before:
# - name: extra-middleware-name
# namespace: default
# List of Middlewares to apply after the forwardAuth Middleware in the authentication chain.
after: []
# after:
# - name: extra-middleware-name
# namespace: default
ingressRoute:
# List of Middlewares to apply before the middleware in the IngressRoute chain.
before: []
# before:
# - name: extra-middleware-name
# namespace: default
# List of Middlewares to apply after the middleware in the IngressRoute chain.
after: []
# after:
# - name: extra-middleware-name
# namespace: default
# Specific options for the TraefikCRD TLS configuration. The above TLS section is still used.
tls:
## Disables inclusion of the IngressRoute TLSOptions.
disableTLSOptions: false
# existingOptions:
# name: default-traefik-options
# namespace: default
# certResolver: default
# sans:
# - *.example.com
#
options:
# nameOverride: authelia-tls-options
nameOverride: ""
minVersion: VersionTLS12
maxVersion: VersionTLS13
sniStrict: false
cipherSuites:
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_256_GCM_SHA384
curvePreferences: []
# curvePreferences:
# - CurveP521
# - CurveP384
pod:
# Must be Deployment, DaemonSet, or StatefulSet.
kind: DaemonSet
annotations: {}
# annotations:
# myAnnotation: myValue
labels: {}
# labels:
# myLabel: myValue
replicas: 1
revisionHistoryLimit: 5
strategy:
type: RollingUpdate
# rollingUpdate:
# partition: 1
# maxSurge: 25%
# maxUnavailable: 25%
securityContext:
container: {}
# container:
# runAsUser: 2000
# runAsGroup: 2000
# fsGroup: 2000
pod: {}
# pod:
# readOnlyRootFilesystem: true
# allowPrivilegeEscalation: false
# privileged: false
tolerations: []
# tolerations:
# - key: key1
# operator: Equal
# value: value1
# effect: NoSchedule
# tolerationSeconds: 3600
selectors:
# nodeName: worker-1
nodeSelector: {}
# nodeSelector:
# disktype: ssd
# kubernetes.io/hostname: worker-1
affinity:
nodeAffinity: {}
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# - key: kubernetes.io/hostname
# operator: In
# values:
# - worker-1
# - worker-2
# preferredDuringSchedulingIgnoredDuringExecution:
# - weight: 1
# preference:
# matchExpressions:
# - key: node-label-key
# operator: NotIn
# values:
# - not-this
podAffinity: {}
# podAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# - labelSelector:
# matchExpressions:
# - key: security
# operator: In
# values:
# - S1
# topologyKey: topology.kubernetes.io/zone
podAntiAffinity: {}
# podAntiAffinity:
# preferredDuringSchedulingIgnoredDuringExecution:
# - weight: 100
# podAffinityTerm:
# labelSelector:
# matchExpressions:
# - key: security
# operator: In
# values:
# - S2
# topologyKey: topology.kubernetes.io/zone
env: []
# env:
# - name: TZ
# value: Australia/Melbourne
resources:
limits: {}
# limits:
# cpu: "4.00"
# memory: 125Mi
requests: {}
# requests:
# cpu: "0.25"
# memory: 50Mi
probes:
method:
httpGet:
path: /api/health
port: http
scheme: HTTP
liveness:
initialDelaySeconds: 0
periodSeconds: 30
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
readiness:
initialDelaySeconds: 0
periodSeconds: 5
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
## Note: Startup Probes are a Kubernetes feature gate which must be manually enabled pre-1.18.
## Ref: https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/
startup:
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 6
extraVolumeMounts: []
extraVolumes: []
##
## Authelia Config Map Generator
##
configMap:
# Enable the configMap source for the Authelia config.
# If this is false you need to provide a volumeMount via PV/PVC or other means that mounts to /config.
enabled: true
annotations: {}
# annotations:
# myAnnotation: myValue
labels: {}
# labels:
# myLabel: myValue
key: configuration.yaml
existingConfigMap: ""
##
## Server Configuration
##
server:
##
## Port sets the configured port for the daemon, service, and the probes.
## Default is 9091 and should not need to be changed.
##
port: 9091
## Set the single level path Authelia listens on.
## Must be alphanumeric chars and should not contain any slashes.
path: ""
## Set the path on disk to Authelia assets.
## Useful to allow overriding of specific static assets.
# asset_path: /config/assets/
asset_path: ""
## Customize Authelia headers.
headers:
## Read the Authelia docs before setting this advanced option.
## https://www.authelia.com/configuration/miscellaneous/server/#csp_template.
csp_template: ""
## Buffers usually should be configured to be the same value.
## Explanation at https://www.authelia.com/configuration/miscellaneous/server/
## Read buffer size adjusts the server's max incoming request size in bytes.
## Write buffer size does the same for outgoing responses.
read_buffer_size: 4096
write_buffer_size: 4096
log:
## Level of verbosity for logs: info, debug, trace.
level: info
## Format the logs are written as: json, text.
format: text
## TODO: Statefulness check should check if this is set, and the configMap should enable it.
## File path where the logs will be written. If not set logs are written to stdout.
# file_path: /config/authelia.log
file_path: ""
##
## Telemetry Configuration
##
telemetry:
##
## Metrics Configuration
##
metrics:
## Enable Metrics.
enabled: false
## The port to listen on for metrics. This should be on a different port to the main server.port value.
port: 9959
serviceMonitor:
enabled: false
annotations: {}
labels: {}
## Default redirection URL
##
## If user tries to authenticate without any referer, Authelia does not know where to redirect the user to at the end
## of the authentication process. This parameter allows you to specify the default redirection URL Authelia will use
## in such a case.
##
## Note: this parameter is optional. If not provided, user won't be redirected upon successful authentication.
## Default is https://www.<domain> (value at the top of the values.yaml).
default_redirection_url: ""
# default_redirection_url: https://example.com
## Set the default 2FA method for new users and for when a user has a preferred method configured that has been
## disabled. This setting must be a method that is enabled.
## Options are totp, webauthn, mobile_push.
default_2fa_method: "totp"
theme: light
##
## TOTP Configuration
##
## Parameters used for TOTP generation.
totp:
## Disable TOTP.
disable: false
## The issuer name displayed in the Authenticator application of your choice.
## Defaults to <domain>.
issuer: ""
## The TOTP algorithm to use.
## It is CRITICAL you read the documentation before changing this option:
## https://www.authelia.com/configuration/second-factor/time-based-one-time-password/#algorithm
algorithm: sha1
## The number of digits a user has to input. Must either be 6 or 8.
## Changing this option only affects newly generated TOTP configurations.
## It is CRITICAL you read the documentation before changing this option:
## https://www.authelia.com/configuration/second-factor/time-based-one-time-password/#digits
digits: 6
## The period in seconds a one-time password is valid for.
## Changing this option only affects newly generated TOTP configurations.
period: 30
## The skew controls number of one-time passwords either side of the current one that are valid.
## Warning: before changing skew read the docs link below.
## See: https://www.authelia.com/configuration/second-factor/time-based-one-time-password/#input-validation to read the documentation.
skew: 1
## The size of the generated shared secrets. Default is 32 and is sufficient in most use cases, minimum is 20.
secret_size: 32
##
## WebAuthn Configuration
##
## Parameters used for WebAuthn.
webauthn:
## Disable Webauthn.
disable: false
## Adjust the interaction timeout for Webauthn dialogues.
timeout: 60s
## The display name the browser should show the user for when using Webauthn to login/register.
display_name: Authelia
## Conveyance preference controls if we collect the attestation statement including the AAGUID from the device.
## Options are none, indirect, direct.
attestation_conveyance_preference: indirect
## User verification controls if the user must make a gesture or action to confirm they are present.
## Options are required, preferred, discouraged.
user_verification: preferred
##
## Authentication Backend Provider Configuration
##
## Used for verifying user passwords and retrieve information such as email address and groups users belong to.
##
## The available providers are: `file`, `ldap`. You must use one and only one of these providers.
authentication_backend:
## Password Reset Options.
password_reset:
## Disable both the HTML element and the API for reset password functionality
disable: false
## External reset password url that redirects the user to an external reset portal. This disables the internal reset
## functionality.
custom_url: ""
## The amount of time to wait before we refresh data from the authentication backend. Uses duration notation.
## To disable this feature set it to 'disable', this will slightly reduce security because for Authelia, users will
## always belong to groups they belonged to at the time of login even if they have been removed from them in LDAP.
## To force update on every request you can set this to '0' or 'always', this will increase processor demand.
## See the below documentation for more information.
## Duration Notation docs: https://www.authelia.com/configuration/prologue/common/#duration-notation-format
## Refresh Interval docs: https://www.authelia.com/configuration/first-factor/ldap/#refresh-interval
refresh_interval: 5m
## LDAP backend configuration.
##
## This backend allows Authelia to be scaled to more
## than one instance and therefore is recommended for
## production.
ldap:
enabled: false
## File (Authentication Provider)
##
## With this backend, the users database is stored in a file which is updated when users reset their passwords.
## Therefore, this backend is meant to be used in a dev environment and not in production since it prevents Authelia
## to be scaled to more than one instance. The options under 'password' have sane defaults, and as it has security
## implications it is highly recommended you leave the default values. Before considering changing these settings
## please read the docs page: https://www.authelia.com/reference/guides/passwords/#tuning
##
## Important: Kubernetes (or HA) users must read https://www.authelia.com/overview/authorization/statelessness/
##
file:
enabled: true
path: /config/users_database.yml
password:
algorithm: argon2id
iterations: 1
key_length: 32
salt_length: 16
memory: 1024
parallelism: 8
##
## Password Policy Configuration.
##
password_policy:
## The standard policy allows you to tune individual settings manually.
standard:
enabled: false
## Require a minimum length for passwords.
min_length: 8
## Require a maximum length for passwords.
max_length: 0
## Require uppercase characters.
require_uppercase: true
## Require lowercase characters.
require_lowercase: true
## Require numeric characters.
require_number: true
## Require special characters.
require_special: true
## zxcvbn is a well known and used password strength algorithm. It does not have tunable settings.
zxcvbn:
enabled: false
## Configures the minimum score allowed.
min_score: 0
##
## Access Control Configuration
##
## Access control is a list of rules defining the authorizations applied for one resource to users or group of users.
##
## If 'access_control' is not defined, ACL rules are disabled and the 'bypass' rule is applied, i.e., access is allowed
## to anyone. Otherwise restrictions follow the rules defined.
##
## Note: One can use the wildcard * to match any subdomain.
## It must stand at the beginning of the pattern. (example: *.mydomain.com)
##
## Note: You must put patterns containing wildcards between simple quotes for the YAML to be syntactically correct.
##
## Definition: A 'rule' is an object with the following keys: 'domain', 'subject', 'policy' and 'resources'.
##
## - 'domain' defines which domain or set of domains the rule applies to.
##
## - 'subject' defines the subject to apply authorizations to. This parameter is optional and matching any user if not
## provided. If provided, the parameter represents either a user or a group. It should be of the form
## 'user:<username>' or 'group:<groupname>'.
##
## - 'policy' is the policy to apply to resources. It must be either 'bypass', 'one_factor', 'two_factor' or 'deny'.
##
## - 'resources' is a list of regular expressions that matches a set of resources to apply the policy to. This parameter
## is optional and matches any resource if not provided.
##
## Note: the order of the rules is important. The first policy matching (domain, resource, subject) applies.
access_control:
## Configure the ACL as a Secret instead of part of the ConfigMap.
secret:
## Enables the ACL section being generated as a secret.
enabled: false
## The key in the secret which contains the file to mount.
key: configuration.acl.yaml
## An existingSecret name, if configured this will force the secret to be mounted using the key above.
existingSecret: ""
## Default policy can either be 'bypass', 'one_factor', 'two_factor' or 'deny'. It is the policy applied to any
## resource if there is no policy to be applied to the user.
default_policy: deny
networks: []
# networks:
# - name: private
# networks:
# - 10.0.0.0/8
# - 172.16.0.0/12
# - 192.168.0.0/16
# - name: vpn
# networks:
# - 10.9.0.0/16
rules: []
# rules:
# - domain_regex: '^.*\.example.com$'
# policy: bypass
# - domain: public.example.com
# policy: bypass
# - domain: "*.example.com"
# policy: bypass
# methods:
# - OPTIONS
# - domain: secure.example.com
# policy: one_factor
# networks:
# - private
# - vpn
# - 192.168.1.0/24
# - 10.0.0.1
# - domain:
# - secure.example.com
# - private.example.com
# policy: two_factor
# - domain: singlefactor.example.com
# policy: one_factor
# - domain: "mx2.mail.example.com"
# subject: "group:admins"
# policy: deny
# - domain: "*.example.com"
# subject:
# - "group:admins"
# - "group:moderators"
# policy: two_factor
# - domain: dev.example.com
# resources:
# - "^/groups/dev/.*$"
# subject: "group:dev"
# policy: two_factor
# - domain: dev.example.com
# resources:
# - "^/users/john/.*$"
# subject:
# - ["group:dev", "user:john"]
# - "group:admins"
# policy: two_factor
# - domain: "{user}.example.com"
# policy: bypass
##
## Session Provider Configuration
##
## The session cookies identify the user once logged in.
## The available providers are: `memory`, `redis`. Memory is the provider unless redis is defined.
session:
## The name of the session cookie. (default: authelia_session).
name: authelia_session
## Sets the Cookie SameSite value. Possible options are none, lax, or strict.
## Please read https://www.authelia.com/configuration/session/introduction/#same_site
same_site: lax
## The time in seconds before the cookie expires and session is reset.
expiration: 1h
## The inactivity time in seconds before the session is reset.
inactivity: 5m
## The remember me duration.
## Value is in seconds, or duration notation. Value of 0 disables remember me.
## See: https://www.authelia.com/configuration/prologue/common/#duration-notation-format
## Longer periods are considered less secure because a stolen cookie will last longer giving attackers more time to
## spy or attack. Currently the default is 1M or 1 month.
remember_me_duration: 1M
##
## Redis Provider
##
## Important: Kubernetes (or HA) users must read https://www.authelia.com/overview/authorization/statelessness/
##
## The redis connection details
redis:
enabled: false
##
## Regulation Configuration
##
## This mechanism prevents attackers from brute forcing the first factor. It bans the user if too many attempts are done
## in a short period of time.
regulation:
## The number of failed login attempts before user is banned. Set it to 0 to disable regulation.
max_retries: 3
## The time range during which the user can attempt login before being banned. The user is banned if the
## authentication failed 'max_retries' times in a 'find_time' seconds window. Find Time accepts duration notation.
## See: https://www.authelia.com/configuration/prologue/common/#duration-notation-format
find_time: 2m
## The length of time before a banned user can login again. Ban Time accepts duration notation.
## See: https://www.authelia.com/configuration/prologue/common/#duration-notation-format
ban_time: 5m
##
## Storage Provider Configuration
##
## The available providers are: `local`, `mysql`, `postgres`. You must use one and only one of these providers.
storage:
##
## Local (Storage Provider)
##
## This stores the data in a SQLite3 Database.
## This is only recommended for lightweight non-stateful installations.
##
## Important: Kubernetes (or HA) users must read https://www.authelia.com/overview/authorization/statelessness/
##
local:
enabled: true
path: /config/db.sqlite3
##
## MySQL (Storage Provider)
##
## Also supports MariaDB
##
mysql:
enabled: false
##
## PostgreSQL (Storage Provider)
##
postgres:
enabled: false
##
## Notification Provider
##
##
## Notifications are sent to users when they require a password reset, a u2f registration or a TOTP registration.
## The available providers are: filesystem, smtp. You must use one and only one of these providers.
notifier:
## You can disable the notifier startup check by setting this to true.
disable_startup_check: false
##
## File System (Notification Provider)
##
## Important: Kubernetes (or HA) users must read https://www.authelia.com/overview/authorization/statelessness/
##
filesystem:
enabled: true
filename: /config/notification.txt
##
## SMTP (Notification Provider)
##
## Use a SMTP server for sending notifications. Authelia uses the PLAIN or LOGIN methods to authenticate.
## [Security] By default Authelia will:
## - force all SMTP connections over TLS including unauthenticated connections
## - use the disable_require_tls boolean value to disable this requirement
## (only works for unauthenticated connections)
## - validate the SMTP server x509 certificate during the TLS handshake against the hosts trusted certificates
## (configure in tls section)
smtp:
enabled: false
identity_providers:
oidc:
## Enables this in the config map. Currently in beta stage.
## See https://www.authelia.com/r/openid-connect/
enabled: false
access_token_lifespan: 1h
authorize_code_lifespan: 1m
id_token_lifespan: 1h
refresh_token_lifespan: 90m
## Adjusts the PKCE enforcement. Options are always, public_clients_only, never.
## For security reasons it's recommended this option is public_clients_only or always, however always is not
## compatible with all clients.
enforce_pkce: public_clients_only
## Enables the plain PKCE challenge which is not recommended for security reasons but may be necessary for some clients.
enable_pkce_plain_challenge: false
## SECURITY NOTICE: It's not recommended changing this option, and highly discouraged to have it below 8 for
## security reasons.
minimum_parameter_entropy: 8
## Enables additional debug messages.
enable_client_debug_messages: false
## Cross-Origin Resource Sharing (CORS) settings.
cors:
## List of endpoints in addition to the metadata endpoints to permit cross-origin requests on.
# endpoints:
# - authorization
# - token
# - revocation
# - introspection
# - userinfo
endpoints: []
## List of allowed origins.
## Any origin with https is permitted unless this option is configured or the
## allowed_origins_from_client_redirect_uris option is enabled.
# allowed_origins:
# - https://example.com
allowed_origins: []
## Automatically adds the origin portion of all redirect URI's on all clients to the list of allowed_origins,
## provided they have the scheme http or https and do not have the hostname of localhost.
allowed_origins_from_client_redirect_uris: true
clients: []
# clients:
# -
## The ID is the OpenID Connect ClientID which is used to link an application to a configuration.
# id: myapp
## The description to show to users when they end up on the consent screen. Defaults to the ID above.
# description: My Application
## The client secret is a shared secret between Authelia and the consumer of this client.
# secret: apple123
## Sector Identifiers are occasionally used to generate pairwise subject identifiers. In most cases this is not
## necessary. Read the documentation for more information.
## The subject identifier must be the host component of a URL, which is a domain name with an optional port.
# sector_identifier: example.com
## Sets the client to public. This should typically not be set, please see the documentation for usage.
# public: false
## The policy to require for this client; one_factor or two_factor.
# authorization_policy: two_factor
## By default users cannot remember pre-configured consents. Setting this value to a period of time using a
## duration notation will enable users to remember consent for this client. The time configured is the amount
## of time the pre-configured consent is valid for granting new authorizations to the user.
# pre_configured_consent_duration: 30d
## Audience this client is allowed to request.
# audience: []
## Scopes this client is allowed to request.
# scopes:
# - openid
# - profile
# - email
# - groups
## Redirect URI's specifies a list of valid case-sensitive callbacks for this client.
# redirect_uris:
# - https://oidc.example.com/oauth2/callback
## Grant Types configures which grants this client can obtain.
## It's not recommended to configure this unless you know what you're doing.
# grant_types:
# - refresh_token
# - authorization_code
## Response Types configures which responses this client can be sent.
## It's not recommended to configure this unless you know what you're doing.
# response_types:
# - code
## Response Modes configures which response modes this client supports.
## It's not recommended to configure this unless you know what you're doing.
# response_modes:
# - form_post
# - query
# - fragment
## The algorithm used to sign userinfo endpoint responses for this client, either none or RS256.
# userinfo_signing_algorithm: none
##
## Authelia Secret Generator.
##
## If both the values and existingSecret are not defined, this chart randomly generates a new secret on each
## install. It is recommended that you use something like sealed-secrets (https://github.com/bitnami-labs/sealed-secrets)
## and use the existingSecrets. All secrets can be stored in a single k8s secret if desired using the key option.
##
secret:
existingSecret: ""
# existingSecret: authelia
annotations: {}
# annotations:
# myAnnotation: myValue
labels: {}
# labels:
# myLabel: myValue
mountPath: /secrets
excludeVolumeAndMounts: false
## Secrets.
jwt:
key: JWT_TOKEN
value: ""
filename: JWT_TOKEN
ldap:
key: LDAP_PASSWORD
value: ""
filename: LDAP_PASSWORD
storage:
key: STORAGE_PASSWORD
value: ""
filename: STORAGE_PASSWORD
storageEncryptionKey:
key: STORAGE_ENCRYPTION_KEY
value: ""
filename: STORAGE_ENCRYPTION_KEY
session:
key: SESSION_ENCRYPTION_KEY
value: ""
filename: SESSION_ENCRYPTION_KEY
duo:
key: DUO_API_KEY
value: ""
filename: DUO_API_KEY
redis:
key: REDIS_PASSWORD
value: ""
filename: REDIS_PASSWORD
redisSentinel:
key: REDIS_SENTINEL_PASSWORD
value: ""
filename: REDIS_SENTINEL_PASSWORD
smtp:
key: SMTP_PASSWORD
value: ""
filename: SMTP_PASSWORD
oidcPrivateKey:
key: OIDC_PRIVATE_KEY
value: ""
filename: OIDC_PRIVATE_KEY
oidcHMACSecret:
key: OIDC_HMAC_SECRET
value: ""
filename: OIDC_HMAC_SECRET
## HashiCorp Vault Injector configuration.
vaultInjector:
## Enable the vault injector annotations. This will disable secret injection via other means.
## To see the annotations and what they do see: https://www.vaultproject.io/docs/platform/k8s/injector/annotations
## Annotations with a blank string do not get configured at all.
## Additional annotations can be configured via the secret.annotations: {} above.
## Secrets are by default rendered in the /secrets directory. Changing this can be done via editing the
## secret.mountPath value. You can alter the filenames with the secret.<secretName>.filename values.
## Secrets are loaded from vault path specified below with secrets.<secretName>.path values. Its format should be
## <SECRET_PATH>:<KEY_NAME>.
## Secrets are by default rendered by template suitable for vault KV v1 or database secrets engines. If other used,
## it can be overriden per each secret by specifying secrets.<secretName>.templateValue. For example for KV v2
## secrets engine would be '{{ with secret "<SECRET_PATH>" }}{{ .Data.data.<KEY_NAME> }}{{ end }}'.
enabled: false
## The vault role to assign via annotations.
## Annotation: vault.hashicorp.com/role
role: authelia
agent:
## Annotation: vault.hashicorp.com/agent-inject-status
status: update
## Annotation: vault.hashicorp.com/agent-configmap
configMap: ""
## Annotation: vault.hashicorp.com/agent-image
image: ""
## Annotation: vault.hashicorp.com/agent-init-first
initFirst: "false"
## Annotation: vault.hashicorp.com/agent-inject-command
command: "sh -c 'kill HUP $(pidof authelia)'"
## Annotation: vault.hashicorp.com/agent-run-as-same-user
runAsSameUser: "true"
secrets:
jwt:
## Vault Path to the Authelia JWT secret.
## Annotation: vault.hashicorp.com/agent-inject-secret-jwt
path: secrets/authelia/jwt:token
## Vault template specific to JWT.
## Annotation: vault.hashicorp.com/agent-inject-template-jwt
templateValue: ""
## Vault after render command specific to JWT.
## Annotation: vault.hashicorp.com/agent-inject-command-jwt
command: ""
ldap:
## Vault Path to the Authelia LDAP secret.
## Annotation: vault.hashicorp.com/agent-inject-secret-ldap
path: secrets/authelia/ldap:password
## Vault template specific to LDAP.
## Annotation: vault.hashicorp.com/agent-inject-template-ldap
templateValue: ""
## Vault after render command specific to LDAP.
## Annotation: vault.hashicorp.com/agent-inject-command-ldap
command: ""
storage:
## Vault Path to the Authelia storage password secret.
## Annotation: vault.hashicorp.com/agent-inject-secret-storage
path: secrets/authelia/storage:password
## Vault template specific to the storage password.
## Annotation: vault.hashicorp.com/agent-inject-template-storage
templateValue: ""
## Vault after render command specific to the storage password.
## Annotation: vault.hashicorp.com/agent-inject-command-storage
command: ""
storageEncryptionKey:
## Vault Path to the Authelia storage encryption key secret.
## Annotation: vault.hashicorp.com/agent-inject-secret-storage-encryption-key
path: secrets/authelia/storage:encryption_key
## Vault template specific to the storage encryption key.
## Annotation: vault.hashicorp.com/agent-inject-template-storage-encryption-key
templateValue: ""
## Vault after render command specific to the storage encryption key.
## Annotation: vault.hashicorp.com/agent-inject-command-storage-encryption-key
command: ""
session:
## Vault Path to the Authelia session secret.
## Annotation: vault.hashicorp.com/agent-inject-secret-session
path: secrets/authelia/session:encryption_key
## Vault template specific to session.
## Annotation: vault.hashicorp.com/agent-inject-template-session
templateValue: ""
## Vault after render command specific to session.
## Annotation: vault.hashicorp.com/agent-inject-command-session
command: ""
duo:
## Vault Path to the Authelia duo secret.
## Annotation: vault.hashicorp.com/agent-inject-secret-duo
path: secrets/authelia/duo:api_key
## Vault template specific to duo.
## Annotation: vault.hashicorp.com/agent-inject-template-duo
templateValue: ""
## Vault after render command specific to duo.
## Annotation: vault.hashicorp.com/agent-inject-command-duo
command: ""
redis:
## Vault Path to the Authelia redis secret.
## Annotation: vault.hashicorp.com/agent-inject-secret-redis
path: secrets/authelia/redis:password
## Vault template specific to redis.
## Annotation: vault.hashicorp.com/agent-inject-template-redis
templateValue: ""
## Vault after render command specific to redis.
## Annotation: vault.hashicorp.com/agent-inject-command-redis
command: ""
redisSentinel:
## Vault Path to the Authelia redis sentinel secret.
## Annotation: vault.hashicorp.com/agent-inject-secret-redis-sentinel
path: secrets/authelia/redis_sentinel:password
## Vault template specific to redis sentinel.
## Annotation: vault.hashicorp.com/agent-inject-template-redis-sentinel
templateValue: ""
## Vault after render command specific to redis sentinel.
## Annotation: vault.hashicorp.com/agent-inject-command-redis-sentinel
command: ""
smtp:
## Vault Path to the Authelia SMTP secret.
## Annotation: vault.hashicorp.com/agent-inject-secret-smtp
path: secrets/authelia/smtp:password
## Vault template specific to SMTP.
## Annotation: vault.hashicorp.com/agent-inject-template-smtp
templateValue: ""
## Vault after render command specific to SMTP.
## Annotation: vault.hashicorp.com/agent-inject-command-smtp
command: ""
oidcPrivateKey:
## Vault Path to the Authelia OIDC private key secret.
## Annotation: vault.hashicorp.com/agent-inject-secret-oidc-private-key
path: secrets/authelia/oidc:private_key
## Vault template specific to OIDC private key.
## Annotation: vault.hashicorp.com/agent-inject-template-oidc-private-key
templateValue: ""
## Vault after render command specific to OIDC private key.
## Annotation: vault.hashicorp.com/agent-inject-command-oidc-private-key
command: ""
oidcHMACSecret:
## Vault Path to the Authelia OIDC HMAC secret.
## Annotation: vault.hashicorp.com/agent-inject-secret-oidc-hmac-secret
path: secrets/authelia/oidc:hmac_secret
## Vault template specific to OIDC HMAC secret.
## Annotation: vault.hashicorp.com/agent-inject-template-oidc-hmac-secret
templateValue: ""
## Vault after render command specific to OIDC HMAC secret.
## Annotation: vault.hashicorp.com/agent-inject-command-oidc-hmac-secret
command: ""
certificates:
existingSecret: ""
# existingSecret: authelia
annotations: {}
# annotations:
# myAnnotation: myValue
labels: {}
# labels:
# myLabel: myValue
values: []
# values:
# - name: Example_Com_Root_Certificate_Authority_B64.pem
# secretValue: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURYekNDQWtlZ0F3SUJBZ0lMQkFBQUFBQUJJVmhUQ0tJd0RRWUpLb1pJaHZjTkFRRUxCUUF3VERFZ01CNEcKQTFVRUN4TVhSMnh2WW1Gc1UybG5iaUJTYjI5MElFTkJJQzBnVWpNeEV6QVJCZ05WQkFvVENrZHNiMkpoYkZOcApaMjR4RXpBUkJnTlZCQU1UQ2tkc2IySmhiRk5wWjI0d0hoY05NRGt3TXpFNE1UQXdNREF3V2hjTk1qa3dNekU0Ck1UQXdNREF3V2pCTU1TQXdIZ1lEVlFRTEV4ZEhiRzlpWVd4VGFXZHVJRkp2YjNRZ1EwRWdMU0JTTXpFVE1CRUcKQTFVRUNoTUtSMnh2WW1Gc1UybG5iakVUTUJFR0ExVUVBeE1LUjJ4dlltRnNVMmxuYmpDQ0FTSXdEUVlKS29aSQpodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU13bGRwQjVCbmdpRnZYQWc3YUV5aWllL1FWMkVjV3RpSEw4ClJnSkR4N0tLblFSZkpNc3VTK0ZnZ2tiaFVxc01nVWR3Yk4xazBldjFMS01QZ2owTUs2NlgxN1lVaGhCNXV6c1QKZ0hlTUNPRkowbXBpTHg5ZStwWm8zNGtubFRpZkJ0Yyt5Y3NtV1ExejNyREk2U1lPZ3hYRzcxdUwwZ1JneWttbQpLUFpwTy9iTHlDaVI1WjJLWVZjM3JIUVUzSFRnT3U1eUx5NmMrOUM3di9VOUFPRUdNK2lDSzY1VHBqb1djNHpkClFRNGdPc0MwcDZIcHNrK1FMakpnNlZmTHVRU1NhR2psT0NaZ2RiS2ZkLytSRk8rdUlFbjhyVUFWU05FQ01XRVoKWHJpWDc2MTN0MlNhZXI5ZndSUHZtMkw3RFd6Z1ZHa1dxUVBhYnVtRGszRjJ4bW1GZ2hjQ0F3RUFBYU5DTUVBdwpEZ1lEVlIwUEFRSC9CQVFEQWdFR01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZJL3dTMytvCkxrVWtyazFRK21PYWk5N2kzUnU4TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCTFFOdkFVS3IreUF6djk1WlUKUlVtN2xnQUpRYXl6RTRhR0tBY3p5bXZtZExtNkFDMnVwQXJUOWZIeEQ0cS9jMmRLZzhkRWUzamdyMjVzYndNcApqak01UmNPTzVMbFhiS3I4RXBic1U4WXQ1Q1JzdVpSais5eFRhR2RXUG9PNHp6VWh3OGxvL3M3YXdsT3F6SkNLCjZmQmRSb3lWM1hwWUtCb3ZIZDdOQURkQmorMUViZGRUS0pkKzgyY0VIaFhYaXBhMDA5NU1KNlJNRzNOemR2UVgKbWNJZmVnN2pMUWl0Q2h3cy96eXJWUTRQa1g0MjY4TlhTYjdoTGkxOFlJdkRRVkVUSTUzTzl6SnJsQUdvbWVjcwpNeDg2T3lYU2hrRE9PeXlHZU1saEx4UzY3dHRWYjkrRTdnVUpUYjBvMkhMTzAySlFaUjdya3BlRE1kbXp0Y3BICldEOWYKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
# - name: Example_Com_Root_Certificate_Authority.pem
# value: |
# -----BEGIN CERTIFICATE-----
# MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
# A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
# Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
# MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
# A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
# hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
# RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
# gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
# KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
# QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
# XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
# DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
# LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
# RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
# jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
# 6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
# mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
# Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
# WD9f
# -----END CERTIFICATE-----
##
## Authelia Persistence Configuration.
##
## Useful in scenarios where you need persistent storage.
## Auth Provider Use Case: file; we recommend you use the ldap provider instead.
## Storage Provider Use Case: local; we recommend you use the mysql/mariadb or postgres provider instead.
## Configuration Use Case: when you want to manually configure the configuration entirely (set configMap.enabled = false).
##
persistence:
enabled: true
annotations: {}
# annotations:
readOnly: false
existingClaim: "authelia-config-nfs"
# existingClaim: my-claim-name
storageClass: ""
# storageClass: "my-storage-class"
accessModes:
- ReadWriteOnce