You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
kratos/config/kube/watcher_test.go

44 lines
885 B

package main
import (
"context"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
"k8s.io/client-go/util/homedir"
"path/filepath"
"testing"
"time"
)
func TestKube(t *testing.T) {
home := homedir.HomeDir()
config, err := clientcmd.BuildConfigFromFlags("", filepath.Join(home, ".kube", "config"))
if err != nil {
t.Error(err)
}
client, err := kubernetes.NewForConfig(config)
if err != nil {
t.Error(err)
}
cmWatcher, err := client.CoreV1().ConfigMaps("mesh").Watch(context.Background(), metav1.ListOptions{
LabelSelector: "app=test",
//FieldSelector: "",
})
if err != nil {
t.Error(err)
}
go func() {
time.Sleep(5 * time.Second)
cmWatcher.Stop()
}()
for {
select {
case c := <-cmWatcher.ResultChan():
if c.Object == nil {
return
}
t.Log(c.Type, c.Object)
}
}
}