mirror of
https://github.com/mariadb-operator/mariadb-operator.git
synced 2026-01-22 09:59:06 +00:00
114 lines
3.3 KiB
Go
114 lines
3.3 KiB
Go
package controller
|
|
|
|
import (
|
|
mariadbv1alpha1 "github.com/mariadb-operator/mariadb-operator/v25/api/v1alpha1"
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
"k8s.io/apimachinery/pkg/types"
|
|
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
|
|
)
|
|
|
|
var _ = Describe("Database", Label("basic"), func() {
|
|
BeforeEach(func() {
|
|
By("Waiting for MariaDB to be ready")
|
|
expectMariadbReady(testCtx, k8sClient, testMdbkey)
|
|
})
|
|
|
|
It("should reconcile", func() {
|
|
By("Creating a Database")
|
|
databaseKey := types.NamespacedName{
|
|
Name: "database-create-test",
|
|
Namespace: testNamespace,
|
|
}
|
|
database := mariadbv1alpha1.Database{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: databaseKey.Name,
|
|
Namespace: databaseKey.Namespace,
|
|
},
|
|
Spec: mariadbv1alpha1.DatabaseSpec{
|
|
MariaDBRef: mariadbv1alpha1.MariaDBRef{
|
|
ObjectReference: mariadbv1alpha1.ObjectReference{
|
|
Name: testMdbkey.Name,
|
|
},
|
|
WaitForIt: true,
|
|
},
|
|
CharacterSet: "utf8",
|
|
Collate: "utf8_general_ci",
|
|
},
|
|
}
|
|
Expect(k8sClient.Create(testCtx, &database)).To(Succeed())
|
|
DeferCleanup(func() {
|
|
Expect(k8sClient.Delete(testCtx, &database)).To(Succeed())
|
|
})
|
|
|
|
By("Expecting Database to be ready eventually")
|
|
Eventually(func() bool {
|
|
if err := k8sClient.Get(testCtx, databaseKey, &database); err != nil {
|
|
return false
|
|
}
|
|
return database.IsReady()
|
|
}, testTimeout, testInterval).Should(BeTrue())
|
|
|
|
By("Expecting Database to eventually have finalizer")
|
|
Eventually(func() bool {
|
|
if err := k8sClient.Get(testCtx, databaseKey, &database); err != nil {
|
|
return false
|
|
}
|
|
return controllerutil.ContainsFinalizer(&database, databaseFinalizerName)
|
|
}, testTimeout, testInterval).Should(BeTrue())
|
|
})
|
|
})
|
|
|
|
var _ = Describe("Database on external MariaDB", func() {
|
|
BeforeEach(func() {
|
|
By("Waiting for External MariaDB to be ready")
|
|
expectExternalMariadbReady(testCtx, k8sClient, testEMdbkey)
|
|
})
|
|
|
|
It("should reconcile", func() {
|
|
By("Creating a Database")
|
|
databaseKey := types.NamespacedName{
|
|
Name: "database-create-test",
|
|
Namespace: testNamespace,
|
|
}
|
|
database := mariadbv1alpha1.Database{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: databaseKey.Name,
|
|
Namespace: databaseKey.Namespace,
|
|
},
|
|
Spec: mariadbv1alpha1.DatabaseSpec{
|
|
MariaDBRef: mariadbv1alpha1.MariaDBRef{
|
|
ObjectReference: mariadbv1alpha1.ObjectReference{
|
|
Name: testEMdbkey.Name,
|
|
},
|
|
Kind: mariadbv1alpha1.ExternalMariaDBKind,
|
|
WaitForIt: true,
|
|
},
|
|
CharacterSet: "utf8",
|
|
Collate: "utf8_general_ci",
|
|
},
|
|
}
|
|
Expect(k8sClient.Create(testCtx, &database)).To(Succeed())
|
|
DeferCleanup(func() {
|
|
Expect(k8sClient.Delete(testCtx, &database)).To(Succeed())
|
|
})
|
|
|
|
By("Expecting Database to be ready eventually")
|
|
Eventually(func() bool {
|
|
if err := k8sClient.Get(testCtx, databaseKey, &database); err != nil {
|
|
return false
|
|
}
|
|
return database.IsReady()
|
|
}, testTimeout, testInterval).Should(BeTrue())
|
|
|
|
By("Expecting Database to eventually have finalizer")
|
|
Eventually(func() bool {
|
|
if err := k8sClient.Get(testCtx, databaseKey, &database); err != nil {
|
|
return false
|
|
}
|
|
return controllerutil.ContainsFinalizer(&database, databaseFinalizerName)
|
|
}, testTimeout, testInterval).Should(BeTrue())
|
|
})
|
|
})
|