@@ -27,16 +27,19 @@ import (
2727 "strings"
2828 "testing"
2929
30- "github.com/dchest/uniuri"
31-
3230 api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1alpha"
3331 kubeArangoClient "github.com/arangodb/kube-arangodb/pkg/client"
3432 "github.com/arangodb/kube-arangodb/pkg/util"
33+ "github.com/dchest/uniuri"
3534)
3635
36+ func TestUpgradeClusterRocksDB33pto34p (t * testing.T ) {
37+ upgradeSubTest (t , api .DeploymentModeCluster , api .StorageEngineRocksDB , "arangodb/arangodb-preview:3.3" , "arangodb/arangodb-preview:3.4" )
38+ }
39+
3740// test upgrade single server mmfiles 3.2 -> 3.3
3841func TestUpgradeSingleMMFiles32to33 (t * testing.T ) {
39- upgradeSubTest (t , api .DeploymentModeSingle , api .StorageEngineMMFiles , "3.2.16" , "3.3.13" )
42+ upgradeSubTest (t , api .DeploymentModeSingle , api .StorageEngineMMFiles , "arangodb/arangodb: 3.2.16" , "arangodb/arangodb: 3.3.13" )
4043}
4144
4245// // test upgrade single server rocksdb 3.3 -> 3.4
@@ -64,34 +67,34 @@ func TestUpgradeClusterRocksDB32to33(t *testing.T) {
6467// upgradeSubTest(t, api.DeploymentModeCluster, api.StorageEngineRocksDB, "3.3.13", "3.4.0")
6568// }
6669
67- // test downgrade single server mmfiles 3.3.13 -> 3.3.12
68- func TestDowngradeSingleMMFiles333to332 (t * testing.T ) {
69- upgradeSubTest (t , api .DeploymentModeSingle , api .StorageEngineMMFiles , "3.3.13 " , "3.3.12 " )
70+ // test downgrade single server mmfiles 3.3.17 -> 3.3.16
71+ func TestDowngradeSingleMMFiles3317to3316 (t * testing.T ) {
72+ upgradeSubTest (t , api .DeploymentModeSingle , api .StorageEngineMMFiles , "arangodb/arangodb: 3.3.16 " , "arangodb/arangodb: 3.3.17 " )
7073}
7174
72- // test downgrade ActiveFailover server rocksdb 3.3.13 -> 3.3.12
73- func TestDowngradeActiveFailoverRocksDB333to332 (t * testing.T ) {
74- upgradeSubTest (t , api .DeploymentModeActiveFailover , api .StorageEngineRocksDB , "3.3.13 " , "3.3.12 " )
75+ // test downgrade ActiveFailover server rocksdb 3.3.17 -> 3.3.16
76+ func TestDowngradeActiveFailoverRocksDB3317to3316 (t * testing.T ) {
77+ upgradeSubTest (t , api .DeploymentModeActiveFailover , api .StorageEngineRocksDB , "arangodb/arangodb: 3.3.16 " , "arangodb/arangodb: 3.3.17 " )
7578}
7679
77- // test downgrade cluster rocksdb 3.3.13 -> 3.3.12
78- func TestDowngradeClusterRocksDB332to332 (t * testing.T ) {
79- upgradeSubTest (t , api .DeploymentModeCluster , api .StorageEngineRocksDB , "3.3.13 " , "3.3.12 " )
80+ // test downgrade cluster rocksdb 3.3.17 -> 3.3.16
81+ func TestDowngradeClusterRocksDB3317to3316 (t * testing.T ) {
82+ upgradeSubTest (t , api .DeploymentModeCluster , api .StorageEngineRocksDB , "arangodb/arangodb: 3.3.16 " , "arangodb/arangodb: 3.3.17 " )
8083}
8184
82- func upgradeSubTest (t * testing.T , mode api.DeploymentMode , engine api.StorageEngine , fromVersion , toVersion string ) error {
85+ func upgradeSubTest (t * testing.T , mode api.DeploymentMode , engine api.StorageEngine , fromImage , toImage string ) error {
8386 // check environment
8487 longOrSkip (t )
8588
8689 ns := getNamespace (t )
8790 kubecli := mustNewKubeClient (t )
8891 c := kubeArangoClient .MustNewInCluster ()
8992
90- depl := newDeployment (strings .Replace (fmt .Sprintf ("tu-%s-%s-%st%s-%s " , mode [:2 ], engine [:2 ], fromVersion , toVersion , uniuri .NewLen (4 )), "." , "" , - 1 ))
93+ depl := newDeployment (strings .Replace (fmt .Sprintf ("tu-%s-%s-%s " , mode [:2 ], engine [:2 ], uniuri .NewLen (4 )), "." , "" , - 1 ))
9194 depl .Spec .Mode = api .NewMode (mode )
9295 depl .Spec .StorageEngine = api .NewStorageEngine (engine )
9396 depl .Spec .TLS = api.TLSSpec {} // should auto-generate cert
94- depl .Spec .Image = util .NewString ("arangodb/arangodb:" + fromVersion )
97+ depl .Spec .Image = util .NewString (fromImage )
9598 depl .Spec .SetDefaults (depl .GetName ()) // this must be last
9699
97100 // Create deployment
@@ -118,19 +121,25 @@ func upgradeSubTest(t *testing.T, mode api.DeploymentMode, engine api.StorageEng
118121 // Try to change image version
119122 deployment , err = updateDeployment (c , depl .GetName (), ns ,
120123 func (spec * api.DeploymentSpec ) {
121- spec .Image = util .NewString ("arangodb/arangodb:" + toVersion )
124+ spec .Image = util .NewString (toImage )
122125 })
123126 if err != nil {
124- t .Fatalf ("Failed to upgrade the Image from version : " + fromVersion + " to version: " + toVersion )
127+ t .Fatalf ("Failed to upgrade the Image from version : " + fromImage + " to version: " + toImage )
128+ } else {
129+ t .Log ("Updated deployment" )
125130 }
126131
127132 deployment , err = waitUntilDeployment (c , depl .GetName (), ns , deploymentIsReady ())
128133 if err != nil {
129134 t .Fatalf ("Deployment not running in time: %v" , err )
135+ } else {
136+ t .Log ("Deployment running" )
130137 }
131138
132- if err := waitUntilArangoDeploymentHealthy (deployment , DBClient , kubecli , toVersion ); err != nil {
139+ if err := waitUntilArangoDeploymentHealthy (deployment , DBClient , kubecli , toImage ); err != nil {
133140 t .Fatalf ("Deployment not healthy in time: %v" , err )
141+ } else {
142+ t .Log ("Deployment healthy" )
134143 }
135144
136145 // Cleanup
0 commit comments