diff --git a/kubernetes/client/exceptions.py b/kubernetes/client/exceptions.py index d68d48c6b4..cf2c4539a1 100644 --- a/kubernetes/client/exceptions.py +++ b/kubernetes/client/exceptions.py @@ -107,7 +107,12 @@ def __init__(self, status=None, reason=None, http_resp=None): self.status = http_resp.status self.reason = http_resp.reason self.body = http_resp.data - self.headers = http_resp.getheaders() + # urllib3 2.0+ removed getheaders() in favor of the headers attribute. + try: + self.headers = http_resp.getheaders() + except AttributeError: + # Fallback for urllib3 >= 2.0 + self.headers = getattr(http_resp, 'headers', None) else: self.status = status self.reason = reason diff --git a/kubernetes/client/rest.py b/kubernetes/client/rest.py index eeedf82915..3e473907c5 100644 --- a/kubernetes/client/rest.py +++ b/kubernetes/client/rest.py @@ -40,7 +40,10 @@ def __init__(self, resp): def getheaders(self): """Returns a dictionary of the response headers.""" - return self.urllib3_response.getheaders() + # urllib3 2.0+ removed getheaders() in favor of the headers attribute. + # Use getattr to support both old and new urllib3 versions. + return getattr(self.urllib3_response, 'getheaders', + lambda: self.urllib3_response.headers)() def getheader(self, name, default=None): """Returns a given response header."""