Skip to content

cleanup job using test-only module at runtime #61360

@anderson-fachini

Description

@anderson-fachini

Apache Airflow Provider(s)

cncf-kubernetes

Versions of Apache Airflow Providers

apache-airflow-providers-cncf-kubernetes >= 10.12.2

Apache Airflow version

3.1.5

Operating System

Debian 12

Deployment

Official Apache Airflow Helm Chart

Deployment details

helm 4.0.4, k8s 1.32.1

What happened

cleanup cronjob in apache-airflow-providers-cncf-kubernetes >= 10.12.2 fails to load in production environments because it imports from tests_common.test_utils.taskinstance, which is not available outside the Airflow development repository.

PR that introduced the problem: #60112

Exception log:

Traceback (most recent call last):
  File "/home/airflow/.local/bin/airflow", line 7, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/__main__.py", line 55, in main
    args.func(args)
  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/cli/cli_config.py", line 48, in command
    func = import_string(import_path)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/utils/module_loading.py", line 41, in import_string
    module = import_module(module_path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/python/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 999, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/home/airflow/.local/lib/python3.12/site-packages/airflow/providers/cncf/kubernetes/cli/kubernetes_command.py", line 40, in <module>
    from tests_common.test_utils.taskinstance import create_task_instance
ModuleNotFoundError: No module named 'tests_common'

What you think should happen instead

No response

How to reproduce

Just trigger cleanup job

Anything else

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions