Создайте конфигурацию go-клиента kubernetes из конфигурации kops на S3 - PullRequest
0 голосов
/ 12 октября 2018

Я использовал https://github.com/kubernetes/client-go/blob/master/examples/out-of-cluster-client-configuration/main.go#L45 в качестве руководства для создания клиента Kubernetes в моем коде go.

Однако я привык использовать kops (https://github.com/kubernetes/kops) для настройки моеголокальный kubectl для указания на кластер, над которым я сейчас работаю. Используемый мной процесс выглядит следующим образом:

$ export KOPS_STATE_STORE=s3://k8s-state-store
$ kops export kubecfg <name-of-my-cluster>

Где корзина s3 содержит много каталогов, каждый из которых содержит данные, необходимые для настройки копов kubectlправильно.

Мне не удалось выяснить, как использовать этот же шаблон (или те же файлы конфигурации) для настройки kubernetes clientset на ходу.

Одна из стратегий, которую я пробую, состоит в том, чтобыскопируйте локально сгенерированный ~/.kube/config, который содержит только кластер, на который я нацеливаюсь. Тогда мой код выглядит так:

serveKubeConfigStr := "<Contents of ~/.kube/config>"
config, err := clientcmd.NewClientConfigFromBytes([]byte(serveKubeConfigStr))
if err != nil {
    return err
}
clientConfig, err := config.ClientConfig()
if err != nil {
    return err
}
clientset, err := kubernetes.NewForConfig(clientConfig)
if err != nil {
    return err
}

Однако это не так уж и хорошо. Я бы предпочел указать URL-адресконфигурация kops.

Не хватает ли чего-то большого, чтобы сделать это проще, проще и чище?

...