Skip to content

Commit

Permalink
add test containing multiple deployments
Browse files Browse the repository at this point in the history
  • Loading branch information
ObiWahn committed Mar 28, 2018
1 parent b171a93 commit 2d32098
Showing 1 changed file with 60 additions and 0 deletions.
60 changes: 60 additions & 0 deletions tests/deployments_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,3 +101,63 @@ func deploymentSubTest(t *testing.T, mode api.DeploymentMode, engine api.Storage

return nil
}

// test setup containing multiple deployments
func TestMultiDeployment1(t *testing.T) {
longOrSkip(t)

k8sNameSpace := getNamespace(t)
k8sClient := mustNewKubeClient(t)
deploymentClient := kubeArangoClient.MustNewInCluster()

// Prepare deployment config
deploymentTemplate1 := newDeployment("test-multidep1-1-" + uniuri.NewLen(4))
deploymentTemplate1.Spec.Mode = api.NewMode(api.DeploymentModeCluster)
deploymentTemplate1.Spec.StorageEngine = api.NewStorageEngine(api.StorageEngineRocksDB)
deploymentTemplate1.Spec.TLS = api.TLSSpec{} // should auto-generate cert
deploymentTemplate1.Spec.SetDefaults(deploymentTemplate1.GetName()) // this must be last

deploymentTemplate2 := newDeployment("test-multidep1-2-" + uniuri.NewLen(4))
deploymentTemplate2.Spec.Mode = api.NewMode(api.DeploymentModeSingle)
deploymentTemplate2.Spec.StorageEngine = api.NewStorageEngine(api.StorageEngineMMFiles)
deploymentTemplate2.Spec.TLS = api.TLSSpec{} // should auto-generate cert
deploymentTemplate2.Spec.SetDefaults(deploymentTemplate2.GetName()) // this must be last

// Create deployment
deployment1, err := deploymentClient.DatabaseV1alpha().ArangoDeployments(k8sNameSpace).Create(deploymentTemplate1)
if err != nil {
t.Fatalf("Create deployment failed: %v", err)
}

deployment2, err := deploymentClient.DatabaseV2alpha().ArangoDeployments(k8sNameSpace).Create(deploymentTemplate2)
if err != nil {
t.Fatalf("Create deployment failed: %v", err)
}

// Wait for deployment to be ready
deployment1, err = waitUntilDeployment(deploymentClient, deploymentTemplate1.GetName(), k8sNameSpace, deploymentIsReady())
if err != nil {
t.Fatalf("Deployment not running in time: %v", err)
}

deployment2, err = waitUntilDeployment(deploymentClient, deploymentTemplate2.GetName(), k8sNameSpace, deploymentIsReady())
if err != nil {
t.Fatalf("Deployment not running in time: %v", err)
}

// Create a database client
ctx := context.Background()

DBClient1 := mustNewArangodDatabaseClient(ctx, k8sClient, deployment1, t)
if err := waitUntilArangoDeploymentHealthy(deployment1, DBClient1, k8sClient, ""); err != nil {
t.Fatalf("Deployment not healthy in time: %v", err)
}
DBClient2 := mustNewArangodDatabaseClient(ctx, k8sClient, deployment2, t)
if err := waitUntilArangoDeploymentHealthy(deployment2, DBClient2, k8sClient, ""); err != nil {
t.Fatalf("Deployment not healthy in time: %v", err)
}

// Cleanup
removeDeployment(deploymentClient, deploymentTemplate1.GetName(), k8sNameSpace)
removeDeployment(deploymentClient, deploymentTemplate2.GetName(), k8sNameSpace)
}

0 comments on commit 2d32098

Please sign in to comment.