fix sdk configuration to use $AIRFLOW_CONFIG env#64936
Conversation
|
This fixes the |
Vamsi-klu
left a comment
There was a problem hiding this comment.
The AIRFLOW_CONFIG support looks correct and matches core's implementation at airflow-core/src/airflow/configuration.py:555-560. Good fix.
I have a couple of observations though.
The PR adds expand_env_var around AIRFLOW_HOME in get_sdk_expansion_variables (line 102), but the fallback path in get_airflow_config still uses the raw os.environ.get("AIRFLOW_HOME", os.path.expanduser("~/airflow")) without expand_env_var. So if someone sets AIRFLOW_HOME to something like $CUSTOM_DIR/airflow (without shell expansion), config value expansion would see the expanded path but get_airflow_config would see the unexpanded one.
Core solves this by having a dedicated get_airflow_home() function (configuration.py:550-552) that calls expand_env_var once, and both get_airflow_config and get_all_expansion_variables use that. It might be cleaner to do the same thing here in the SDK rather than sprinkling expand_env_var in two places with slightly different behavior.
On tests, both test cases cover the path where AIRFLOW_CONFIG is set. It would be good to also have one for the default fallback when AIRFLOW_CONFIG is not set, something like asserting that get_airflow_config() returns {AIRFLOW_HOME}/airflow.cfg when the env var is absent. That way if someone accidentally breaks the fallback path it gets caught.
Also small thing, the PR body says "closed:" but GitHub auto-close needs the keyword "closes:" (e.g. closes: #64918).
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the Task SDK configuration resolution so get_airflow_config() respects the AIRFLOW_CONFIG environment variable (including env-var expansion), aligning behavior with Airflow’s documented configuration conventions (closes #64918).
Changes:
- Teach
get_airflow_config()to returnAIRFLOW_CONFIGwhen set, expanding environment variables in the path. - Expand environment variables in
AIRFLOW_HOMEwhen building SDK expansion variables. - Add tests covering
AIRFLOW_CONFIGprecedence and env-var expansion.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| task-sdk/src/airflow/sdk/configuration.py | Implement AIRFLOW_CONFIG override + env-var expansion; expand AIRFLOW_HOME for SDK expansion vars. |
| task-sdk/tests/task_sdk/test_configuration.py | Add unit tests validating AIRFLOW_CONFIG behavior and env-var expansion. |
cffc39f to
b450469
Compare
|
@Vamsi-klu Thanks for checking!! |
b450469 to
94cd73d
Compare
* fix sdk configuration to use AIRFLOW_CONFIG env * fix logic (cherry picked from commit 293f172) Co-authored-by: Jeongwoo Do <48639483+wjddn279@users.noreply.github.com>
Backport successfully created: v3-2-testNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
|
Closes: #64918
Was generative AI tooling used to co-author this PR?
{pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.