Версия воздушного потока — 2.3.0 Диаграмма Helm — Apache-воздушный поток/воздушный поток
Я работаю над настройкой воздушного потока с помощью helm на kubernetes. В настоящее время я планирую установить соединения воздушного потока, используя файл values.yaml и переменные env, вместо того, чтобы настраивать их в веб-интерфейсе.
Я считаю, что настройки для настройки, чтобы установить соединения, таковы:
extraSecrets: {}
# eg:
# extraSecrets:
# '{{ .Release.Name }}-airflow-connections':
# type: 'Opaque'
# data: |
# AIRFLOW_CONN_GCP: 'base64_encoded_gcp_conn_string'
# AIRFLOW_CONN_AWS: 'base64_encoded_aws_conn_string'
# stringData: |
# AIRFLOW_CONN_OTHER: 'other_conn'
# '{{ .Release.Name }}-other-secret-name-suffix':
# data: |
# ...
Я не уверен, как установить все пары ключ-значение для соединения databricks/emr и как использовать секреты kubernetes (уже настроенные как env vars в модулях) для получения значений
#extraSecrets:
# '{{ .Release.Name }}-airflow-connections':
# type: 'Opaque'
# data:
# AIRFLOW_CONN_DATABRICKS_DEFAULT_two:
# conn_type: "emr"
# host: <host_url>
# extra:
# token: <token string>
# host: <host_url>
Было бы здорово получить некоторые идеи о том, как решить эту проблему
Я посмотрел эту ссылку: management_connection on airflow
Пробные изменения в файле values.yaml:
#extraSecrets:
# '{{ .Release.Name }}-airflow-connections':
# type: 'Opaque'
# data:
# AIRFLOW_CONN_DATABRICKS_DEFAULT_two:
# conn_type: "emr"
# host: <host_url>
# extra:
# token: <token string>
# host: <host_url>
Произошла ошибка:
При обновлении выпуска helm:
extraSecrets.{{ .Release.Name }}-airflow-connections expects string, got object
Я добавил соединение, предоставив объект типа json для ключа AIRFLOW_CONN_DATABRICKS_DEFAULT, но это вызвало ошибку, поэтому закомментировал его. Кроме того, я не могу найти пример добавления нескольких ключей к объекту соединения.
Соединения Airflow можно настроить с помощью секретов Kubernetes и переменных env.
Для установки секретов прямо из кли проще всего это сделать
Создайте секрет кубернета
Секретное значение (строка подключения) должно быть в формате URI, предложенном воздушным потоком.
my-conn-type://login:password@host:port/schema?param1=val1¶m2=val2
Создайте переменную env в предложенном формате воздушного потока.
установить значение переменной env соединения, используя секрет
Как управлять соединениями воздушного потока: здесь
Пример, Чтобы установить подключение к блокам данных по умолчанию (databricks_default) в воздушном потоке —
kubectl create secret generic airflow-connection-databricks \
--from-literal=AIRFLOW_CONN_DATABRICKS_DEFAULT='databricks://@<DATABRICKS_HOST>?token=<DATABRICKS_TOKEN>'
envName: "AIRFLOW_CONN_DATABRICKS_DEFAULT"
secretName: "airflow-connection-databricks"
secretKey: "AIRFLOW_CONN_DATABRICKS_DEFAULT"
Некоторые полезные ссылки:
Ваши extraSecrets выглядят точно так же, как вы опубликовали, то есть с #? airflow.apache.org/docs/helm-chart/stable/parameters-ref.html есть пример, на который вы можете сослаться.