Skip to content

Commit b6b4fbc

Browse files
committed
test, networksegmentation: Use random names for CUDN objects
CUDN is cluster-scoped object, in case tests running in parallel, having random names avoids conflicting with other tests. Use random metadata.name for CUDN objects. The "isolates overlapping CIDRs" tests create objects based on the 'red' and 'blue' variables, including CUDN objects. Change the tests CUDN creation use random names and update the given 'networkAttachmentConfigParams' with the new generated name. Update 'red' & 'blue' vaiables with the generated name, carried by 'networkAttachmentConfigParams' (netConfig.name). Signed-off-by: Or Mergi <[email protected]>
1 parent f5f290f commit b6b4fbc

File tree

1 file changed

+38
-23
lines changed

1 file changed

+38
-23
lines changed

test/extended/networking/network_segmentation.go

Lines changed: 38 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,12 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
7171
})
7272

7373
DescribeTableSubtree("created using",
74-
func(createNetworkFn func(c networkAttachmentConfigParams) error) {
74+
func(createNetworkFn func(c *networkAttachmentConfigParams) error) {
7575

7676
DescribeTable(
7777
"can perform east/west traffic between nodes",
7878
func(
79-
netConfig networkAttachmentConfigParams,
79+
netConfig *networkAttachmentConfigParams,
8080
clientPodConfig podConfiguration,
8181
serverPodConfig podConfiguration,
8282
) {
@@ -127,7 +127,7 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
127127
},
128128
Entry(
129129
"for two pods connected over a L2 primary UDN",
130-
networkAttachmentConfigParams{
130+
&networkAttachmentConfigParams{
131131
name: nadName,
132132
topology: "layer2",
133133
role: "primary",
@@ -141,7 +141,7 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
141141
),
142142
Entry(
143143
"two pods connected over a L3 primary UDN",
144-
networkAttachmentConfigParams{
144+
&networkAttachmentConfigParams{
145145
name: nadName,
146146
topology: "layer3",
147147
role: "primary",
@@ -158,7 +158,7 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
158158
DescribeTable(
159159
"is isolated from the default network",
160160
func(
161-
netConfigParams networkAttachmentConfigParams,
161+
netConfigParams *networkAttachmentConfigParams,
162162
udnPodConfig podConfiguration,
163163
) {
164164
By("Creating second namespace for default network pods")
@@ -342,7 +342,7 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
342342
},
343343
Entry(
344344
"with L2 primary UDN",
345-
networkAttachmentConfigParams{
345+
&networkAttachmentConfigParams{
346346
name: nadName,
347347
topology: "layer2",
348348
role: "primary",
@@ -353,7 +353,7 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
353353
),
354354
Entry(
355355
"with L3 primary UDN",
356-
networkAttachmentConfigParams{
356+
&networkAttachmentConfigParams{
357357
name: nadName,
358358
topology: "layer3",
359359
role: "primary",
@@ -379,7 +379,7 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
379379
namespaceRed := f.Namespace.Name + "-" + red
380380
namespaceBlue := f.Namespace.Name + "-" + blue
381381

382-
netConfig := networkAttachmentConfigParams{
382+
netConfig := &networkAttachmentConfigParams{
383383
topology: topology,
384384
cidr: correctCIDRFamily(oc, userDefinedv4Subnet, userDefinedv6Subnet),
385385
role: "primary",
@@ -407,7 +407,13 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
407407
netConfig.name = network
408408

409409
Expect(createNetworkFn(netConfig)).To(Succeed())
410+
// update the name because createNetworkFn may mutate the netConfig.name
411+
// for cluster scope objects (i.g.: CUDN cases) to enable parallel testing.
412+
networkNamespaceMap[namespace] = netConfig.name
410413
}
414+
red = networkNamespaceMap[namespaceRed]
415+
blue = networkNamespaceMap[namespaceBlue]
416+
411417
workerNodes, err := getWorkerNodesOrdered(cs)
412418
Expect(err).NotTo(HaveOccurred())
413419
pods := []*v1.Pod{}
@@ -540,27 +546,29 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
540546
),
541547
)
542548
},
543-
Entry("NetworkAttachmentDefinitions", func(c networkAttachmentConfigParams) error {
544-
netConfig := newNetworkAttachmentConfig(c)
549+
Entry("NetworkAttachmentDefinitions", func(c *networkAttachmentConfigParams) error {
550+
netConfig := newNetworkAttachmentConfig(*c)
545551
nad := generateNAD(netConfig)
546552
_, err := nadClient.NetworkAttachmentDefinitions(c.namespace).Create(context.Background(), nad, metav1.CreateOptions{})
547553
return err
548554
}),
549-
Entry("UserDefinedNetwork", func(c networkAttachmentConfigParams) error {
550-
udnManifest := generateUserDefinedNetworkManifest(&c)
555+
Entry("UserDefinedNetwork", func(c *networkAttachmentConfigParams) error {
556+
udnManifest := generateUserDefinedNetworkManifest(c)
551557
cleanup, err := createManifest(c.namespace, udnManifest)
552558
DeferCleanup(cleanup)
553559
Expect(waitForUserDefinedNetworkReady(c.namespace, c.name, udnCrReadyTimeout)).To(Succeed())
554560
return err
555561
}),
556-
Entry("ClusterUserDefinedNetwork", func(c networkAttachmentConfigParams) error {
557-
cudnManifest := generateClusterUserDefinedNetworkManifest(&c)
562+
Entry("ClusterUserDefinedNetwork", func(c *networkAttachmentConfigParams) error {
563+
cudnName := randomNetworkMetaName()
564+
c.name = cudnName
565+
cudnManifest := generateClusterUserDefinedNetworkManifest(c)
558566
cleanup, err := createManifest("", cudnManifest)
559567
DeferCleanup(func() {
560568
cleanup()
561569
By("delete pods in test namespace to unblock CUDN CR & associate NAD deletion")
562570
Expect(cs.CoreV1().Pods(c.namespace).DeleteCollection(context.Background(), metav1.DeleteOptions{}, metav1.ListOptions{})).To(Succeed())
563-
_, err := e2ekubectl.RunKubectl("", "delete", "clusteruserdefinednetwork", c.name, "--wait", fmt.Sprintf("--timeout=%ds", 120))
571+
_, err := e2ekubectl.RunKubectl("", "delete", "clusteruserdefinednetwork", cudnName, "--wait", fmt.Sprintf("--timeout=%ds", 120))
564572
Expect(err).NotTo(HaveOccurred())
565573
})
566574
Expect(waitForClusterUserDefinedNetworkReady(c.name, 5*time.Second)).To(Succeed())
@@ -700,13 +708,10 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
700708
})
701709

702710
Context("ClusterUserDefinedNetwork CRD Controller", func() {
703-
const (
704-
testClusterUdnName = "test-cluster-net"
705-
clusterUserDefinedNetworkResource = "clusteruserdefinednetwork"
706-
)
707-
var (
708-
testTenantNamespaces []string
709-
)
711+
const clusterUserDefinedNetworkResource = "clusteruserdefinednetwork"
712+
713+
var testTenantNamespaces []string
714+
710715
BeforeEach(func() {
711716
testTenantNamespaces = []string{
712717
f.Namespace.Name + "blue",
@@ -724,7 +729,10 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
724729
}
725730
})
726731

732+
var testClusterUdnName string
733+
727734
BeforeEach(func() {
735+
testClusterUdnName = randomNetworkMetaName()
728736
By("create test CR")
729737
cleanup, err := createManifest("", newClusterUDNManifest(testClusterUdnName, testTenantNamespaces...))
730738
DeferCleanup(func() error {
@@ -943,7 +951,7 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
943951
Expect(err).NotTo(HaveOccurred())
944952

945953
By("create primary Cluster UDN CR")
946-
const cudnName = "primary-net"
954+
cudnName := randomNetworkMetaName()
947955
cleanup, err := createManifest(f.Namespace.Name, newPrimaryClusterUDNManifest(cudnName, testTenantNamespaces...))
948956
DeferCleanup(func() {
949957
cleanup()
@@ -1082,6 +1090,13 @@ var _ = Describe("[sig-network][OCPFeatureGate:NetworkSegmentation][Feature:User
10821090
})
10831091
})
10841092

1093+
// randomNetworkMetaName return pseudo random name for network related objects (NAD,UDN,CUDN).
1094+
// CUDN is cluster-scoped object, in case tests running in parallel, having random names avoids
1095+
// conflicting with other tests.
1096+
func randomNetworkMetaName() string {
1097+
return fmt.Sprintf("test-net-%s", rand.String(5))
1098+
}
1099+
10851100
var nadToUdnParams = map[string]string{
10861101
"primary": "Primary",
10871102
"secondary": "Secondary",

0 commit comments

Comments
 (0)