diff --git a/pkg/controller/statefulset/identity_mappers_test.go b/pkg/controller/statefulset/identity_mappers_test.go index 3eb49c87960..16e87c61c67 100644 --- a/pkg/controller/statefulset/identity_mappers_test.go +++ b/pkg/controller/statefulset/identity_mappers_test.go @@ -57,7 +57,6 @@ func TestPetIDDNS(t *testing.T) { if hostname, ok := pod.Annotations[apipod.PodHostnameAnnotation]; !ok || hostname != petName { t.Errorf("Wrong hostname: %v", hostname) } - // TODO: Check this against the governing service. if subdomain, ok := pod.Annotations[apipod.PodSubdomainAnnotation]; !ok || subdomain != petSubdomain { t.Errorf("Wrong subdomain: %v", subdomain) } diff --git a/test/e2e/statefulset.go b/test/e2e/statefulset.go index 08b4c84ca41..e5a7222e474 100644 --- a/test/e2e/statefulset.go +++ b/test/e2e/statefulset.go @@ -125,6 +125,9 @@ var _ = framework.KubeDescribe("StatefulSet", func() { By("Verifying statefulset provides a stable hostname for each pod") framework.ExpectNoError(sst.checkHostname(ss)) + By("Verifying statefulset set proper service name") + framework.ExpectNoError(sst.checkServiceName(ss, headlessSvcName)) + cmd := "echo $(hostname) > /data/hostname; sync;" By("Running " + cmd + " in all stateful pods") framework.ExpectNoError(sst.execInStatefulPods(ss, cmd)) @@ -963,6 +966,16 @@ func (s *statefulSetTester) waitForStatus(ss *apps.StatefulSet, expectedReplicas } } +func (p *statefulSetTester) checkServiceName(ps *apps.StatefulSet, expectedServiceName string) error { + framework.Logf("Checking if statefulset spec.serviceName is %s", expectedServiceName) + + if expectedServiceName != ps.Spec.ServiceName { + return fmt.Errorf("Wrong service name governing statefulset. Expected %s got %s", expectedServiceName, ps.Spec.ServiceName) + } + + return nil +} + func deleteAllStatefulSets(c clientset.Interface, ns string) { sst := &statefulSetTester{c: c} ssList, err := c.Apps().StatefulSets(ns).List(metav1.ListOptions{LabelSelector: labels.Everything().String()})