kubernetes-client / kubernetes-client/python

getheaders is deprecated in urllib3 >= 2.0.0

Open Beginner friendly
#2,280 16 comments 9 reactions 0 assignees View on GitHub
kind/bug
Dominant language
Python
Stars
7.7k
Forks
3.5k
Avg merge
1d 14h
Merged PRs (30d)
18

Description

Please remove the deprecated function `getheaders` from `client/rest.py`

**What happened (please include outputs or screenshots)**:
```
Traceback (most recent call last):
File "/home/mau/repos/project-automation/k8s/k8s.py", line 828, in
main()
File "/home/mau/repos/project-automation/k8s/k8s.py", line 803, in main
k8s_project.create_namespace()
File "/home/mau/repos/project-automation/k8s/k8s.py", line 110, in create_namespace
self.__k8s_cluster.create_namespace(
File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/pja_sdk/k8s.py", line 98, in create_namespace
namespace = self.__corev1api.create_namespace(body=body)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/api/core_v1_api.py", line 6363, in create_namespace
return self.create_namespace_with_http_info(body, **kwargs) # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/api/core_v1_api.py", line 6454, in create_namespace_with_http_info
return self.api_client.call_api(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/api_client.py", line 348, in call_api
return self.__call_api(resource_path, method,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/api_client.py", line 180, in __call_api
response_data = self.request(
^^^^^^^^^^^^^
File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/api_client.py", line 391, in request
return self.rest_client.POST(url,
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/rest.py", line 279, in POST
return self.request("POST", url,
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/rest.py", line 238, in request
raise ApiException(http_resp=r)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/exceptions.py", line 91, in __init__
self.headers = http_resp.getheaders()
^^^^^^^^^^^^^^^^^^^^^^
File "/home/mau/.virtualenvs/project-automation-2/lib/python3.12/site-packages/kubernetes/client/rest.py", line 44, in getheaders
return self.urllib3_response.getheaders()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'HTTPResponse' object has no attribute 'getheaders'. Did you mean: 'headers'?
```

**How to reproduce it (as minimally and precisely as possible)**:
Install requirements (urllib3 >= 2.0.0) and call any function.

**Environment**:
- Kubernetes version (`kubectl version`): v1.29.5
- OS (e.g., MacOS 10.13.6): Linux
- Python version (`python --version`) 3.12.3
- Python client version (`pip list | grep kubernetes`) 29.0.0

Contributor guide

Open the contributing guide

Research direction

Open client/rest.py and inspect the getheaders function referenced in the traceback, then check its callers and the existing urllib3 response handling. Remove the deprecated function and verify that the affected request or exception path no longer calls it when using urllib3 >= 2.0.0.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api
Issue type
Bug
Difficulty
1/5
Estimated time
Under an hour
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.