func (l *petsetLoader) AddToGraph(g osgraph.Graph) error { for i := range l.items { kubegraph.EnsurePetSetNode(g, &l.items[i]) } return nil }
func TestNamespaceEdgeMatching(t *testing.T) { g := osgraph.New() fn := func(namespace string, g osgraph.Interface) { pod := &kapi.Pod{} pod.Namespace = namespace pod.Name = "the-pod" pod.Labels = map[string]string{"a": "1"} kubegraph.EnsurePodNode(g, pod) rc := &kapi.ReplicationController{} rc.Namespace = namespace rc.Name = "the-rc" rc.Spec.Selector = map[string]string{"a": "1"} kubegraph.EnsureReplicationControllerNode(g, rc) p := &kapps.PetSet{} p.Namespace = namespace p.Name = "the-petset" p.Spec.Selector = &unversioned.LabelSelector{ MatchLabels: map[string]string{"a": "1"}, } kubegraph.EnsurePetSetNode(g, p) svc := &kapi.Service{} svc.Namespace = namespace svc.Name = "the-svc" svc.Spec.Selector = map[string]string{"a": "1"} kubegraph.EnsureServiceNode(g, svc) } fn("ns", g) fn("other", g) AddAllExposedPodEdges(g) AddAllExposedPodTemplateSpecEdges(g) AddAllManagedByControllerPodEdges(g) for _, edge := range g.Edges() { nsTo, err := namespaceFor(edge.To()) if err != nil { t.Fatal(err) } nsFrom, err := namespaceFor(edge.From()) if err != nil { t.Fatal(err) } if nsFrom != nsTo { t.Errorf("edge %#v crosses namespace: %s %s", edge, nsFrom, nsTo) } } }