@@ -101,3 +101,65 @@ func deploymentSubTest(t *testing.T, mode api.DeploymentMode, engine api.Storage
101
101
102
102
return nil
103
103
}
104
+
105
+ // test setup containing multiple deployments
106
+ func TestMultiDeployment1 (t * testing.T ) {
107
+ longOrSkip (t )
108
+
109
+ k8sNameSpace := getNamespace (t )
110
+ k8sClient := mustNewKubeClient (t )
111
+ deploymentClient := kubeArangoClient .MustNewInCluster ()
112
+
113
+ // Prepare deployment config
114
+ deploymentTemplate1 := newDeployment ("test-multidep1-1-" + uniuri .NewLen (4 ))
115
+ deploymentTemplate1 .Spec .Mode = api .NewMode (api .DeploymentModeCluster )
116
+ deploymentTemplate1 .Spec .StorageEngine = api .NewStorageEngine (api .StorageEngineRocksDB )
117
+ deploymentTemplate1 .Spec .TLS = api.TLSSpec {} // should auto-generate cert
118
+ deploymentTemplate1 .Spec .SetDefaults (deploymentTemplate .GetName ()) // this must be last
119
+
120
+ deploymentTemplate2 := newDeployment ("test-multidep1-2-" + uniuri .NewLen (4 ))
121
+ deploymentTemplate2 .Spec .Mode = api .NewMode (api .DeploymentModeSingle )
122
+ deploymentTemplate2 .Spec .StorageEngine = api .NewStorageEngine (api .StorageEngineMMFiles )
123
+ deploymentTemplate2 .Spec .TLS = api.TLSSpec {} // should auto-generate cert
124
+ deploymentTemplate2 .Spec .SetDefaults (deploymentTemplate .GetName ()) // this must be last
125
+
126
+ // Create deployment
127
+ deployment1 , err := deploymentClient .DatabaseV1alpha ().ArangoDeployments (k8sNameSpace ).Create (deploymentTemplate1 )
128
+ if err != nil {
129
+ t .Fatalf ("Create deployment failed: %v" , err )
130
+ }
131
+
132
+ deployment2 , err := deploymentClient .DatabaseV2alpha ().ArangoDeployments (k8sNameSpace ).Create (deploymentTemplate2 )
133
+ if err != nil {
134
+ t .Fatalf ("Create deployment failed: %v" , err )
135
+ }
136
+
137
+ // Wait for deployment to be ready
138
+ deployment1 , err = waitUntilDeployment (deploymentClient , deploymentTemplate .GetName (), k8sNameSpace , deploymentIsReady ())
139
+ if err != nil {
140
+ t .Fatalf ("Deployment not running in time: %v" , err )
141
+ }
142
+
143
+ deployment2 , err = waitUntilDeployment (deploymentClient , deploymentTemplate .GetName (), k8sNameSpace , deploymentIsReady ())
144
+ if err != nil {
145
+ t .Fatalf ("Deployment not running in time: %v" , err )
146
+ }
147
+
148
+ // Create a database client
149
+ ctx := context .Background ()
150
+
151
+ DBClient1 := mustNewArangodDatabaseClient (ctx , k8sClient , deployment1 , t )
152
+ if err := waitUntilArangoDeploymentHealthy (deployment1 , DBClient1 , k8sClient , "" ); err != nil {
153
+ t .Fatalf ("Deployment not healthy in time: %v" , err )
154
+ }
155
+ DBClient2 := mustNewArangodDatabaseClient (ctx , k8sClient , deployment2 , t )
156
+ if err := waitUntilArangoDeploymentHealthy (deployment2 , DBClient2 , k8sClient , "" ); err != nil {
157
+ t .Fatalf ("Deployment not healthy in time: %v" , err )
158
+ }
159
+
160
+ // Cleanup
161
+ removeDeployment (deploymentClient , deploymentTemplate1 .GetName (), k8sNameSpace )
162
+ removeDeployment (deploymentClient , deploymentTemplate2 .GetName (), k8sNameSpace )
163
+
164
+ return nil
165
+ }
0 commit comments