在 go 中列出服务
List service in go
我正在尝试列出 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"
如果您有任何建议、教程或示例,那就太好了
如果你想列出 knative 服务,那么你想使用 API here。
为了从这个 yaml 中获取配置,您可以在环境列表中将它们设置为 环境变量,然后在您的代码调用中:
os.GetEnv("TARGET")
现在使用来自 env 的密钥和 API 您可以列出服务。
基于 this gist adapted for the post-1.18 client-go, and the Serving 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)
}
}
我正在尝试列出 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"
如果您有任何建议、教程或示例,那就太好了
如果你想列出 knative 服务,那么你想使用 API here。
为了从这个 yaml 中获取配置,您可以在环境列表中将它们设置为 环境变量,然后在您的代码调用中:
os.GetEnv("TARGET")
现在使用来自 env 的密钥和 API 您可以列出服务。
基于 this gist adapted for the post-1.18 client-go, and the Serving 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)
}
}