diegoalvarez-clarity commented on PR #70180:
URL: https://github.com/apache/airflow/pull/70180#issuecomment-5089926367

   Thanks @Miretpl — I think we're describing two different cases, so let me 
draw the line clearly.
   
   The whole `/opt/airflow` scenario from #33788 is a user-supplied mount, and 
yes, mounting at `/opt/airflow/config` instead is the right fix there.
   
   The race this PR targets is on the chart's own config mount. The shared 
`airflow_config_mount` helper unconditionally emits two subPath mounts — 
`airflow.cfg` and `airflow_local_settings.py` — onto the config volume. Those 
are what runc fails to bind under node/volume-lifecycle churn (kubelet volume 
reconstruction / node autoscaling):
   
   `error mounting ".../volume-subpaths/config/base/1" to rootfs at 
"/opt/airflow/airflow.cfg"`
   
   The container never starts, so the task hard-fails with no application log.
   
   A values-level extraVolumeMounts at `/opt/airflow/config` is additive — it 
can't remove the helper's subPath mounts, so the race persists. There's no 
values-only way to drop them today, and that's the gap this PR closes.
   
   `mountConfigAsDir`: true switches the shared helper from the two subPaths to 
a single directory mount at `/opt/airflow/config` + `AIRFLOW_CONFIG`. It's 
opt-in and default-off, so existing behavior is unchanged. helm template diff: 
subPath count 2 → 0, everything else byte-identical; 
`airflow_local_settings.py` stays at its default path via the directory mount.


-- 
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]

Reply via email to