GKE code executor unit tests fail with kubernetes 37.0.0, turning main CI red
Les mainteneurs répondent en général sous 6 jours
@vetler y travaille déjà.
Depuis le 7/10/2026.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 76/100
Piste de recherche
Commencez par tests/unittests/code_executors/test_gke_code_executor.py et examinez comment create_namespaced_job est simulé dans les cinq tests en échec. Exécutez la commande pytest indiquée avec kubernetes 37.0.0, puis comparez la valeur de retour du mock aux champs réels de V1Job utilisés par _add_owner_reference. Le travail est terminé lorsque les 18 tests passent avec kubernetes 36.0.3 et 37.0.0.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
🔴 Required Information
Describe the Bug:
Since kubernetes 37.0.0 was published to PyPI (2026-10-07, 00:51 UTC), five tests in tests/unittests/code_executors/test_gke_code_executor.py fail. The Unit Tests jobs of the Continuous Integration workflow have failed on main for Python 3.11–3.14 on every push since 51a20e24, because CI installs the newest version kubernetes>=29 allows.
kubernetes 37 validates model fields with pydantic. In these tests create_namespaced_job returns the default MagicMock, and GkeCodeExecutor._add_owner_reference copies that Job's api_version, kind, metadata.name and metadata.uid into a V1OwnerReference, which now raises a ValidationError. execute_code catches it and returns "An unexpected executor error occurred", so the assertions fail.
Only the tests are affected. Against a real cluster, create_namespaced_job returns a V1Job with string fields. The other 13 tests in the file pass on 37.0.0, including the one that builds a real Job manifest.
Steps to Reproduce:
pip install -e . pytest pytest-asyncio pytest-mock "kubernetes==37.0.0"pytest tests/unittests/code_executors/test_gke_code_executor.py
Expected Behavior:
All 18 tests pass, as they do with kubernetes 36.0.3 (the version pinned in constraints-3.*.txt).
Observed Behavior:
FAILED ...::test_execute_code_success - AssertionError: assert '' == 'hello world'
FAILED ...::test_execute_code_job_failed - assert 'Job failed. Logs:' in "An unexpected executor error occurred: 4 validation errors for V1OwnerReference ..."
FAILED ...::test_execute_code_job_failed_without_terminated_container - assert None == 1
FAILED ...::test_execute_code_timeout - assert 'Executor timed out' in "An unexpected executor error occurred: 4 validation errors for V1OwnerReference ..."
FAILED ...::test_execute_code_forks_to_job - AssertionError: assert '' == 'job stdout'
5 failed, 13 passed
The underlying error:
4 validation errors for V1OwnerReference
api_version
Input should be a valid string [type=string_type, input_value=<MagicMock name='mock.api...ersion' id='...'>, input_type=MagicMock]
kind
Input should be a valid string [type=string_type, input_value=<MagicMock name='mock.kind' id='...'>, input_type=MagicMock]
name
Input should be a valid string [type=string_type, input_value=<MagicMock name='mock.met...a.name' id='...'>, input_type=MagicMock]
uid
Input should be a valid string [type=string_type, input_value=<MagicMock name='mock.met...ta.uid' id='...'>, input_type=MagicMock]
Environment Details:
- ADK Library Version:
main(2.11.0), since 51a20e24 - Desktop OS: Linux (GitHub Actions) and macOS
- Python Version: 3.11, 3.12, 3.13 and 3.14
Model Information:
- Are you using LiteLLM: N/A
- Which model is being used: N/A, no model is involved
🟡 Optional Information
Regression:
Yes, but the regression comes from the dependency release, not from an ADK commit. The same tests pass with kubernetes 36.0.3.
Logs:
CI run on main: https://github.com/google/adk-python/actions/runs/37674194847
Additional Context:
constraints-3.*.txt already pin kubernetes==36.0.3, but the unit test job installs without them. A fix that keeps the tests passing on both versions is to have the mocked create_namespaced_job return a real client.V1Job with string fields. I'll open a PR.
How often has this issue occurred?:
- Always (100%)
- Langage dominant
- Python
- Étoiles
- 21.6k
- Forks
- 4k
- Merge moyen
- 1 j 13 h
- PR mergées (30 j)
- 6
Préparer son environnement
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de google/adk-python
-
after_model_callback: a replacement LlmResponse drops `usage_metadata`, erasing the model call from token accountingPeut-être pris @zhuhongd l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
google/adk-python#7451 ·
Les mainteneurs répondent en général sous 6 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
google/adk-python#7433 · 1 commentaire ·
Les mainteneurs répondent en général sous 6 jours
-
CI Mypy Check flags an existing streaming_utils.py error as new because the PR run reuses the baseline's mypy cachePeut-être pris @DeanChensj l’a pris il y a 2 jours. Ouverteneeds review
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
google/adk-python#7409 · 1 commentaire · 2 personnes assignées ·
Les mainteneurs répondent en général sous 6 jours
-
A2aAgentExecutor sends the raw exception text to the A2A caller when the run failsPeut-être pris @sanketpatil06 l’a pris il y a 3 jours. Ouvertea2a request clarification
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
google/adk-python#7385 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 6 jours
-
Please support mermaid 12 (inbuild elk) in `adk web`Peut-être pris @sanketpatil06 l’a pris il y a 3 jours. Ouverteneeds review web
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
google/adk-python#7381 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 6 jours
Toutes les issues de google/adk-python
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
UKGovernmentBEIS/inspect_ai#5781 ·
Les mainteneurs répondent en général sous 2 jours
-
Bump .cicd to wamp-cicd 4c2f9ac: `just land` refuses open A18 decisions, `just where` lists themOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
crossbario/cfxdb#139 ·
-
Bump .cicd to wamp-cicd 4c2f9ac: `just land` refuses open A18 decisions, `just where` lists themOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 84/100
crossbario/txaio#241 ·
-
UX
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
mediajunkie/piper-morgan-product#1963 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100