Skip to content

Commit 0d5e171

Browse files
committed
add test containing multiple deployments
1 parent b171a93 commit 0d5e171

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

tests/deployments_test.go

+62
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,65 @@ func deploymentSubTest(t *testing.T, mode api.DeploymentMode, engine api.Storage
101101

102102
return nil
103103
}
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

Comments
 (0)