@@ -392,6 +392,46 @@ var _ = Describe("AtlasCluster", func() {
392392 })
393393 })
394394 })
395+
396+ Describe ("Create cluster, user, delete cluster and check secrets are removed" , func () {
397+ It ("Should Succeed" , func () {
398+ createdCluster = mdbv1 .DefaultGCPCluster (namespace .Name , createdProject .Name )
399+ By (fmt .Sprintf ("Creating the Cluster %s" , kube .ObjectKeyFromObject (createdCluster )), func () {
400+ Expect (k8sClient .Create (context .Background (), createdCluster )).ToNot (HaveOccurred ())
401+
402+ Eventually (testutil .WaitFor (k8sClient , createdCluster , status .TrueCondition (status .ReadyType ), validateClusterCreatingFunc ()),
403+ 1800 , interval ).Should (BeTrue ())
404+
405+ doCommonChecks ()
406+ checkAtlasState ()
407+ })
408+
409+ passwordSecret := buildPasswordSecret (UserPasswordSecret , DBUserPassword )
410+ Expect (k8sClient .Create (context .Background (), & passwordSecret )).To (Succeed ())
411+
412+ createdDBUser := mdbv1 .DefaultDBUser (namespace .Name , "test-db-user" , createdProject .Name ).WithPasswordSecret (UserPasswordSecret )
413+ By (fmt .Sprintf ("Creating the Database User %s" , kube .ObjectKeyFromObject (createdDBUser )), func () {
414+ Expect (k8sClient .Create (context .Background (), createdDBUser )).ToNot (HaveOccurred ())
415+
416+ Eventually (testutil .WaitFor (k8sClient , createdDBUser , status .TrueCondition (status .ReadyType )),
417+ 80 , interval ).Should (BeTrue ())
418+ })
419+
420+ By ("Removing Atlas Cluster " + createdCluster .Name , func () {
421+ Expect (k8sClient .Delete (context .Background (), createdCluster )).To (Succeed ())
422+ Eventually (checkAtlasClusterRemoved (createdProject .Status .ID , createdCluster .Spec .Name ), 600 , interval ).Should (BeTrue ())
423+ })
424+
425+ By ("Checking that Secrets got removed" , func () {
426+ secretNames := []string {kube .NormalizeIdentifier (fmt .Sprintf ("%s-%s-%s" , createdProject .Spec .Name , createdCluster .Spec .Name , createdDBUser .Spec .Username ))}
427+ Eventually (checkSecretsDontExist (namespace .Name , secretNames ), 50 , interval ).Should (BeTrue ())
428+ checkNumberOfConnectionSecrets (k8sClient , * createdProject , 0 )
429+ })
430+
431+ // prevent cleanup from failing due to cluster already deleted
432+ createdCluster = nil
433+ })
434+ })
395435})
396436
397437func validateClusterCreatingFunc () func (a mdbv1.AtlasCustomResource ) {
0 commit comments