jiajie-chen opened a new issue, #35227:
URL: https://github.com/apache/airflow/issues/35227

   ### Official Helm Chart version
   
   1.11.0 (latest released)
   
   ### Apache Airflow version
   
   v2.7.1
   
   ### Kubernetes Version
   
   v1.27.4 (minikube v1.31.2)
   
   ### Helm Chart configuration
   
   This causes errors:
   ```yaml
   workers:
     strategy:
       type: Recreate
   # disable persistence to install `Deployment`
     persistence:
       enabled: false
   logs:
     persistence:
       enabled: false
   ```
   
   But this works:
   ```yaml
   scheduler:
     strategy:
       type: Recreate
   # disable persistence to install `Deployment`
   logs:
     persistence:
       enabled: false
   ```
   
   ### Docker Image customizations
   
   Using Helm chart defaults.
   
   ### What happened
   
   When installing the Helm chart with `workers.strategy.type=Recreate` and 
persistence disabled, the installation fails.
   
   Helm raises the error:
   ```
   Error: INSTALLATION FAILED: 1 error occurred:
           * Deployment.apps "airflow-worker" is invalid: 
spec.strategy.rollingUpdate: Forbidden: may not be specified when strategy 
`type` is 'Recreate'
   ```
   
   This also applies for `triggerer` and `dagProcessor`.
   
   However, the `scheduler` and `webserver` are able to install with `Recreate`.
   
   ### What you think should happen instead
   
   Setting `strategy.type=Recreate` should behave the same for all Airflow 
`Deployment`s.
   
   The final spec should show something like:
   ```yaml
   apiVersion: apps/v1
   kind: Deployment
   metadata:
     name: airflow-worker
     namespace: airflow
   spec:
     strategy:
       type: Recreate
       # no `rollingUpdate`
   ```
   
   ### How to reproduce
   
   Run an installation on a new cluster/namespace (will error):
   ```bash
   helm install airflow apache-airflow/airflow \
     --namespace airflow --create-namespace \
     --set 'workers.strategy.type=Recreate' \
     --set 'workers.persistence.enabled=false' \
     --set 'logs.persistence.enabled=false'
   ```
   
   However, this doesn't cause errors:
   ```bash
   helm install airflow apache-airflow/airflow \
     --namespace airflow --create-namespace \
     --set 'scheduler.strategy.type=Recreate' \
     --set 'logs.persistence.enabled=false'
   ```
   
   ### Anything else
   
   Setting the strategy to this achieves the same functionality as `Recreate`:
   ```yaml
   workers:
     strategy:
       rollingUpdate:
         maxSurge: 0
         maxUnavailable: "100%"
   ```
   
   But a consistent fix would be ideal - either not supporting `Recreate` or 
allowing it for all deployments.
   
   ### Are you willing to submit PR?
   
   - [ ] 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-unsubscr...@airflow.apache.org.apache.org

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

Reply via email to