mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 07:20:13 +00:00
split services between multiple namespaces
This commit is contained in:
parent
a68a909b36
commit
e94304d814
@ -34,6 +34,7 @@ import (
|
|||||||
const (
|
const (
|
||||||
parallelCreateServiceWorkers = 1
|
parallelCreateServiceWorkers = 1
|
||||||
maxServicesPerCluster = 10000
|
maxServicesPerCluster = 10000
|
||||||
|
maxServicesPerNamespace = 5000
|
||||||
checkServicePercent = 0.05
|
checkServicePercent = 0.05
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -50,10 +51,19 @@ var _ = SIGDescribe("[Feature:PerformanceDNS]", func() {
|
|||||||
|
|
||||||
// answers dns for service - creates the maximum number of services, and then check dns record for one
|
// answers dns for service - creates the maximum number of services, and then check dns record for one
|
||||||
It("Should answer DNS query for maximum number of services per cluster", func() {
|
It("Should answer DNS query for maximum number of services per cluster", func() {
|
||||||
services := generateServicesInNamespace(f.Namespace.Name, maxServicesPerCluster)
|
// get integer ceiling of maxServicesPerCluster / maxServicesPerNamespace
|
||||||
|
numNs := (maxServicesPerCluster + maxServicesPerNamespace - 1) / maxServicesPerNamespace
|
||||||
|
|
||||||
|
var namespaces []string
|
||||||
|
for i := 0; i < numNs; i++ {
|
||||||
|
ns, _ := f.CreateNamespace(f.BaseName, nil)
|
||||||
|
namespaces = append(namespaces, ns.Name)
|
||||||
|
}
|
||||||
|
|
||||||
|
services := generateServicesInNamespaces(namespaces, maxServicesPerCluster)
|
||||||
createService := func(i int) {
|
createService := func(i int) {
|
||||||
defer GinkgoRecover()
|
defer GinkgoRecover()
|
||||||
framework.ExpectNoError(testutils.CreateServiceWithRetries(f.ClientSet, f.Namespace.Name, services[i]))
|
framework.ExpectNoError(testutils.CreateServiceWithRetries(f.ClientSet, services[i].Namespace, services[i]))
|
||||||
}
|
}
|
||||||
framework.Logf("Creating %v test services", maxServicesPerCluster)
|
framework.Logf("Creating %v test services", maxServicesPerCluster)
|
||||||
workqueue.Parallelize(parallelCreateServiceWorkers, len(services), createService)
|
workqueue.Parallelize(parallelCreateServiceWorkers, len(services), createService)
|
||||||
@ -86,13 +96,13 @@ var _ = SIGDescribe("[Feature:PerformanceDNS]", func() {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
func generateServicesInNamespace(namespace string, num int) []*v1.Service {
|
func generateServicesInNamespaces(namespaces []string, num int) []*v1.Service {
|
||||||
services := make([]*v1.Service, num)
|
services := make([]*v1.Service, num)
|
||||||
for i := 0; i < num; i++ {
|
for i := 0; i < num; i++ {
|
||||||
services[i] = &v1.Service{
|
services[i] = &v1.Service{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "svc-" + strconv.Itoa(i),
|
Name: "svc-" + strconv.Itoa(i),
|
||||||
Namespace: namespace,
|
Namespace: namespaces[i%len(namespaces)],
|
||||||
},
|
},
|
||||||
Spec: v1.ServiceSpec{
|
Spec: v1.ServiceSpec{
|
||||||
Ports: []v1.ServicePort{{
|
Ports: []v1.ServicePort{{
|
||||||
|
Loading…
Reference in New Issue
Block a user