用户 [admin] 尝试访问 Airflow API 时身份验证失败

问题描述 投票:0回答:1

我们已经安装了 Elastic 和 Airflow 附带的 OpenMetadata 实例。我们使用官方 helm 图表及其图像“docker.getcollate.io/openmetadata/ingestion”。我升级到最新的 Helm Chart 版本 v1.1.4 和 OpenMetadata 版本。

但是我们面临着从 OpenMetadata 到 Airflow API 的连接问题。我们根据文档设置了基本身份验证(我们还测试了 SSO KeyCloak,它可以正常工作,但遇到相同的问题)。

当我尝试添加服务 - 管道或数据库时,我收到错误(下面附有屏幕截图): 打开元数据错误

打开元数据错误

我阅读了所有可用的文档并按照官方文档所述更新了我们的配置:

依赖关系图的values.yaml:

airflow:
  enabled: {{ is_airflow_enabled }}
  airflow:
    image:
      repository: docker.getcollate.io/openmetadata/ingestion
      tag: {{ airflow_image_tag }}
      pullPolicy: "IfNotPresent"
    executor: "KubernetesExecutor"
    config:
      # This is required for OpenMetadata UI to fetch status of DAGs
      AIRFLOW__API__AUTH_BACKENDS: "airflow.api.auth.backend.basic_auth"
      # OpenMetadata Airflow Apis Plugin DAGs Configuration
      AIRFLOW__OPENMETADATA_AIRFLOW_APIS__DAG_GENERATED_CONFIGS: "/opt/airflow/dags"
      # OpenMetadata Airflow Secrets Manager Configuration
      AIRFLOW__OPENMETADATA_SECRETS_MANAGER__AWS_REGION: ""
      AIRFLOW__OPENMETADATA_SECRETS_MANAGER__AWS_ACCESS_KEY_ID: ""
      AIRFLOW__OPENMETADATA_SECRETS_MANAGER__AWS_ACCESS_KEY: ""
      AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'

    users:
    - username: admin
      password: admin
      role: Admin
      email: [email protected]
      firstName: Peter
      lastName: Parker

OpenMetadata 图表的values.yaml:

    pipelineServiceClientConfig:
      enabled: true
      className: "org.openmetadata.service.clients.pipeline.airflow.AirflowRESTClient"
      apiEndpoint: http://openmetadata-dependencies-web.{{ openmetadata_namespace }}.svc.cluster.local:8080
      metadataApiEndpoint: http://openmetadata.{{ openmetadata_namespace }}.svc.cluster.local:8585/api
      verifySsl: "no-ssl"
      hostIp: ""
      ingestionIpInfoEnabled: false
      # healthCheckInterval in seconds
      healthCheckInterval: 300
      # local path in Airflow Pod
      sslCertificatePath: "/no/path"
      auth:
        username: admin
        password:
          secretRef: airflow-secrets
          secretKey: openmetadata-airflow-password

我尝试创建不同的用户,但出现相同的错误(创建新的秘密,为新用户升级airlflow value.yaml 文件并赋予管理员角色)。我不明白为什么我在浏览器中收到该错误,因为当我跳转到 OpenMetadata 时pod 和与 Airflow API 的测试连接似乎都很好:

bash-5.1# curl -XGET ${PIPELINE_SERVICE_CLIENT_ENDPOINT}/api/v1/openmetadata/health                                                                                                     
{"status": "healthy", "version": "1.1.0.3"}

此外,当我尝试与用户调用 Airflow API 时,我没有因 401 Unauthorized 而收到错误:

bash-5.1# curl -XPOST ${PIPELINE_SERVICE_CLIENT_ENDPOINT}/api/v1/openmetadata/enable --data-raw '{"dag_id": "123"}' -u "admin:admin" --header 'Content-Type: application/json'
{"error": "DAG 123 not found."}

我使用默认用户 admin/admin,并且可以登录 Airflow UI。

当我从 OpenMetadata 容器调用 env 变量时,看起来很好: Airflow 的 OM 环境变量

从 Openmetadata pod 中,我可以使用凭据调用 Airflow API:

bash-5.1# curl -XGET ${PIPELINE_SERVICE_CLIENT_ENDPOINT}/api/v1/openmetadata/health-auth -u "admin:admin"
{"status": "healthy", "version": "1.1.0.3"}
airflow airflow-api
1个回答
0
投票

将 OpenMetadata 图表的 value.yaml 中的变量

pipelineServiceClientConfig.apiEndpoint
更改为气流的内部端点。

© www.soinside.com 2019 - 2024. All rights reserved.