Skip to content

Liveness / Readiness / Startup probe path for Airflow 3.x #58129

@gichul-hong

Description

@gichul-hong

Official Helm Chart version

1.18.0 (latest released)

Apache Airflow version

3.0.2

Kubernetes Version

1.31.8

Helm Chart configuration

webserver:
  enabled: true
  # Add custom annotations to the webserver configmap
  configMapAnnotations: {}
  #  hostAliases for the webserver pod
  hostAliases: []
  #  - ip: "127.0.0.1"
  #    hostnames:
  #      - "foo.local"
  #  - ip: "10.1.2.3"
  #    hostnames:
  #      - "foo.remote"
  allowPodLogReading: true
  livenessProbe:
    initialDelaySeconds: 15
    timeoutSeconds: 5
    failureThreshold: 5
    periodSeconds: 10
    scheme: HTTP

  readinessProbe:
    initialDelaySeconds: 15
    timeoutSeconds: 5
    failureThreshold: 5
    periodSeconds: 10
    scheme: HTTP

  # Wait for at most 1 minute (6*10s) for the webserver container to startup.
  # livenessProbe kicks in after the first successful startupProbe
  startupProbe:
    initialDelaySeconds: 0
    timeoutSeconds: 20
    failureThreshold: 6
    periodSeconds: 10
    scheme: HTTP

Docker Image customizations

Added cacerts for handshaking with on-prem servers. 


ADD --chown=root:root --chmod=0644 ${AIP_CDN_URL}/certificates/xxx.net.crt /usr/local/share/ca-certificates/xxx.crt
ADD --chown=root:root --chmod=0644 ${AIP_CDN_URL}/certificates/yyy.crt /usr/local/share/ca-certificates/yyy.crt
ADD --chown=root:root --chmod=0644 ${AIP_CDN_URL}/certificates/zzz.crt /usr/local/share/ca-certificates/zzz.crt

RUN update-ca-certificates \
  && cat /usr/local/share/ca-certificates/xxx.crt >> $(python -m certifi) \
  && cat /usr/local/share/ca-certificates/yyy.crt >> $(python -m certifi) \
  && cat /usr/local/share/ca-certificates/zzz.crt >> $(python -m certifi) \
  && chown airflow:root ${PYTHON_DIR}/site-packages/certifi/cacert.pem

What happened

The webserver container does not change to a ready state.


$ k get po  | grep webserver
aip-sandbox-airflow-webserver-5976bdd9b5-bf5sx     1/1     Running            0          104m
aip-sandbox-airflow-webserver-6d9cc87d65-vhscs     0/1     Running            0          80s



$ k logs aip-sandbox-airflow-webserver-6d9cc87d65-vhscs -f

/home/airflow/.local/lib/python3.10/site-packages/airflow/api_fastapi/auth/tokens.py:522 DeprecationWarning: The secret_key option in [webserver] has been moved to the secret_key option in [api] - the old setting has been used, but please update your config.
INFO:     Started server process [12]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     172.16.62.195:33074 - "GET /health HTTP/1.1" 404 Not Found
INFO:     172.16.62.195:57566 - "GET /health HTTP/1.1" 404 Not Found

What you think should happen instead

It seems that the three paths need to be changed to '/api/v2/monitor/health' or
The three probe paths need to be changed to '/api/v2/monitor/health' or be configurable via Helm values.

Airflow 3.12.0 Checking Airflow Health Status

How to reproduce

Deploy helm chart for Airflow 3.X.

Anything else

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:helm-chartAirflow Helm Chartkind:bugThis is a clearly a bugneeds-triagelabel for new issues that we didn't triage yet

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions