@@ -454,8 +454,8 @@ func TestSingleNodeUpgradePreviousStable(t *testing.T) {
454454 version : initialVersion ,
455455 })
456456
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 )
459459 }
460460
461461 checkInstallationStateWithOptions (t , tc , installationStateOptions {
@@ -468,7 +468,7 @@ func TestSingleNodeUpgradePreviousStable(t *testing.T) {
468468
469469 t .Logf ("%s: upgrading cluster" , time .Now ().Format (time .RFC3339 ))
470470 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 )
472472 }
473473
474474 t .Logf ("%s: re-installing kots cli on node 0" , time .Now ().Format (time .RFC3339 ))
@@ -486,7 +486,7 @@ func TestSingleNodeUpgradePreviousStable(t *testing.T) {
486486
487487 t .Logf ("%s: upgrading cluster a second time" , time .Now ().Format (time .RFC3339 ))
488488 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 )
490490 }
491491
492492 t .Logf ("%s: checking installation state after second upgrade" , time .Now ().Format (time .RFC3339 ))
@@ -585,8 +585,8 @@ func TestUpgradeEC18FromReplicatedApp(t *testing.T) {
585585 if err := tc .SetupPlaywright (withEnv ); err != nil {
586586 t .Fatalf ("fail to setup playwright: %v" , err )
587587 }
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 )
590590 }
591591
592592 t .Logf ("%s: generating a new worker token command" , time .Now ().Format (time .RFC3339 ))
@@ -1138,8 +1138,8 @@ func TestAirgapUpgradeFromEC18(t *testing.T) {
11381138 if err := tc .SetupPlaywright (withEnv ); err != nil {
11391139 t .Fatalf ("fail to setup playwright: %v" , err )
11401140 }
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 )
11431143 }
11441144
11451145 // generate worker node join command.
@@ -1336,58 +1336,16 @@ func TestMultiNodeAirgapUpgradeSameK0s(t *testing.T) {
13361336 if _ , _ , err := tc .RunCommandOnNode (0 , line ); err != nil {
13371337 t .Fatalf ("fail to remove embedded-cluster binary on node %s: %v" , tc .Nodes [0 ], err )
13381338 }
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- }
13431339
13441340 if _ , _ , err := tc .SetupPlaywrightAndRunTest ("deploy-app" ); err != nil {
13451341 t .Fatalf ("fail to run playwright test deploy-app: %v" , err )
13461342 }
13471343
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 )
13831346
13841347 // 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 )
13911349
13921350 t .Logf ("%s: checking installation state after app deployment" , time .Now ().Format (time .RFC3339 ))
13931351 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) {
14961454 t .Fatalf ("fail to run playwright test deploy-app: %v" , err )
14971455 }
14981456
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 )
15301459
15311460 // 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 )
15381462
15391463 t .Logf ("%s: checking installation state after app deployment" , time .Now ().Format (time .RFC3339 ))
15401464 line = []string {"check-airgap-installation-state.sh" , initialVersion , k8sVersionPrevious ()}
@@ -1655,13 +1579,13 @@ func TestMultiNodeAirgapUpgradePreviousStable(t *testing.T) {
16551579 if err := tc .SetupPlaywright (withEnv ); err != nil {
16561580 t .Fatalf ("fail to setup playwright: %v" , err )
16571581 }
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 )
16601584 }
16611585
16621586 // generate worker node join command.
16631587 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" )
16651589 if err != nil {
16661590 t .Fatalf ("fail to generate worker join token:\n stdout: %s\n stderr: %s" , stdout , stderr )
16671591 }
@@ -1681,7 +1605,7 @@ func TestMultiNodeAirgapUpgradePreviousStable(t *testing.T) {
16811605 if _ , _ , err := tc .RunCommandOnNode (1 , strings .Split (workerCommand , " " ), withEnv ); err != nil {
16821606 t .Fatalf ("fail to join worker node to the cluster: %v" , err )
16831607 }
1684- // remove the airgap bundle and binary after joining
1608+ // remove artifacts after joining to save space
16851609 line = []string {"rm" , "/assets/release.airgap" }
16861610 if _ , _ , err := tc .RunCommandOnNode (1 , line ); err != nil {
16871611 t .Fatalf ("fail to remove airgap bundle on worker node: %v" , err )
@@ -1692,16 +1616,11 @@ func TestMultiNodeAirgapUpgradePreviousStable(t *testing.T) {
16921616 }
16931617 line = []string {"rm" , "/var/lib/ec/bin/embedded-cluster" }
16941618 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 )
16961620 }
16971621
16981622 // 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 )
17051624
17061625 t .Logf ("%s: checking installation state after app deployment" , time .Now ().Format (time .RFC3339 ))
17071626 line = []string {"check-airgap-installation-state.sh" , initialVersion , k8sVersionPreviousStable ()}
@@ -1926,15 +1845,15 @@ func TestMultiNodeAirgapHAInstallation(t *testing.T) {
19261845 }
19271846
19281847 // join a worker
1929- joinWorkerNodeWithOptions (t , tc , 1 , joinOptions { isAirgap : true } )
1848+ joinWorkerNode (t , tc , 1 )
19301849 checkWorkerProfile (t , tc , 1 )
19311850
19321851 // join a controller
1933- joinControllerNodeWithOptions (t , tc , 2 , joinOptions { isAirgap : true } )
1852+ joinControllerNode (t , tc , 2 )
19341853 checkWorkerProfile (t , tc , 2 )
19351854
19361855 // join another controller in HA mode
1937- joinControllerNodeWithOptions (t , tc , 3 , joinOptions {isAirgap : true , isHA : true })
1856+ joinControllerNodeWithOptions (t , tc , 3 , joinOptions {isHA : true })
19381857 checkWorkerProfile (t , tc , 3 )
19391858
19401859 // wait for the nodes to report as ready.
@@ -2198,48 +2117,48 @@ func TestFiveNodesAirgapUpgrade(t *testing.T) {
21982117
21992118 // generate controller node join command.
22002119 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 " )
22022121 if err != nil {
22032122 t .Fatalf ("fail to generate controller join token:\n stdout: %s\n stderr: %s" , stdout , stderr )
22042123 }
2205- controllerCommand , err := findJoinCommandInOutput (stdout )
2124+ controllerCommands , err := findJoinCommandsInOutput (stdout )
22062125 if err != nil {
22072126 t .Fatalf ("fail to find the join command in the output: %v" , err )
22082127 }
2209- t .Log ("controller join token command :" , controllerCommand )
2128+ t .Log ("controller join commands :" , controllerCommands )
22102129
22112130 // 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+ }
22132134
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 })
22212138 }
2139+
2140+ // join the controller nodes
22222141 runInParallelOffset (t , time .Second * 30 ,
22232142 func (t * testing.T ) error {
2224- err := tc .RunCommandsOnNode (1 , joinCommandsSequence )
2143+ err := tc .RunCommandsOnNode (1 , joinCommands )
22252144 if err != nil {
22262145 return fmt .Errorf ("unable to join node 1: %w" , err )
22272146 }
22282147 return nil
22292148 }, func (t * testing.T ) error {
2230- err := tc .RunCommandsOnNode (2 , joinCommandsSequence )
2149+ err := tc .RunCommandsOnNode (2 , joinCommands )
22312150 if err != nil {
22322151 return fmt .Errorf ("unable to join node 2: %w" , err )
22332152 }
22342153 return nil
22352154 }, func (t * testing.T ) error {
2236- err := tc .RunCommandsOnNode (3 , joinCommandsSequence )
2155+ err := tc .RunCommandsOnNode (3 , joinCommands )
22372156 if err != nil {
22382157 return fmt .Errorf ("unable to join node 3: %w" , err )
22392158 }
22402159 return nil
22412160 }, func (t * testing.T ) error {
2242- err := tc .RunCommandsOnNode (4 , joinCommandsSequence )
2161+ err := tc .RunCommandsOnNode (4 , joinCommands )
22432162 if err != nil {
22442163 return fmt .Errorf ("unable to join node 4: %w" , err )
22452164 }
0 commit comments