func createService(fcs *federation_internalclientset.Clientset, clusterClientSets []*release_1_3.Clientset, namespace string) { By("Creating a federated service") labels := map[string]string{ "foo": "bar", } svc1port := "svc1" svc2port := "svc2" service := &api.Service{ ObjectMeta: api.ObjectMeta{ Name: FederatedServiceName, }, Spec: api.ServiceSpec{ Selector: labels, Ports: []api.ServicePort{ { Name: "portname1", Port: 80, TargetPort: intstr.FromString(svc1port), }, { Name: "portname2", Port: 81, TargetPort: intstr.FromString(svc2port), }, }, }, } _, err := fcs.Core().Services(namespace).Create(service) Expect(err).NotTo(HaveOccurred()) for _, cs := range clusterClientSets { waitForFederatedServiceShard(cs, namespace, service, 1) } }
// Verify that the cluster is marked ready. func isReady(clusterName string, clientset *federation_internalclientset.Clientset) error { return wait.PollImmediate(time.Second, 5*time.Minute, func() (bool, error) { c, err := clientset.Federation().Clusters().Get(clusterName) if err != nil { return false, err } for _, condition := range c.Status.Conditions { if condition.Type == federationapi.ClusterReady && condition.Status == api.ConditionTrue { return true, nil } } return false, nil }) }