Skip to content

Airflow Helm Chart: Scheduler Should Support Full Probe Configuration (livenessProbe/readinessProbe/readinessProbe) #60134

@gooosetavo

Description

@gooosetavo

Official Helm Chart version

1.18.0 (latest released)

Apache Airflow version

3.0.2 (affects any)

Kubernetes Version

1.34 (affects any)

Helm Chart configuration

scheduler:
  livenessProbe:
    initialDelaySeconds: 20
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 3
    # Attempt to set a command, or configure as TCP/HTTP (see below attempts)
    # command: ["airflow", "jobs", "check", "--job-type", "SchedulerJob", "--local"]
# Attempted to add:
#  readinessProbe:
#    tcpSocket:
#      port: 8793

Docker Image customizations

None. Using the official Apache Airflow image.

What happened

I attempted to enable and customize both liveness and readiness probes for the scheduler pod. However, the scheduler section of the Helm values only permits a very limited set of probe fields. The only keys allowed are the timing parameters and command for the liveness probe. Attempts to add typical Kubernetes probe types (like tcpSocket, httpGet, or even readinessProbe: at all) result in schema validation errors during helm template or install, e.g.:

Error: values don't meet the specifications of the schema(s) in the following chart(s):
airflow:
- scheduler: Additional property readinessProbe is not allowed
- scheduler.livenessProbe: Additional property tcpSocket is not allowed

What you think should happen instead

Both livenessProbe and readinessProbe should support the full set of Kubernetes probe options (such as exec, tcpSocket, httpGet, etc.) for the scheduler, as is already the case with other components in the chart (like workers and webserver). Ideally, there should also be a readinessProbe supported for scheduler the same way as with the other pods.

How to reproduce

  1. Try to set a readiness probe for the scheduler in values.yaml:
    scheduler:
      readinessProbe:
        tcpSocket:
          port: 8793
  2. Or try to set a non-default liveness probe for the scheduler:
    scheduler:
      livenessProbe:
        tcpSocket:
          port: 8793
        initialDelaySeconds: 10
  3. Run:
    helm template my-airflow apache-airflow/airflow -f values.yaml
  4. You get schema validation errors:
    scheduler: Additional property readinessProbe is not allowed
    scheduler.livenessProbe: Additional property tcpSocket is not allowed
    

Anything else

Every time I try to set scheduler probe fields beyond the very limited default, I hit this error. The issue occurs consistently on new chart pulls as well.

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

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