我如何使用openshift-go-client的用户名和密码认证?

时间:2019-06-21 10:09:11

标签: go kubernetes openshift kubernetes-go-client

我试图使用Openshift go-client访问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"错误。

有人知道我如何解决这个问题吗?

谢谢

0 个答案:

没有答案