package discovery import ( "testing" "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" ) func TestDiscovery(t *testing.T) { config, err := clientcmd.BuildConfigFromFlags("", "/home/mats/.kube/config") if err != nil { t.Errorf("Error building config: %v", err) } client, err := kubernetes.NewForConfig(config) if err != nil { t.Errorf("Error creating client: %v", err) } d := NewK8sDiscovery(client, metav1.ListOptions{ LabelSelector: "app", }) res, err := d.DiscoverInNamespace("") if err != nil { t.Errorf("Error discovering: %v", err) } if len(res) == 0 { t.Errorf("Expected at least one host, got none") } } func TestWatch(t *testing.T) { config, err := clientcmd.BuildConfigFromFlags("", "/home/mats/.kube/config") if err != nil { t.Errorf("Error building config: %v", err) } client, err := kubernetes.NewForConfig(config) if err != nil { t.Errorf("Error creating client: %v", err) } d := NewK8sDiscovery(client, metav1.ListOptions{ LabelSelector: "app", }) ch, err := d.Watch() if err != nil { t.Errorf("Error watching: %v", err) } select { case m := <-ch: t.Logf("Received watch %v", m) case <-time.After(5 * time.Second): t.Errorf("Timeout waiting for watch") } }