我希望使用Go语言创建自定义Kubernetes资源,该应用程序已部署在Kubernetes集群中。我想要创建例如以下的资源:
apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
name: add-response-header
config:
add:
headers:
- "demo: injected-by-kong"
plugin: response-transformer
到目前为止,我总是使用以下代码创建“标准”资源,例如带有密码的机密资源:
CreateSecret(name string, data map[string]string) error {
confs, err := rest.InClusterConfig()
if err != nil {
panic(err)
}
clientset, err = kubernetes.NewForConfig(confs)
i := clientset.CoreV1()
if _, err := i.Secrets(namespace).Create(&v1.Secret{
TypeMeta: metav1.TypeMeta{
Kind: "Secret",
APIVersion: "v1",
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
StringData: data,
Type: "Opaque",
}); err != nil {
return err
}
}
此外,我尝试使用以下代码获取资源:
b, err := clientset.RESTClient().Get().Namespace(namespace).Resource("KongPlugin").DoRaw()
我遇到了以下错误:
the server could not find the requested resource (get KongPlugin)
当我在命令行中发送请求 k get KongPlugin
,我就可以查看所有资源。
NAME PLUGIN-TYPE AGE
add-proxy-headers request-transformer 3h34m
那么如何查看自定义资源?