Closed
Description
gcloud container clusters get-credentials my-cluster
Confirmed with gcloud container clusters get-credentials my-cluster
, and ./kube/config
was created.
Then in python:
from kubernetes import client, config
config.load_kube_config()
returns:
RefreshError: ('invalid_scope: Empty or missing scope not allowed.', u'{\n "error" : "invalid_scope",\n "error_description" : "Empty or missing scope not allowed."\n}')
What did I miss?
stack trace:
---------------------------------------------------------------------------
RefreshError Traceback (most recent call last)
<ipython-input-1-267adcf41323> in <module>()
1 from kubernetes import client, config
----> 2 config.load_kube_config()
/Users/yuhanliu/.virtualenvs/hpsearch/lib/python2.7/site-packages/kubernetes/config/kube_config.pyc in load_kube_config(config_file, context, client_configuration, persist_config)
359 config_file, active_context=context,
360 client_configuration=client_configuration,
--> 361 config_persister=config_persister).load_and_set()
362
363
/Users/yuhanliu/.virtualenvs/hpsearch/lib/python2.7/site-packages/kubernetes/config/kube_config.pyc in load_and_set(self)
251
252 def load_and_set(self):
--> 253 self._load_authentication()
254 self._load_cluster_info()
255 self._set_config()
/Users/yuhanliu/.virtualenvs/hpsearch/lib/python2.7/site-packages/kubernetes/config/kube_config.pyc in _load_authentication(self)
174 if not self._user:
175 return
--> 176 if self._load_gcp_token():
177 return
178 if self._load_user_token():
/Users/yuhanliu/.virtualenvs/hpsearch/lib/python2.7/site-packages/kubernetes/config/kube_config.pyc in _load_gcp_token(self)
194 _is_expired(provider['config']['expiry']))):
195 # token is not available or expired, refresh it
--> 196 self._refresh_gcp_token()
197
198 self.token = "Bearer %s" % provider['config']['access-token']
/Users/yuhanliu/.virtualenvs/hpsearch/lib/python2.7/site-packages/kubernetes/config/kube_config.pyc in _refresh_gcp_token(self)
203 self._user['auth-provider'].value['config'] = {}
204 provider = self._user['auth-provider']['config']
--> 205 credentials = self._get_google_credentials()
206 provider.value['access-token'] = credentials.token
207 provider.value['expiry'] = format_rfc3339(credentials.expiry)
/Users/yuhanliu/.virtualenvs/hpsearch/lib/python2.7/site-packages/kubernetes/config/kube_config.pyc in _refresh_credentials()
133 credentials, project_id = google.auth.default()
134 request = google.auth.transport.requests.Request()
--> 135 credentials.refresh(request)
136 return credentials
137
/Users/yuhanliu/.virtualenvs/hpsearch/lib/python2.7/site-packages/google/oauth2/service_account.pyc in refresh(self, request)
308 assertion = self._make_authorization_grant_assertion()
309 access_token, expiry, _ = _client.jwt_grant(
--> 310 request, self._token_uri, assertion)
311 self.token = access_token
312 self.expiry = expiry
/Users/yuhanliu/.virtualenvs/hpsearch/lib/python2.7/site-packages/google/oauth2/_client.pyc in jwt_grant(request, token_uri, assertion)
141 }
142
--> 143 response_data = _token_endpoint_request(request, token_uri, body)
144
145 try:
/Users/yuhanliu/.virtualenvs/hpsearch/lib/python2.7/site-packages/google/oauth2/_client.pyc in _token_endpoint_request(request, token_uri, body)
107
108 if response.status != http_client.OK:
--> 109 _handle_error_response(response_body)
110
111 response_data = json.loads(response_body)
/Users/yuhanliu/.virtualenvs/hpsearch/lib/python2.7/site-packages/google/oauth2/_client.pyc in _handle_error_response(response_body)
57
58 raise exceptions.RefreshError(
---> 59 error_details, response_body)
60
61
RefreshError: ('invalid_scope: Empty or missing scope not allowed.', u'{\n "error" : "invalid_scope",\n "error_description" : "Empty or missing scope not allowed."\n}')
Metadata
Metadata
Assignees
Labels
No labels