gpt4 book ai didi

go - OpenShift API - 无法使用配置

转载 作者:数据小太阳 更新时间:2023-10-29 03:11:13 26 4
gpt4 key购买 nike

我正在尝试通过 Go API 从正在运行的 pod 内部连接到 OpenShift/K8s 集群。因此,我正在按照 here 中的教程进行操作.

目前我在创建 OpenShift 构建客户端时遇到问题,其构造函数获取先前创建的 rest.InClusterConfig() 作为参数。这应该工作,因为它显示在示例中,但我收到此错误:

cannot use restconfig (type *"k8s.io/client-go/rest".Config) as type *"github.com/openshift/client-go/vendor/k8s.io/client-go/rest".Config in argument to "github.com/openshift/client-go/build/clientset/versioned/typed/build/v1".NewForConfig

我有点困惑,因为 rest.InClusterConfig() 返回一个 *Config。这在 corev1client.NewForConfig() 中被接受,它需要一个 *rest.Config。但是 buildv1client.NewForConfig() 还需要一个 *rest.Config - 但不完全是我用 rest.InClusterConfig() 创建的 restconfig。

我的错误在哪里?奖励积分:我正在使用 API 迈出第一步,它应该做的就是从应用了一些参数的图像生成第二个 pod。我需要 buildv1client 客户端吗?这几乎是 Kubernetes 的核心功能。

最佳答案

问题是该包存在于 vendor/ 中的 vendored 文件夹中,也存在于您的 $GOPATH 中。 vendor "github.com/openshift/client-go" 应该可以解决您的问题。

回答您的第二个问题,对于您所描述的用例,并非如此。如果您想创建 OpenShift 构建,那么是的,您需要使用客户端,因为 Kubernetes 中不存在此 API 对象。如果您只想创建一个 Pod,则不需要构建客户端。 API reference 的一个简单示例可能如下所示:

package main

import (
"k8s.io/api/core/v1"
"k8s.io/client-go/tools/clientcmd"

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
)

func main() {
kubeconfig := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
clientcmd.NewDefaultClientConfigLoadingRules(),
&clientcmd.ConfigOverrides{},
)
namespace, _, err := kubeconfig.Namespace()
if err != nil {
panic(err)
}
restconfig, err := kubeconfig.ClientConfig()
if err != nil {
panic(err)
}
coreclient, err := corev1client.NewForConfig(restconfig)
if err != nil {
panic(err)
}

_, err = coreclient.Pods(namespace).Create(&v1.Pod{
ObjectMeta: metav1.ObjectMeta{
Name: "example",
},
Spec: v1.PodSpec{
Containers: []v1.Container{
{
Name: "ubuntu",
Image: "ubuntu:trusty",
Command: []string{"echo"},
Args: []string{"Hello World"},
},
},
},
})
if err != nil {
panic(err)
}

}

关于go - OpenShift API - 无法使用配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51365926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com