У меня есть кластер кубернетов на GKE. Даже после правильной установки KUBECONFIG = "/ tmp / kubeconfigxvz", когда я выполняю kubectl get pods
, команда не выполняется со следующей ошибкой
bash-4.3# kubectl get pods
Unable to connect to the server: error executing access token command
"/google-cloud-sdk/bin/gcloud config config-helper --format=json": err=exit
status 1 output= stderr=ERROR: (gcloud.config.config-helper) You do not
currently have an active account selected.
Please run:
$ gcloud auth login
to obtain new credentials, or if you have already logged in with a
different account:
$ gcloud config set account ACCOUNT
to select an already authenticated account to use.
Когда я устанавливаю CLOUDSDK_CONFIG=/tmp/customdir
, команда начинает работать.
Как я могу добиться того же с помощью клиента go?
=== ОБНОВЛЕНИЕ ===
При создании клиента go я передаю этой функции правильный указатель файла clientcmd.BuildConfigFromFlags("", *tmpKubeConfigFile)
, где tmpKubeConfigFile
указывает на /tmp/kubeconfigxvz
. Но я думаю, что этого недостаточно, go-клиенту также нужна дополнительная информация из каталога CLOUDSDK_CONFIG
, я думаю, ему нужна информация о сеансе или учетные данные или что-то в этом роде.
Можно ли передать этот CLOUDSDK_CONFIG тоже при создании go-клиента?
BuildConfigFromFlags
, который принимает на входе указатель на файл kubeconfig и возвращает объект config
, который может быть передан в kubernetes.NewForConfig(config)
, который создает клиента. Возможно ли или существует ли аналогичная функция для передачи CLOUDSDK_CONFIG и возврата go-client или создания конфигурации?