Как я могу использовать имя пользователя и пароль для аутентификации openshift-go-client? - PullRequest
0 голосов
/ 21 июня 2019

Я пытался использовать go-клиент Openshift для доступа к объектам внутри Openshift. Но мне не удалось пройти аутентификацию с помощью имени пользователя и пароля. Кто-нибудь знает, как использовать клиент с аутентификацией по имени пользователя и паролю? Я забыл какой-либо параметр при создании конфигурации?

Я не хочу проходить аутентификацию через Kubeconfig.

Я создал конфигурацию REST с аутентификацией по имени пользователя и паролю. В качестве альтернативы я попробовал подход Bearer-Token, который возвращает ожидаемый результат. Я попробовал следующее:

insecureCommunication := true

restConfig := rest.Config{
    Host: "https://my-url.net",
}
authInfo := auth.Info{
    User:     "username",
    Password: "password",
    Insecure: &insecureCommunication,
}

restConfig, err := authInfo.MergeWithConfig(restConfig)

buildV1Client, err := buildv1.NewForConfig(&restConfig)
if err != nil {
    fmt.Println(err)
    return err
}

builds, err := buildV1Client.Builds("namespace").List(metav1.ListOptions{})
if err != nil {
    fmt.Println(err)
    return err
}

fmt.Printf("There are %d builds in project %s\n", len(builds.Items), openshift.namespace)
// List names of all builds
for i, build := range builds.Items {
    fmt.Printf("index %d: Name of the build: %s", i, build.Name)
}

Я ожидаю, что запрос будет успешным, как с токеном на предъявителя. Но я всегда получаю ошибку user "system:anonymous" cannot list builds.build.openshift.io in project "namespace".

Кто-нибудь знает, как я могу решить эту проблему?

Спасибо

...