@@ -39,97 +39,55 @@ var _ = ginkgo.Describe("Datapath Tests", func() {
3939
4040 // Get subnet information once (doesn't change between iterations)
4141 vnetGUID , err := helpers .GetVnetGUID (rg , vnetName )
42- gomega .Expect (err ).To (gomega .BeNil ())
42+ gomega .Expect (err ).To (gomega .BeNil (), "Failed to get VNet GUID" )
43+
4344 subnetGUID , err := helpers .GetSubnetGUID (rg , vnetName , subnetName )
44- gomega .Expect (err ).To (gomega .BeNil ())
45+ gomega .Expect (err ).To (gomega .BeNil (), "Failed to get Subnet GUID" )
46+
4547 subnetARMID , err := helpers .GetSubnetARMID (rg , vnetName , subnetName )
46- gomega .Expect (err ).To (gomega .BeNil ())
48+ gomega .Expect (err ).To (gomega .BeNil (), "Failed to get Subnet ARM ID" )
49+
4750 subnetToken , err := helpers .GetSubnetToken (rg , vnetName , subnetName )
48- gomega .Expect (err ).To (gomega .BeNil ())
51+ gomega .Expect (err ).To (gomega .BeNil (), "Failed to get Subnet Token" )
52+
53+ // Configure test resources
54+ resources := TestResources {
55+ Kubeconfig : kubeconfig2 ,
56+ PNName : pnName ,
57+ PNIName : pniName ,
58+ VnetGUID : vnetGUID ,
59+ SubnetGUID : subnetGUID ,
60+ SubnetARMID : subnetARMID ,
61+ SubnetToken : subnetToken ,
62+ PodNetworkTemplate : "../../manifests/swiftv2/long-running-cluster/podnetwork.yaml" ,
63+ PNITemplate : "../../manifests/swiftv2/long-running-cluster/podnetworkinstance.yaml" ,
64+ PodTemplate : "../../manifests/swiftv2/long-running-cluster/pod.yaml" ,
65+ PodImage : "weibeld/ubuntu-networking" ,
66+ }
4967
5068 // Run indefinitely until test is cancelled
5169 iteration := 0
5270 for {
5371 iteration ++
5472 ginkgo .By (fmt .Sprintf ("Starting iteration %d at %s" , iteration , time .Now ().Format (time .RFC3339 )))
5573
56- // Step 1: Create PodNetwork
57- ginkgo .By (fmt .Sprintf ("Creating PodNetwork %s" , pnName ))
58- err := CreatePodNetwork (kubeconfig2 , PodNetworkData {
59- PNName : pnName ,
60- VnetGUID : vnetGUID ,
61- SubnetGUID : subnetGUID ,
62- SubnetARMID : subnetARMID ,
63- SubnetToken : subnetToken ,
64- }, "../../manifests/swiftv2/long-running-cluster/podnetwork.yaml" )
65- gomega .Expect (err ).To (gomega .BeNil ())
66-
67- // Step 2: Create namespace and PodNetworkInstance
68- ginkgo .By (fmt .Sprintf ("Creating namespace %s" , pnName ))
69- err = helpers .EnsureNamespaceExists (kubeconfig2 , pnName )
70- gomega .Expect (err ).To (gomega .BeNil ())
71-
72- ginkgo .By (fmt .Sprintf ("Creating PodNetworkInstance %s" , pniName ))
73- err = CreatePodNetworkInstance (kubeconfig2 , PNIData {
74- PNIName : pniName ,
75- PNName : pnName ,
76- Namespace : pnName ,
77- Type : "explicit" ,
78- Reservations : 2 ,
79- }, "../../manifests/swiftv2/long-running-cluster/podnetworkinstance.yaml" )
80- gomega .Expect (err ).To (gomega .BeNil ())
81-
82- // Step 3: Create pods on first two nodes
83- ginkgo .By ("Getting cluster nodes" )
84- nodes , err := helpers .GetClusterNodes (kubeconfig2 )
85- gomega .Expect (err ).To (gomega .BeNil ())
86- gomega .Expect (len (nodes )).To (gomega .BeNumerically (">=" , 2 ), "Need at least 2 nodes" )
87-
88- podNames := []string {}
89- for i , node := range nodes [:2 ] {
90- podName := fmt .Sprintf ("pod-c2-%d" , i )
91- podNames = append (podNames , podName )
92-
93- ginkgo .By (fmt .Sprintf ("Creating pod %s on node %s" , podName , node ))
94- err := CreatePod (kubeconfig2 , PodData {
95- PodName : podName ,
96- NodeName : node ,
97- OS : "linux" ,
98- PNName : pnName ,
99- PNIName : pniName ,
100- Namespace : pnName ,
101- Image : "weibeld/ubuntu-networking" ,
102- }, "../../manifests/swiftv2/long-running-cluster/pod.yaml" )
103- gomega .Expect (err ).To (gomega .BeNil ())
104- }
105-
106- // Step 4: Wait for 5 minutes
74+ // Create all resources
75+ ginkgo .By ("Creating test resources (PodNetwork, PodNetworkInstance, and Pods)" )
76+ err := CreateTestResources (resources )
77+ gomega .Expect (err ).To (gomega .BeNil (), "Failed to create test resources" )
78+
79+ // Wait for 5 minutes
10780 ginkgo .By ("Waiting for 5 minutes before deletion" )
10881 time .Sleep (5 * time .Minute )
10982
110- // Step 5: Delete resources in reverse order
111- ginkgo .By ("Deleting pods" )
112- for _ , podName := range podNames {
113- ginkgo .By (fmt .Sprintf ("Deleting pod %s" , podName ))
114- err := helpers .DeletePod (kubeconfig2 , pnName , podName )
115- gomega .Expect (err ).To (gomega .BeNil ())
116- }
117-
118- ginkgo .By (fmt .Sprintf ("Deleting PodNetworkInstance %s" , pniName ))
119- err = helpers .DeletePodNetworkInstance (kubeconfig2 , pnName , pniName )
120- gomega .Expect (err ).To (gomega .BeNil ())
121-
122- ginkgo .By (fmt .Sprintf ("Deleting PodNetwork %s" , pnName ))
123- err = helpers .DeletePodNetwork (kubeconfig2 , pnName )
124- gomega .Expect (err ).To (gomega .BeNil ())
125-
126- ginkgo .By (fmt .Sprintf ("Deleting namespace %s" , pnName ))
127- err = helpers .DeleteNamespace (kubeconfig2 , pnName )
128- gomega .Expect (err ).To (gomega .BeNil ())
83+ // Delete all resources
84+ ginkgo .By ("Deleting test resources" )
85+ err = DeleteTestResources (kubeconfig2 , pnName , pniName )
86+ gomega .Expect (err ).To (gomega .BeNil (), "Failed to delete test resources" )
12987
13088 ginkgo .By (fmt .Sprintf ("Completed iteration %d at %s" , iteration , time .Now ().Format (time .RFC3339 )))
13189
132- // Step 6: Wait for 30 minutes before next iteration
90+ // Wait for 30 minutes before next iteration
13391 ginkgo .By ("Waiting for 30 minutes before next iteration" )
13492 time .Sleep (30 * time .Minute )
13593 }
0 commit comments