Airflow
ETL-оркестратор платформы.
Назначение
Airflow — ETL-оркестратор платформы. Выполняет запланированные аналитические вычисления через Trino по конфигурациям, которые генерирует Configurator.
Компоненты Airflow:
- Webserver — веб-интерфейс
- Scheduler — планировщик DAG-ов
- Worker(ы) — исполнители задач (Celery)
- Configs Uploader — приём DAG-конфигов от Configurator и загрузка в S3
Деплой
Для установки необходимо заполнить файл с параметрами values-trisigma.yaml.
values.yaml содержит значения по умолчанию — не изменяйте его напрямую, а переопределяйте нужные параметры в отдельных файлах.
Параметры приложения
Хранятся в values-trisigma.yaml. Создайте файл из примера: cp values-trisigma.yaml.example values-trisigma.yaml.
Образы сервисов
| Параметр | Описание |
|---|---|
image.repository | Образ configs-uploader в Container registry |
airflow.images.airflow.repository | Образ Airflow в Container registry |
registry.trisigma.io напрямуюОбразы необходимо предварительно зеркалировать в ваш собственный Container Registry.
PostgreSQL
Метадата-БД Airflow.
| Параметр | Описание |
|---|---|
airflow.data.metadataConnection.host | Хостнейм для подключения к PostgreSQL |
Valkey (Celery broker)
Подключение к брокеру задаётся одной строкой airflow.data.brokerUrl — она же содержит пароль и описана в разделе Секреты приложения.
Trino
| Параметр | Описание |
|---|---|
trinoHost | Хостнейм для подключения к Trino |
trinoUser | Учетная запись для подключения к Trino |
S3 — бакет DAG-конфигов
| Параметр | Описание |
|---|---|
storage.configs.bucket | Имя бакета DAG-конфигов (trisigma-airflow-configs) |
storage.configs.storageClassName | Имя StorageClass для S3 CSI driver |
storage.configs.csiDriver | Имя S3 CSI driver |
storage.configs.capacity | Размер PVC |
awsRegion | Регион S3 |
awsEndpointUrl | Endpoint S3 для подключения |
S3 — логи Airflow
| Параметр | Описание |
|---|---|
airflow.config.logging.remote_base_log_folder | S3-путь к логам Airflow (бакет trisigma-airflow-logs) |
Configurator
| Параметр | Описание |
|---|---|
configuratorUrl | URL Configurator |
Секреты приложе ния
Большая часть секретов передаётся напрямую через secrets-values.yaml.
Для токена configs-uploader дополнительно поддерживается передача через существующий Kubernetes Secret
(например, созданного через Vault или External Secrets Operator).
Создайте файл из примера: cp secrets-values.yaml.example secrets-values.yaml.
| Секрет | Ключ | Описание |
|---|---|---|
PGPASSWORD | airflow.data.metadataConnection.pass | Пароль PostgreSQL |
BROKER_URL | airflow.data.brokerUrl | Полный URL Valkey с паролем |
WEBSERVER_PASSWORD | airflow.webserver.defaultUser.password | Пароль администратора веб-интерфейса1 |
CONFIGS_UPLOADER_API_TOKEN | configsUploader.apiToken | Токен загрузки DAG-конфигов от Configurator2 |
AWS_ACCESS_KEY_ID | s3.accessKey | S3 access key для доступа к ба кету trisigma-airflow-logs |
AWS_SECRET_ACCESS_KEY | s3.secretAccessKey | S3 secret key для доступа к бакету trisigma-airflow-logs |
CONFIGURATOR_API_KEY | analytic.configuratorApiKey | API-ключ Configurator для запроса DAG-джоб из фабрики3 |
TRINO_PASSWORD | analytic.trinoPassword | Пароль для подключения к Trino |
Использование существующего Secret (existingSecret)
Через existingSecret можно передать только CONFIGS_UPLOADER_API_TOKEN. Остальные секреты передаются inline через secrets-values.yaml.
kubectl create namespace trisigma-airflow
kubectl create secret generic trisigma-airflow-configs-uploader \
--from-literal=CONFIGS_UPLOADER_API_TOKEN='...' \
-n trisigma-airflow
configsUploader:
existingSecret: trisigma-airflow-configs-uploader
secretKeys:
apiTokenKey: CONFIGS_UPLOADER_API_TOKEN
Если имя ключа в Secret отличается — например, config_copy_token вместо CONFIGS_UPLOADER_API_TOKEN —
укажите соответствие через secretKeys:
configsUploader:
existingSecret: trisigma-airflow-configs-uploader
secretKeys:
apiTokenKey: config_copy_token
Использовать одновременно configsUploader.apiToken и configsUploader.existingSecret нельзя — способы несовместимы друг с другом.
Secret для S3 CSI driver
Бакет DAG-конфигов (trisigma-airflow-configs) монтируется в поды через S3 CSI driver (см. Требования к инфраструктуре → S3). Чарт ожидает Kubernetes Secret csi-s3-secret в namespace kube-system со следующими ключами:
| Ключ | Описание |
|---|---|
accessKeyID | S3 access key |
secretAccessKey | S3 secret key |
endpoint | Endpoint S3 для подключения |
kubectl create secret generic csi-s3-secret -n kube-system \
--from-literal=accessKeyID='<S3 access key>' \
--from-literal=secretAccessKey='<S3 secret key>' \
--from-literal=endpoint='https://<s3-endpoint>'
Если нужно использовать другое имя или namespace — задайте параметры storage.configs.csiSecretName и storage.configs.csiSecretNamespace.
Helm Install
cd trisigma-airflow
helm upgrade --install trisigma-airflow . \
--namespace trisigma-airflow --create-namespace \
-f values-trisigma.yaml \
-f secrets-values.yaml