57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
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")
|
|
}
|
|
}
|