Файлы конфигурации
Categories:
Поведение при загрузке и обнаружение
Существует несколько опций, которые влияют на загрузку файлов:
Name | Argument | Environment Variable | Описание и назначение переменных |
---|---|---|---|
Files/Directories | --config , -c |
X_AUTHELIA_CONFIG |
Список путей к файлам или каталогам (без рекурсии) для загрузки файлов конфигурации |
Filters | --config.experimental.filters |
X_AUTHELIA_CONFIG_FILTERS |
Список фильтров, применяемых к каждому файлу из опций «Файлы» или «Каталоги». |
Параметры конфигурации могут быть определены либо через аргумент, либо через переменную окружения, но не через оба параметра одновременно. Если указаны оба параметра, приоритет имеет аргумент, а переменная окружения игнорируется. Обычно рекомендуется использовать переменную окружения, если вы используете контейнер, так как это позволит вам легче выполнять другие команды из контекста контейнера.
Запуск контейнера с файлом конфигурации
docker run authelia/authelia:latest authelia --config configuration.yml
docker run -d authelia/authelia:latest authelia --config configuration.yml --config config-acl.yml --config config-other.yml
docker run -d authelia/authelia:latest authelia --config configuration.yml,config-acl.yml,config-other.yml
По умолчанию контейнер ищет файл конфигурации по адресу /config/configuration.yml
docker run -d --volume /path/to/config:/config authelia:authelia:latest authelia --config=/config/configuration.yml --config=/config/configuration.acl.yml
Docker Compose
services:
authelia:
container_name: 'authelia'
image: 'authelia/authelia:latest'
command:
- 'authelia'
- '--config=/config/configuration.yml'
- '--config=/config/configuration.acl.yml'
Kubernetes
пример файла deployment.yaml
kind: Deployment
apiVersion: apps/v1
metadata:
name: authelia
namespace: authelia
labels:
app.kubernetes.io/instance: authelia
app.kubernetes.io/name: authelia
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/instance: authelia
app.kubernetes.io/name: authelia
template:
metadata:
labels:
app.kubernetes.io/instance: authelia
app.kubernetes.io/name: authelia
spec:
enableServiceLinks: false
containers:
- name: authelia
image: docker.io/authelia/authelia:latest
command:
- authelia
args:
- '--config=/configuration.yml'
- '--config=/configuration.acl.yml'
Файлы фильтров
Существуют файловые фильтры, которые позволяют изменять все конфигурационные файлы после их чтения из файловой системы, но до разбора их содержимого. Если эти фильтры не указаны явно, они НЕ подпадают под действие нашей стандартной политики версионирования.
Наступит момент, когда:
Имя аргумента CLI изменится (мы рекомендуем использовать переменную окружения, которая этого не сделает)
Фильтры настраиваются как список имен фильтров с помощью аргумента CLI –config.experimental.filters и переменной окружения X_AUTHELIA_CONFIG_FILTERS. Мы рекомендуем использовать переменную окружения, так как это гарантирует, что команды, выполняемые из контейнера, используют одни и те же фильтры, и, скорее всего, это постоянное значение, в то время как аргумент может меняться. Если используется и аргумент CLI, и переменная окружения, то переменная окружения полностью игнорируется.
Фильтры могут использоваться самостоятельно, в комбинации или вообще не использоваться. Фильтры обрабатываются в порядке их определения. Вы можете просмотреть вывод YAML-файлов при обработке с помощью фильтров, используя команду authelia config template.
docker run -d authelia/authelia:latest authelia --config /config/configuration.yml --config.experimental.filters template
docker run -d -e X_AUTHELIA_CONFIG_FILTERS=template -e X_AUTHELIA_CONFIG=/config/configuration.yml authelia/authelia:latest authelia
Используются функции шаблонизатора GO