Настройка соединений воздушного потока с помощью Values.yaml в Helm (Kubernetes)

Версия воздушного потока — 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

Ваши extraSecrets выглядят точно так же, как вы опубликовали, то есть с #? airflow.apache.org/docs/helm-chart/stable/parameters-ref.htm‌​l есть пример, на который вы можете сослаться.

S N 11.11.2022 15:04

Я добавил соединение, предоставив объект типа json для ключа AIRFLOW_CONN_DATABRICKS_DEFAULT, но это вызвало ошибку, поэтому закомментировал его. Кроме того, я не могу найти пример добавления нескольких ключей к объекту соединения.

Aman Parmar 12.11.2022 21:43
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
2
171
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Соединения Airflow можно настроить с помощью секретов Kubernetes и переменных env.

Для установки секретов прямо из кли проще всего это сделать

  • Создайте секрет кубернета

    • Секретное значение (строка подключения) должно быть в формате URI, предложенном воздушным потоком.

  • Создайте переменную env в предложенном формате воздушного потока.

    • Формат воздушного потока для подключения — AIRFLOW_CONN_{connection_name, заглавными буквами}
  • Установить значение переменной env соединения, используя секрет

Как управлять соединениями воздушного потока: здесь

Пример, Чтобы установить подключение к блокам данных по умолчанию (databricks_default) в воздушном потоке —

  • создать секрет
    kubectl create secret generic airflow-connection-databricks \
        --from-literal=AIRFLOW_CONN_DATABRICKS_DEFAULT='databricks://@<DATABRICKS_HOST>?token=<DATABRICKS_TOKEN>'
  • В helm (values.yaml) добавьте новую переменную env, используя секрет:
    envName: "AIRFLOW_CONN_DATABRICKS_DEFAULT"
                secretName: "airflow-connection-databricks"
                secretKey: "AIRFLOW_CONN_DATABRICKS_DEFAULT"

Некоторые полезные ссылки:

Другие вопросы по теме