func runServiceAndWorkloadForResourceConsumer(c *client.Client, ns, name, kind string, replicas int, cpuLimitMillis, memLimitMb int64) { By(fmt.Sprintf("Running consuming RC %s via %s with %v replicas", name, kind, replicas)) _, err := c.Services(ns).Create(&api.Service{ ObjectMeta: api.ObjectMeta{ Name: name, }, Spec: api.ServiceSpec{ Ports: []api.ServicePort{{ Port: port, TargetPort: intstr.FromInt(targetPort), }}, Selector: map[string]string{ "name": name, }, }, }) framework.ExpectNoError(err) rcConfig := framework.RCConfig{ Client: c, Image: resourceConsumerImage, Name: name, Namespace: ns, Timeout: timeoutRC, Replicas: replicas, CpuRequest: cpuLimitMillis, CpuLimit: cpuLimitMillis, MemRequest: memLimitMb * 1024 * 1024, // MemLimit is in bytes MemLimit: memLimitMb * 1024 * 1024, } switch kind { case kindRC: framework.ExpectNoError(framework.RunRC(rcConfig)) break case kindDeployment: dpConfig := framework.DeploymentConfig{ RCConfig: rcConfig, } framework.ExpectNoError(framework.RunDeployment(dpConfig)) break case kindReplicaSet: rsConfig := framework.ReplicaSetConfig{ RCConfig: rcConfig, } framework.ExpectNoError(framework.RunReplicaSet(rsConfig)) break default: framework.Failf(invalidKind) } // Make sure endpoints are propagated. // TODO(piosz): replace sleep with endpoints watch. time.Sleep(10 * time.Second) }
func runServiceAndWorkloadForResourceConsumer(c clientset.Interface, internalClient internalclientset.Interface, ns, name, kind string, replicas int, cpuLimitMillis, memLimitMb int64) { By(fmt.Sprintf("Running consuming RC %s via %s with %v replicas", name, kind, replicas)) _, err := c.Core().Services(ns).Create(&v1.Service{ ObjectMeta: v1.ObjectMeta{ Name: name, }, Spec: v1.ServiceSpec{ Ports: []v1.ServicePort{{ Port: port, TargetPort: intstr.FromInt(targetPort), }}, Selector: map[string]string{ "name": name, }, }, }) framework.ExpectNoError(err) rcConfig := testutils.RCConfig{ Client: c, InternalClient: internalClient, Image: resourceConsumerImage, Name: name, Namespace: ns, Timeout: timeoutRC, Replicas: replicas, CpuRequest: cpuLimitMillis, CpuLimit: cpuLimitMillis, MemRequest: memLimitMb * 1024 * 1024, // MemLimit is in bytes MemLimit: memLimitMb * 1024 * 1024, } switch kind { case kindRC: framework.ExpectNoError(framework.RunRC(rcConfig)) break case kindDeployment: dpConfig := testutils.DeploymentConfig{ RCConfig: rcConfig, } framework.ExpectNoError(framework.RunDeployment(dpConfig)) break case kindReplicaSet: rsConfig := testutils.ReplicaSetConfig{ RCConfig: rcConfig, } By(fmt.Sprintf("creating replicaset %s in namespace %s", rsConfig.Name, rsConfig.Namespace)) framework.ExpectNoError(framework.RunReplicaSet(rsConfig)) break default: framework.Failf(invalidKind) } By(fmt.Sprintf("Running controller")) controllerName := name + "-ctrl" _, err = c.Core().Services(ns).Create(&v1.Service{ ObjectMeta: v1.ObjectMeta{ Name: controllerName, }, Spec: v1.ServiceSpec{ Ports: []v1.ServicePort{{ Port: port, TargetPort: intstr.FromInt(targetPort), }}, Selector: map[string]string{ "name": controllerName, }, }, }) framework.ExpectNoError(err) dnsClusterFirst := v1.DNSClusterFirst controllerRcConfig := testutils.RCConfig{ Client: c, Image: resourceConsumerControllerImage, Name: controllerName, Namespace: ns, Timeout: timeoutRC, Replicas: 1, Command: []string{"/controller", "--consumer-service-name=" + name, "--consumer-service-namespace=" + ns, "--consumer-port=80"}, DNSPolicy: &dnsClusterFirst, } framework.ExpectNoError(framework.RunRC(controllerRcConfig)) // Wait for endpoints to propagate for the controller service. framework.ExpectNoError(framework.WaitForServiceEndpointsNum( c, ns, controllerName, 1, startServiceInterval, startServiceTimeout)) }
func runServiceAndWorkloadForResourceConsumer(c *client.Client, ns, name, kind string, replicas int, cpuLimitMillis, memLimitMb int64) { By(fmt.Sprintf("Running consuming RC %s via %s with %v replicas", name, kind, replicas)) _, err := c.Services(ns).Create(&api.Service{ ObjectMeta: api.ObjectMeta{ Name: name, }, Spec: api.ServiceSpec{ Ports: []api.ServicePort{{ Port: port, TargetPort: intstr.FromInt(targetPort), }}, Selector: map[string]string{ "name": name, }, }, }) framework.ExpectNoError(err) rcConfig := testutils.RCConfig{ Client: c, Image: resourceConsumerImage, Name: name, Namespace: ns, Timeout: timeoutRC, Replicas: replicas, CpuRequest: cpuLimitMillis, CpuLimit: cpuLimitMillis, MemRequest: memLimitMb * 1024 * 1024, // MemLimit is in bytes MemLimit: memLimitMb * 1024 * 1024, } switch kind { case kindRC: framework.ExpectNoError(framework.RunRC(rcConfig)) break case kindDeployment: dpConfig := testutils.DeploymentConfig{ RCConfig: rcConfig, } framework.ExpectNoError(framework.RunDeployment(dpConfig)) break case kindReplicaSet: rsConfig := testutils.ReplicaSetConfig{ RCConfig: rcConfig, } By(fmt.Sprintf("creating replicaset %s in namespace %s", rsConfig.Name, rsConfig.Namespace)) framework.ExpectNoError(framework.RunReplicaSet(rsConfig)) break default: framework.Failf(invalidKind) } By(fmt.Sprintf("Running controller")) controllerName := name + "-ctrl" _, err = c.Services(ns).Create(&api.Service{ ObjectMeta: api.ObjectMeta{ Name: controllerName, }, Spec: api.ServiceSpec{ Ports: []api.ServicePort{{ Port: port, TargetPort: intstr.FromInt(targetPort), }}, Selector: map[string]string{ "name": controllerName, }, }, }) framework.ExpectNoError(err) dnsClusterFirst := api.DNSClusterFirst controllerRcConfig := testutils.RCConfig{ Client: c, Image: resourceConsumerControllerImage, Name: controllerName, Namespace: ns, Timeout: timeoutRC, Replicas: 1, Command: []string{"/controller", "--consumer-service-name=" + name, "--consumer-service-namespace=" + ns, "--consumer-port=80"}, DNSPolicy: &dnsClusterFirst, } framework.ExpectNoError(framework.RunRC(controllerRcConfig)) // Make sure endpoints are propagated. // TODO(piosz): replace sleep with endpoints watch. time.Sleep(10 * time.Second) }