laertida opened a new issue, #53604:
URL: https://github.com/apache/airflow/issues/53604
### Apache Airflow version
3.0.3
### If "Other Airflow 2 version" selected, which one?
_No response_
### What happened?
### Summary
**The Airflow Helm chart does not render the webserver Ingress resource when
using Airflow 3.0.0 or later, even when all ingress values are correctly set.**
### Details
- **Chart version:** (e.g. 1.18.0, please specify your exact version)
- **Airflow version:** 3.0.2 (set via `airflowVersion` in values)
- **Observed behavior:**
When deploying the chart with Airflow 3.x, the `webserver-ingress.yaml`
template is not rendered, even with `ingress.web.enabled: true` and correct
configuration. No Ingress resource is created for the webserver.
- **Expected behavior:**
The Ingress resource for the webserver should be rendered regardless of
Airflow version, if enabled in values.
### Root Cause Analysis
When inspecting `templates/webserver/webserver-ingress.yaml` (and similar
ingress templates), the rendering is gated by:
```jinja
{{- if and .Values.webserver.enabled (semverCompare "<3.0.0"
.Values.airflowVersion) }}
```
This means the Ingress is only rendered for Airflow versions **strictly less
than 3.0.0**.
With `airflowVersion: 3.0.2`, this condition is never true, so the Ingress
resource is never created.
### Proposed Fix
The template should **not** restrict Ingress rendering by Airflow version.
The condition should only depend on `.Values.webserver.enabled` (and/or
`.Values.ingress.web.enabled`), like:
```jinja
{{- if .Values.webserver.enabled }}
```
or
```jinja
{{- if and .Values.webserver.enabled .Values.ingress.web.enabled }}
```
### Additional Context
- Users upgrading to Airflow 3.x via the Helm chart will not get Ingress
resources, breaking external access to the webserver.
- This may also affect other Ingress resources (API server, Flower, etc.) if
they use similar gating logic.
---
**Thank you for your work on the Helm chart! Let me know if you need further
details or a test case.**
### What you think should happen instead?
_No response_
### How to reproduce
### Steps to Reproduce
1. Use the official Airflow Helm chart (e.g., 1.18.0+).
2. Set `airflowVersion: 3.0.2` (or any 3.x version) in your values.yaml.
3. Set up the Ingress as recommended (see minimal values block below).
4. Deploy with `helm upgrade --install ...`.
5. **Result:** No Ingress resource is created for the webserver.
#### Example `values.yaml` block:
```yaml
airflowVersion: 3.0.2
ingress:
enabled: true
web:
enabled: true
ingressClassName: "nginx"
annotations: {}
hosts:
- name: my-airflow.example.com
path: /
pathType: ImplementationSpecific
```
### Operating System
Kubernetes deployment
### Versions of Apache Airflow Providers
3.0.3
### Deployment
Official Apache Airflow Helm Chart
### Deployment details
Kubernetes
### Anything else?
### Root Cause Analysis
When inspecting `templates/webserver/webserver-ingress.yaml` (and similar
ingress templates), the rendering is gated by:
```jinja
{{- if and .Values.webserver.enabled (semverCompare "<3.0.0"
.Values.airflowVersion) }}
```
This means the Ingress is only rendered for Airflow versions **strictly less
than 3.0.0**.
With `airflowVersion: 3.0.2`, this condition is never true, so the Ingress
resource is never created.
### Proposed Fix
The template should **not** restrict Ingress rendering by Airflow version.
The condition should only depend on `.Values.webserver.enabled` (and/or
`.Values.ingress.web.enabled`), like:
```jinja
{{- if .Values.webserver.enabled (semverCompare ">=3.0.0"
.Values.airflowVersion) }}
```
### Additional Context
- Users upgrading to Airflow 3.x via the Helm chart will not get Ingress
resources, breaking external access to the webserver.
- This may also affect other Ingress resources (API server, Flower, etc.) if
they use similar gating logic.
---
**Thank you for your work on the Helm chart! Let me know if you need further
details or a test case.**
### Are you willing to submit PR?
- [x] Yes I am willing to submit a PR!
### Code of Conduct
- [x] I agree to follow this project's [Code of
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]