Annotations: map[string]string{ "k8s.mesosphere.io/roles": "public", }, }, Spec: v1.PodSpec{ Containers: []v1.Container{ { Name: podName, Image: framework.GetPauseImageName(f.ClientSet), }, }, }, }) framework.ExpectNoError(err) framework.ExpectNoError(framework.WaitForPodNameRunningInNamespace(c, podName, ns)) pod, err := c.Core().Pods(ns).Get(podName, metav1.GetOptions{}) framework.ExpectNoError(err) nodeClient := f.ClientSet.Core().Nodes() // schedule onto node with rack=2 being assigned to the "public" role rack2 := labels.SelectorFromSet(map[string]string{ "k8s.mesosphere.io/attribute-rack": "2", }) options := v1.ListOptions{LabelSelector: rack2.String()} nodes, err := nodeClient.List(options) framework.ExpectNoError(err) Expect(nodes.Items[0].Name).To(Equal(pod.Spec.NodeName)) })
} bootstrapYaml := mkpath("redis-master.yaml") sentinelServiceYaml := mkpath("redis-sentinel-service.yaml") sentinelControllerYaml := mkpath("redis-sentinel-controller.yaml") controllerYaml := mkpath("redis-controller.yaml") bootstrapPodName := "redis-master" redisRC := "redis" sentinelRC := "redis-sentinel" nsFlag := fmt.Sprintf("--namespace=%v", ns) expectedOnServer := "The server is now ready to accept connections" expectedOnSentinel := "+monitor master" By("starting redis bootstrap") framework.RunKubectlOrDie("create", "-f", bootstrapYaml, nsFlag) err := framework.WaitForPodNameRunningInNamespace(c, bootstrapPodName, ns) Expect(err).NotTo(HaveOccurred()) _, err = framework.LookForStringInLog(ns, bootstrapPodName, "master", expectedOnServer, serverStartTimeout) Expect(err).NotTo(HaveOccurred()) _, err = framework.LookForStringInLog(ns, bootstrapPodName, "sentinel", expectedOnSentinel, serverStartTimeout) Expect(err).NotTo(HaveOccurred()) By("setting up services and controllers") framework.RunKubectlOrDie("create", "-f", sentinelServiceYaml, nsFlag) framework.RunKubectlOrDie("create", "-f", sentinelControllerYaml, nsFlag) framework.RunKubectlOrDie("create", "-f", controllerYaml, nsFlag) label := labels.SelectorFromSet(labels.Set(map[string]string{sentinelRC: "true"})) err = framework.WaitForPodsWithLabelRunning(c, ns, label) Expect(err).NotTo(HaveOccurred()) label = labels.SelectorFromSet(labels.Set(map[string]string{"name": redisRC}))