You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "laertida (via GitHub)" <gi...@apache.org> on 2025/07/21 18:24:08 UTC

[I] Ingress controller not being created for webserver on charts v1.18.0 [airflow]

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: commits-unsubscribe@airflow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] Ingress controller not being created for webserver on charts v1.18.0 [airflow]

Posted by "laertida (via GitHub)" <gi...@apache.org>.
laertida commented on issue #53604:
URL: https://github.com/apache/airflow/issues/53604#issuecomment-3098209371

   I've understood whats the problem, I only founded while trying to work the fix. 
   
   The issue is that webserver is deprecated on this version, so what it is needed to do is to enable the ingress on api-server. 


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] Ingress controller not being created for webserver on charts v1.18.0 [airflow]

Posted by "laertida (via GitHub)" <gi...@apache.org>.
laertida closed issue #53604: Ingress controller not being created for webserver on charts v1.18.0
URL: https://github.com/apache/airflow/issues/53604


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] Ingress controller not being created for webserver on charts v1.18.0 [airflow]

Posted by "boring-cyborg[bot] (via GitHub)" <gi...@apache.org>.
boring-cyborg[bot] commented on issue #53604:
URL: https://github.com/apache/airflow/issues/53604#issuecomment-3097924910

   Thanks for opening your first issue here! Be sure to follow the issue template! If you are willing to raise PR to address this issue please do so, no need to wait for approval.
   


-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org