@@ -454,8 +454,8 @@ func TestSingleNodeUpgradePreviousStable(t *testing.T) {
454
454
version : initialVersion ,
455
455
})
456
456
457
- if stdout , stderr , err := tc .SetupPlaywrightAndRunTest ("deploy-app" ); err != nil {
458
- t .Fatalf ("fail to run playwright test deploy-app: %v: %s: %s" , err , stdout , stderr )
457
+ if stdout , stderr , err := tc .SetupPlaywrightAndRunTest ("deploy-ec23- app" ); err != nil {
458
+ t .Fatalf ("fail to run playwright test deploy-ec23- app: %v: %s: %s" , err , stdout , stderr )
459
459
}
460
460
461
461
checkInstallationStateWithOptions (t , tc , installationStateOptions {
@@ -468,7 +468,7 @@ func TestSingleNodeUpgradePreviousStable(t *testing.T) {
468
468
469
469
t .Logf ("%s: upgrading cluster" , time .Now ().Format (time .RFC3339 ))
470
470
if stdout , stderr , err := tc .RunPlaywrightTest ("deploy-upgrade" , testArgs ... ); err != nil {
471
- t .Fatalf ("fail to run playwright test deploy-app : %v: %s: %s" , err , stdout , stderr )
471
+ t .Fatalf ("fail to run playwright test deploy-upgrade : %v: %s: %s" , err , stdout , stderr )
472
472
}
473
473
474
474
t .Logf ("%s: re-installing kots cli on node 0" , time .Now ().Format (time .RFC3339 ))
@@ -486,7 +486,7 @@ func TestSingleNodeUpgradePreviousStable(t *testing.T) {
486
486
487
487
t .Logf ("%s: upgrading cluster a second time" , time .Now ().Format (time .RFC3339 ))
488
488
if stdout , stderr , err := tc .RunPlaywrightTest ("deploy-upgrade" , testArgs ... ); err != nil {
489
- t .Fatalf ("fail to run playwright test deploy-app : %v: %s: %s" , err , stdout , stderr )
489
+ t .Fatalf ("fail to run playwright test deploy-upgrade : %v: %s: %s" , err , stdout , stderr )
490
490
}
491
491
492
492
t .Logf ("%s: checking installation state after second upgrade" , time .Now ().Format (time .RFC3339 ))
@@ -585,8 +585,8 @@ func TestUpgradeEC18FromReplicatedApp(t *testing.T) {
585
585
if err := tc .SetupPlaywright (withEnv ); err != nil {
586
586
t .Fatalf ("fail to setup playwright: %v" , err )
587
587
}
588
- if stdout , stderr , err := tc .RunPlaywrightTest ("deploy-ec18-app-version " ); err != nil {
589
- t .Fatalf ("fail to run playwright test deploy-ec18-app-version : %v: %s: %s" , err , stdout , stderr )
588
+ if stdout , stderr , err := tc .RunPlaywrightTest ("deploy-ec18-app" ); err != nil {
589
+ t .Fatalf ("fail to run playwright test deploy-ec18-app: %v: %s: %s" , err , stdout , stderr )
590
590
}
591
591
592
592
t .Logf ("%s: generating a new worker token command" , time .Now ().Format (time .RFC3339 ))
@@ -1138,8 +1138,8 @@ func TestAirgapUpgradeFromEC18(t *testing.T) {
1138
1138
if err := tc .SetupPlaywright (withEnv ); err != nil {
1139
1139
t .Fatalf ("fail to setup playwright: %v" , err )
1140
1140
}
1141
- if _ , _ , err := tc .RunPlaywrightTest ("deploy-ec18-app-version " ); err != nil {
1142
- t .Fatalf ("fail to run playwright test deploy-ec18-app-version : %v" , err )
1141
+ if _ , _ , err := tc .RunPlaywrightTest ("deploy-ec18-app" ); err != nil {
1142
+ t .Fatalf ("fail to run playwright test deploy-ec18-app: %v" , err )
1143
1143
}
1144
1144
1145
1145
// generate worker node join command.
@@ -1336,58 +1336,16 @@ func TestMultiNodeAirgapUpgradeSameK0s(t *testing.T) {
1336
1336
if _ , _ , err := tc .RunCommandOnNode (0 , line ); err != nil {
1337
1337
t .Fatalf ("fail to remove embedded-cluster binary on node %s: %v" , tc .Nodes [0 ], err )
1338
1338
}
1339
- line = []string {"rm" , "/var/lib/embedded-cluster/bin/embedded-cluster" }
1340
- if _ , _ , err := tc .RunCommandOnNode (0 , line ); err != nil {
1341
- t .Fatalf ("fail to remove embedded-cluster binary on node %s: %v" , tc .Nodes [0 ], err )
1342
- }
1343
1339
1344
1340
if _ , _ , err := tc .SetupPlaywrightAndRunTest ("deploy-app" ); err != nil {
1345
1341
t .Fatalf ("fail to run playwright test deploy-app: %v" , err )
1346
1342
}
1347
1343
1348
- // generate worker node join command.
1349
- t .Logf ("%s: generating a new worker token command" , time .Now ().Format (time .RFC3339 ))
1350
- stdout , stderr , err := tc .RunPlaywrightTest ("get-join-worker-command" )
1351
- if err != nil {
1352
- t .Fatalf ("fail to generate worker join token:\n stdout: %s\n stderr: %s" , stdout , stderr )
1353
- }
1354
- workerCommand , err := findJoinCommandInOutput (stdout )
1355
- if err != nil {
1356
- t .Fatalf ("fail to find the join command in the output: %v" , err )
1357
- }
1358
- t .Log ("worker join token command:" , workerCommand )
1359
-
1360
- // join the worker node
1361
- t .Logf ("%s: preparing embedded cluster airgap files on worker node" , time .Now ().Format (time .RFC3339 ))
1362
- line = []string {"airgap-prepare.sh" }
1363
- if _ , _ , err := tc .RunCommandOnNode (1 , line ); err != nil {
1364
- t .Fatalf ("fail to prepare airgap files on worker node: %v" , err )
1365
- }
1366
- t .Logf ("%s: joining worker node to the cluster" , time .Now ().Format (time .RFC3339 ))
1367
- if _ , _ , err := tc .RunCommandOnNode (1 , strings .Split (workerCommand , " " )); err != nil {
1368
- t .Fatalf ("fail to join worker node to the cluster: %v" , err )
1369
- }
1370
- // remove artifacts after joining to save space
1371
- line = []string {"rm" , "/assets/release.airgap" }
1372
- if _ , _ , err := tc .RunCommandOnNode (1 , line ); err != nil {
1373
- t .Fatalf ("fail to remove airgap bundle on worker node: %v" , err )
1374
- }
1375
- line = []string {"rm" , "/usr/local/bin/embedded-cluster" }
1376
- if _ , _ , err := tc .RunCommandOnNode (1 , line ); err != nil {
1377
- t .Fatalf ("fail to remove embedded-cluster binary on worker node: %v" , err )
1378
- }
1379
- line = []string {"rm" , "/var/lib/embedded-cluster/bin/embedded-cluster" }
1380
- if _ , _ , err := tc .RunCommandOnNode (1 , line ); err != nil {
1381
- t .Fatalf ("fail to remove embedded-cluster binary on node %s: %v" , tc .Nodes [0 ], err )
1382
- }
1344
+ // join a worker
1345
+ joinWorkerNode (t , tc , 1 )
1383
1346
1384
1347
// wait for the nodes to report as ready.
1385
- t .Logf ("%s: all nodes joined, waiting for them to be ready" , time .Now ().Format (time .RFC3339 ))
1386
- stdout , _ , err = tc .RunCommandOnNode (0 , []string {"wait-for-ready-nodes.sh" , "2" })
1387
- if err != nil {
1388
- t .Log (stdout )
1389
- t .Fatalf ("fail to wait for ready nodes: %v" , err )
1390
- }
1348
+ waitForNodes (t , tc , 2 , nil )
1391
1349
1392
1350
t .Logf ("%s: checking installation state after app deployment" , time .Now ().Format (time .RFC3339 ))
1393
1351
line = []string {"check-airgap-installation-state.sh" , fmt .Sprintf ("appver-%s" , os .Getenv ("SHORT_SHA" )), k8sVersion ()}
@@ -1496,45 +1454,11 @@ func TestMultiNodeAirgapUpgrade(t *testing.T) {
1496
1454
t .Fatalf ("fail to run playwright test deploy-app: %v" , err )
1497
1455
}
1498
1456
1499
- // generate worker node join command.
1500
- t .Logf ("%s: generating a new worker token command" , time .Now ().Format (time .RFC3339 ))
1501
- stdout , stderr , err := tc .RunPlaywrightTest ("get-join-worker-command" )
1502
- if err != nil {
1503
- t .Fatalf ("fail to generate worker join token:\n stdout: %s\n stderr: %s" , stdout , stderr )
1504
- }
1505
- workerCommand , err := findJoinCommandInOutput (stdout )
1506
- if err != nil {
1507
- t .Fatalf ("fail to find the join command in the output: %v" , err )
1508
- }
1509
- t .Log ("worker join token command:" , workerCommand )
1510
-
1511
- // join the worker node
1512
- t .Logf ("%s: preparing embedded cluster airgap files on worker node" , time .Now ().Format (time .RFC3339 ))
1513
- line = []string {"airgap-prepare.sh" }
1514
- if _ , _ , err := tc .RunCommandOnNode (1 , line ); err != nil {
1515
- t .Fatalf ("fail to prepare airgap files on worker node: %v" , err )
1516
- }
1517
- t .Logf ("%s: joining worker node to the cluster" , time .Now ().Format (time .RFC3339 ))
1518
- if _ , _ , err := tc .RunCommandOnNode (1 , strings .Split (workerCommand , " " )); err != nil {
1519
- t .Fatalf ("fail to join worker node to the cluster: %v" , err )
1520
- }
1521
- // remove the airgap bundle and binary after joining
1522
- line = []string {"rm" , "/assets/release.airgap" }
1523
- if _ , _ , err := tc .RunCommandOnNode (1 , line ); err != nil {
1524
- t .Fatalf ("fail to remove airgap bundle on worker node: %v" , err )
1525
- }
1526
- line = []string {"rm" , "/usr/local/bin/embedded-cluster" }
1527
- if _ , _ , err := tc .RunCommandOnNode (1 , line ); err != nil {
1528
- t .Fatalf ("fail to remove embedded-cluster binary on worker node: %v" , err )
1529
- }
1457
+ // join a worker
1458
+ joinWorkerNode (t , tc , 1 )
1530
1459
1531
1460
// wait for the nodes to report as ready.
1532
- t .Logf ("%s: all nodes joined, waiting for them to be ready" , time .Now ().Format (time .RFC3339 ))
1533
- stdout , _ , err = tc .RunCommandOnNode (0 , []string {"wait-for-ready-nodes.sh" , "2" })
1534
- if err != nil {
1535
- t .Log (stdout )
1536
- t .Fatalf ("fail to wait for ready nodes: %v" , err )
1537
- }
1461
+ waitForNodes (t , tc , 2 , nil )
1538
1462
1539
1463
t .Logf ("%s: checking installation state after app deployment" , time .Now ().Format (time .RFC3339 ))
1540
1464
line = []string {"check-airgap-installation-state.sh" , initialVersion , k8sVersionPrevious ()}
@@ -1655,13 +1579,13 @@ func TestMultiNodeAirgapUpgradePreviousStable(t *testing.T) {
1655
1579
if err := tc .SetupPlaywright (withEnv ); err != nil {
1656
1580
t .Fatalf ("fail to setup playwright: %v" , err )
1657
1581
}
1658
- if _ , _ , err := tc .RunPlaywrightTest ("deploy-app" ); err != nil {
1659
- t .Fatalf ("fail to run playwright test deploy-app: %v" , err )
1582
+ if _ , _ , err := tc .RunPlaywrightTest ("deploy-ec23- app" ); err != nil {
1583
+ t .Fatalf ("fail to run playwright test deploy-ec23- app: %v" , err )
1660
1584
}
1661
1585
1662
1586
// generate worker node join command.
1663
1587
t .Logf ("%s: generating a new worker token command" , time .Now ().Format (time .RFC3339 ))
1664
- stdout , stderr , err := tc .RunPlaywrightTest ("get-join-worker-command" )
1588
+ stdout , stderr , err := tc .RunPlaywrightTest ("get-ec23- join-worker-command" )
1665
1589
if err != nil {
1666
1590
t .Fatalf ("fail to generate worker join token:\n stdout: %s\n stderr: %s" , stdout , stderr )
1667
1591
}
@@ -1681,7 +1605,7 @@ func TestMultiNodeAirgapUpgradePreviousStable(t *testing.T) {
1681
1605
if _ , _ , err := tc .RunCommandOnNode (1 , strings .Split (workerCommand , " " ), withEnv ); err != nil {
1682
1606
t .Fatalf ("fail to join worker node to the cluster: %v" , err )
1683
1607
}
1684
- // remove the airgap bundle and binary after joining
1608
+ // remove artifacts after joining to save space
1685
1609
line = []string {"rm" , "/assets/release.airgap" }
1686
1610
if _ , _ , err := tc .RunCommandOnNode (1 , line ); err != nil {
1687
1611
t .Fatalf ("fail to remove airgap bundle on worker node: %v" , err )
@@ -1692,16 +1616,11 @@ func TestMultiNodeAirgapUpgradePreviousStable(t *testing.T) {
1692
1616
}
1693
1617
line = []string {"rm" , "/var/lib/ec/bin/embedded-cluster" }
1694
1618
if _ , _ , err := tc .RunCommandOnNode (1 , line ); err != nil {
1695
- t .Fatalf ("fail to remove embedded-cluster binary on node %s: %v" , tc .Nodes [1 ], err )
1619
+ t .Fatalf ("fail to remove embedded-cluster binary on node %s: %v" , tc .Nodes [0 ], err )
1696
1620
}
1697
1621
1698
1622
// wait for the nodes to report as ready.
1699
- t .Logf ("%s: all nodes joined, waiting for them to be ready" , time .Now ().Format (time .RFC3339 ))
1700
- stdout , _ , err = tc .RunCommandOnNode (0 , []string {"wait-for-ready-nodes.sh" , "2" }, withEnv )
1701
- if err != nil {
1702
- t .Log (stdout )
1703
- t .Fatalf ("fail to wait for ready nodes: %v" , err )
1704
- }
1623
+ waitForNodes (t , tc , 2 , withEnv )
1705
1624
1706
1625
t .Logf ("%s: checking installation state after app deployment" , time .Now ().Format (time .RFC3339 ))
1707
1626
line = []string {"check-airgap-installation-state.sh" , initialVersion , k8sVersionPreviousStable ()}
@@ -1926,15 +1845,15 @@ func TestMultiNodeAirgapHAInstallation(t *testing.T) {
1926
1845
}
1927
1846
1928
1847
// join a worker
1929
- joinWorkerNodeWithOptions (t , tc , 1 , joinOptions { isAirgap : true } )
1848
+ joinWorkerNode (t , tc , 1 )
1930
1849
checkWorkerProfile (t , tc , 1 )
1931
1850
1932
1851
// join a controller
1933
- joinControllerNodeWithOptions (t , tc , 2 , joinOptions { isAirgap : true } )
1852
+ joinControllerNode (t , tc , 2 )
1934
1853
checkWorkerProfile (t , tc , 2 )
1935
1854
1936
1855
// join another controller in HA mode
1937
- joinControllerNodeWithOptions (t , tc , 3 , joinOptions {isAirgap : true , isHA : true })
1856
+ joinControllerNodeWithOptions (t , tc , 3 , joinOptions {isHA : true })
1938
1857
checkWorkerProfile (t , tc , 3 )
1939
1858
1940
1859
// wait for the nodes to report as ready.
@@ -2198,48 +2117,48 @@ func TestFiveNodesAirgapUpgrade(t *testing.T) {
2198
2117
2199
2118
// generate controller node join command.
2200
2119
t .Logf ("%s: generating a new controller token command" , time .Now ().Format (time .RFC3339 ))
2201
- stdout , stderr , err := tc .RunPlaywrightTest ("get-join-controller-command " )
2120
+ stdout , stderr , err := tc .RunPlaywrightTest ("get-join-controller-commands " )
2202
2121
if err != nil {
2203
2122
t .Fatalf ("fail to generate controller join token:\n stdout: %s\n stderr: %s" , stdout , stderr )
2204
2123
}
2205
- controllerCommand , err := findJoinCommandInOutput (stdout )
2124
+ controllerCommands , err := findJoinCommandsInOutput (stdout )
2206
2125
if err != nil {
2207
2126
t .Fatalf ("fail to find the join command in the output: %v" , err )
2208
2127
}
2209
- t .Log ("controller join token command :" , controllerCommand )
2128
+ t .Log ("controller join commands :" , controllerCommands )
2210
2129
2211
2130
// bypass ha prompt
2212
- controllerCommand = strings .Replace (controllerCommand , "join" , "join --no-ha" , 1 )
2131
+ for i := range controllerCommands {
2132
+ controllerCommands [i ] = strings .Replace (controllerCommands [i ], "join" , "join --no-ha" , 1 )
2133
+ }
2213
2134
2214
- // join the controller nodes
2215
- joinCommandsSequence := [][]string {
2216
- {"rm" , "/assets/ec-release-upgrade.tgz" },
2217
- {"airgap-prepare.sh" },
2218
- strings .Split (controllerCommand , " " ),
2219
- {"rm" , "/assets/release.airgap" },
2220
- {"rm" , "/usr/local/bin/embedded-cluster" },
2135
+ joinCommands := [][]string {}
2136
+ for _ , command := range controllerCommands {
2137
+ joinCommands = append (joinCommands , []string {command })
2221
2138
}
2139
+
2140
+ // join the controller nodes
2222
2141
runInParallelOffset (t , time .Second * 30 ,
2223
2142
func (t * testing.T ) error {
2224
- err := tc .RunCommandsOnNode (1 , joinCommandsSequence )
2143
+ err := tc .RunCommandsOnNode (1 , joinCommands )
2225
2144
if err != nil {
2226
2145
return fmt .Errorf ("unable to join node 1: %w" , err )
2227
2146
}
2228
2147
return nil
2229
2148
}, func (t * testing.T ) error {
2230
- err := tc .RunCommandsOnNode (2 , joinCommandsSequence )
2149
+ err := tc .RunCommandsOnNode (2 , joinCommands )
2231
2150
if err != nil {
2232
2151
return fmt .Errorf ("unable to join node 2: %w" , err )
2233
2152
}
2234
2153
return nil
2235
2154
}, func (t * testing.T ) error {
2236
- err := tc .RunCommandsOnNode (3 , joinCommandsSequence )
2155
+ err := tc .RunCommandsOnNode (3 , joinCommands )
2237
2156
if err != nil {
2238
2157
return fmt .Errorf ("unable to join node 3: %w" , err )
2239
2158
}
2240
2159
return nil
2241
2160
}, func (t * testing.T ) error {
2242
- err := tc .RunCommandsOnNode (4 , joinCommandsSequence )
2161
+ err := tc .RunCommandsOnNode (4 , joinCommands )
2243
2162
if err != nil {
2244
2163
return fmt .Errorf ("unable to join node 4: %w" , err )
2245
2164
}
0 commit comments