我试图列出knative (v0.17.0)services
,我有一个clientset
,但我不知道从哪里开始。下面是我为测试启动的一个服务:
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: "helloworld"
spec:
runLatest:
configuration:
revisionTemplate:
spec:
container:
image: "gcr.io/knative-samples/helloworld-go"
env:
- name: "TARGET"
value: "world"
如果你有任何建议,教程或例子,那就太好了
根据这个要点改编为后1.18 client-go,和服务clientset
godoc:
import (
"context"
"fmt"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/tools/clientcmd"
servingv1 "knative.dev/serving/pkg/client/clientset/versioned/typed/serving/v1"
}
func doIt() error {
config, err := clientcmd.BuildConfigFromFLags("", "") // Uses defaults
if err != nil {
return err
}
serving, err := servingv1.NewForConfig(config)
if err != nil {
return err
}
// Get services in the default namespace
list, err := serving.Services("default").List(context.Background(), metav1.ListOptions{})
if err != nil {
return err
}
// How to print them out.
fmt.Printf("There are %d services in the default namespace", len(list.Items))
for _, i := range list.Items {
fmt.Printf(" > Service %q", i.Name)
}
}
如果你想列出本地服务,那么你需要使用这里的API。
为了从这个yaml中获取配置,您可以将它们设置为环境变量在env列表中,然后在代码中调用:
os.GetEnv("TARGET")
现在使用env中的密钥和API,您可以列出服务。