in network/benchmarks/netperf/lib/utilslib.go [44:128]
func createServices(c *kubernetes.Clientset, testNamespace string) error {
if _, err := c.CoreV1().Namespaces().Get(context.Background(), testNamespace, metav1.GetOptions{}); err != nil {
_, err := c.CoreV1().Namespaces().Create(context.Background(), &api.Namespace{ObjectMeta: metav1.ObjectMeta{Name: testNamespace}}, metav1.CreateOptions{})
if err != nil {
return fmt.Errorf("failed to create namespace %s: %v", testNamespace, err)
}
}
// Create the orchestrator service that points to the coordinator pod
orchLabels := map[string]string{"app": "netperf-orch"}
orchService := &api.Service{
ObjectMeta: metav1.ObjectMeta{
Name: "netperf-orch",
},
Spec: api.ServiceSpec{
Selector: orchLabels,
Ports: []api.ServicePort{{
Name: "netperf-orch",
Protocol: api.ProtocolTCP,
Port: orchestratorPort,
TargetPort: intstr.FromInt(orchestratorPort),
}},
Type: api.ServiceTypeClusterIP,
},
}
if _, err := c.CoreV1().Services(testNamespace).Create(context.Background(), orchService, metav1.CreateOptions{}); err != nil {
return fmt.Errorf("failed to create orchestrator service: %v", err)
}
fmt.Println("Created orchestrator service")
// Create the netperf-w2 service that points a clusterIP at the worker 2 pod
netperfW2Labels := map[string]string{"app": "netperf-w2"}
netperfW2Service := &api.Service{
ObjectMeta: metav1.ObjectMeta{
Name: "netperf-w2",
},
Spec: api.ServiceSpec{
Selector: netperfW2Labels,
Ports: []api.ServicePort{
{
Name: "netperf-w2",
Protocol: api.ProtocolTCP,
Port: iperf3Port,
TargetPort: intstr.FromInt(iperf3Port),
},
{
Name: "netperf-w2-qperf19766",
Protocol: api.ProtocolTCP,
Port: qperf19766,
TargetPort: intstr.FromInt(qperf19766),
},
{
Name: "netperf-w2-qperf19765",
Protocol: api.ProtocolTCP,
Port: qperf19765,
TargetPort: intstr.FromInt(qperf19765),
},
{
Name: "netperf-w2-sctp",
Protocol: api.ProtocolSCTP,
Port: iperf3Port,
TargetPort: intstr.FromInt(iperf3Port),
},
{
Name: "netperf-w2-udp",
Protocol: api.ProtocolUDP,
Port: iperf3Port,
TargetPort: intstr.FromInt(iperf3Port),
},
{
Name: "netperf-w2-netperf",
Protocol: api.ProtocolTCP,
Port: netperfPort,
TargetPort: intstr.FromInt(netperfPort),
},
},
Type: api.ServiceTypeClusterIP,
},
}
if _, err := c.CoreV1().Services(testNamespace).Create(context.Background(), netperfW2Service, metav1.CreateOptions{}); err != nil {
return fmt.Errorf("failed to create netperf-w2 service: %v", err)
}
fmt.Println("Created netperf-w2 service")
return nil
}