Я пытался использовать 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"
.
Кто-нибудь знает, как я могу решить эту проблему?
Спасибо