-
Notifications
You must be signed in to change notification settings - Fork 184
add proxy authentication supporting for websocket (stream/ws_client.py) #256
Conversation
Welcome @itaru2622! |
/assign @roycaihw |
please add a test to verify the added logic works as expected. |
@yliaog ok, I will add test. |
@yliaog unittest code added. Could you review this PR, please. ps. I also added small change into stream/ws_client.py to get unittest friendly. |
stream/ws_client.py
Outdated
for key,value in configuration.proxy_headers.items(): | ||
if key == 'proxy-authorization' and value.startswith('Basic'): | ||
b64value = value.split()[1] | ||
auth = b64decode(b64value).decode().split(':') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you need urlsafe_b64decode?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I changed b64decode to urlsafe_b64decode for safe by 59e7d11
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: itaru2622, yliaog The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
What type of PR is this?
/kind bug
What this PR does / why we need it:
This PR supports proxy authentication for websocket client.
as described in #255, and ansible-collections/kubernetes.core#246
current kubernets-client/python(-base) support proxy auth only for REST but NOT websocket.
as the result, kubernets.core's k8s_cp nor k8s_exec cannot work with proxy when proxy requires authentication.
Which issue(s) this PR fixes:
Fixes #255
Fixes ansible-collections/kubernetes.core#246
Special notes for your reviewer:
Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: