-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Version 32.0.0 gke-gcloud-auth-plugin configuration break #2334
Comments
I am seeing the same issue after upgrading to |
Confirming both the problem described by the OP, as well as the solution of freezing version to kubernetes==31.0.0 |
Can also confirm that version 32.0.0 breaks local auth.
Downgrading to 31.0.0 fixes this. |
Same here 32.0.0 breaks local auth but works in cluster auth
31.0.0 works as well |
It appears that the issue is related to this line in the
Alternatively, |
This switches the project to use PEP 440 compatible metadata instead of the Poetry specific configuration. As part of this the version of the Kubernetes library was limited to 31.* since the most recent 32.0.0 release seems to break authentication: - kubernetes-client/python#2333 - kubernetes-client/python#2334
In OCI-OKE also giving the same error when we use kubernetes-32.0.0.
|
This is also broken for Digital Ocean and kubeconfig generated by |
What happened (please include outputs or screenshots):
Attempting to run a simple test program to merely load configuration breaks with a json.dumps TypeError error when using a configuration file similar to those generated by executing the
gcloud container clusters get-credentials <cluster> --region <region> --project <gcp_project>
command with thegke-gcloud-auth-plugin
authentication helper installed:What you expected to happen:
Empty output (provided a valid non-example configuration is provided and one has the gcloud auth plugin installed).
How to reproduce it (as minimally and precisely as possible):
Create a test Kubernetes configuration file as follows as a file called
config
:Create a
test.py
script as follows:Ensure kubernetes 32.0.0 is installed (31.0.0 works for me):
Execute the script, specifying the
KUBECONFIG
environment variable to override the default location to your test file:You should receive the following error message from the default logger due to the error being caught and logged without a stacktrace:
Anything else we need to know?:
This is likely due to the call here passing in a
kubernetes_exec_info
structure containing a ConfigNode instance rather than serializable Python native types:https://github.com/kubernetes-client/python/blob/v32.0.0/kubernetes/base/config/exec_provider.py#L76
I haven't looked extensively into what could have changed between versions, but version 31.0.0 appears to work; FWIW here's the requirements.txt for a more-involved test project where version 31.0.0 appears to function with the test file; swapping kubernetes==32.0.0 in breaks it:
I'm also using pyenv with a virtualenv whereas the
gke-gcloud-auth-plugin
binary likely uses the system python installation; this shouldn't matter as it's invoked in a subprocess, just as relative versus absolute path in the kube config for it likewise doesn't make a difference. You shouldn't need to even install it to reproduce, as it fails prior to the subprocess call AFAICT; that said, I haven't tried it on a totally 100% clean system without it installed.Environment:
kubectl version
):OS:
Mac OSX 12.6.1
Python version (
python --version
)pip list | grep kubernetes
)The text was updated successfully, but these errors were encountered: