More BackupConf tests
This commit is contained in:
parent
8509cf8d2f
commit
1dfd0d472b
@ -4,14 +4,17 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
//"k8s.io/apimachinery/pkg/types"
|
//"k8s.io/apimachinery/pkg/types"
|
||||||
//"reflect"
|
//"reflect"
|
||||||
|
//"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
. "github.com/onsi/ginkgo"
|
. "github.com/onsi/ginkgo"
|
||||||
. "github.com/onsi/gomega"
|
. "github.com/onsi/gomega"
|
||||||
//batchv1 "k8s.io/api/batch/v1"
|
//batchv1 "k8s.io/api/batch/v1"
|
||||||
formolv1alpha1 "github.com/desmo999r/formol/api/v1alpha1"
|
formolv1alpha1 "github.com/desmo999r/formol/api/v1alpha1"
|
||||||
|
appsv1 "k8s.io/api/apps/v1"
|
||||||
batchv1beta1 "k8s.io/api/batch/v1beta1"
|
batchv1beta1 "k8s.io/api/batch/v1beta1"
|
||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
|
//"k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
)
|
)
|
||||||
@ -21,16 +24,45 @@ var _ = Describe("Setup the environment", func() {
|
|||||||
BackupConfName = "test-backupconf"
|
BackupConfName = "test-backupconf"
|
||||||
BackupConfNamespace = "test-backupconf-namespace"
|
BackupConfNamespace = "test-backupconf-namespace"
|
||||||
RepoName = "test-repo"
|
RepoName = "test-repo"
|
||||||
|
DeploymentName = "test-deployment"
|
||||||
timeout = time.Second * 10
|
timeout = time.Second * 10
|
||||||
interval = time.Millisecond * 250
|
interval = time.Millisecond * 250
|
||||||
)
|
)
|
||||||
var (
|
var (
|
||||||
|
key = types.NamespacedName{
|
||||||
|
Name: BackupConfName,
|
||||||
|
Namespace: BackupConfNamespace,
|
||||||
|
}
|
||||||
ctx = context.Background()
|
ctx = context.Background()
|
||||||
namespace = &corev1.Namespace{
|
namespace = &corev1.Namespace{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: BackupConfNamespace,
|
Name: BackupConfNamespace,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
deployment = &appsv1.Deployment{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: DeploymentName,
|
||||||
|
Namespace: BackupConfNamespace,
|
||||||
|
},
|
||||||
|
Spec: appsv1.DeploymentSpec{
|
||||||
|
Selector: &metav1.LabelSelector{
|
||||||
|
MatchLabels: map[string]string{"app": "test-deployment"},
|
||||||
|
},
|
||||||
|
Template: corev1.PodTemplateSpec{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Labels: map[string]string{"app": "test-deployment"},
|
||||||
|
},
|
||||||
|
Spec: corev1.PodSpec{
|
||||||
|
Containers: []corev1.Container{
|
||||||
|
corev1.Container{
|
||||||
|
Name: "test-container",
|
||||||
|
Image: "test-image",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
sa = &corev1.ServiceAccount{
|
sa = &corev1.ServiceAccount{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "default",
|
Name: "default",
|
||||||
@ -74,7 +106,7 @@ var _ = Describe("Setup the environment", func() {
|
|||||||
Targets: []formolv1alpha1.Target{
|
Targets: []formolv1alpha1.Target{
|
||||||
formolv1alpha1.Target{
|
formolv1alpha1.Target{
|
||||||
Kind: "Deployment",
|
Kind: "Deployment",
|
||||||
Name: "test-deployment",
|
Name: DeploymentName,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -86,18 +118,18 @@ var _ = Describe("Setup the environment", func() {
|
|||||||
AfterEach(func() {
|
AfterEach(func() {
|
||||||
})
|
})
|
||||||
|
|
||||||
Context("Creating a backupconf", func() {
|
Context("Testing backupconf", func() {
|
||||||
It("Should also create a CronJob", func() {
|
It("Requires initialisation", func() {
|
||||||
Expect(k8sClient.Create(ctx, namespace)).Should(Succeed())
|
Expect(k8sClient.Create(ctx, namespace)).Should(Succeed())
|
||||||
Expect(k8sClient.Create(ctx, sa)).Should(Succeed())
|
Expect(k8sClient.Create(ctx, sa)).Should(Succeed())
|
||||||
Expect(k8sClient.Create(ctx, secret)).Should(Succeed())
|
Expect(k8sClient.Create(ctx, secret)).Should(Succeed())
|
||||||
Expect(k8sClient.Create(ctx, repo)).Should(Succeed())
|
Expect(k8sClient.Create(ctx, repo)).Should(Succeed())
|
||||||
|
Expect(k8sClient.Create(ctx, deployment)).Should(Succeed())
|
||||||
|
})
|
||||||
|
Context("Creating a backupconf", func() {
|
||||||
|
It("Requires initialisation", func() {
|
||||||
Expect(k8sClient.Create(ctx, backupConf)).Should(Succeed())
|
Expect(k8sClient.Create(ctx, backupConf)).Should(Succeed())
|
||||||
realBackupConf := &formolv1alpha1.BackupConfiguration{}
|
realBackupConf := &formolv1alpha1.BackupConfiguration{}
|
||||||
key := types.NamespacedName{
|
|
||||||
Name: BackupConfName,
|
|
||||||
Namespace: BackupConfNamespace,
|
|
||||||
}
|
|
||||||
Eventually(func() bool {
|
Eventually(func() bool {
|
||||||
err := k8sClient.Get(ctx, key, realBackupConf)
|
err := k8sClient.Get(ctx, key, realBackupConf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -106,7 +138,8 @@ var _ = Describe("Setup the environment", func() {
|
|||||||
return true
|
return true
|
||||||
}, timeout, interval).Should(BeTrue())
|
}, timeout, interval).Should(BeTrue())
|
||||||
Expect(realBackupConf.Spec.Schedule).Should(Equal("1 * * * *"))
|
Expect(realBackupConf.Spec.Schedule).Should(Equal("1 * * * *"))
|
||||||
//Expect(realBackupConf.Spec.Suspend).Should(BeFalse())
|
})
|
||||||
|
It("Should also create a CronJob", func() {
|
||||||
cronJob := &batchv1beta1.CronJob{}
|
cronJob := &batchv1beta1.CronJob{}
|
||||||
Eventually(func() bool {
|
Eventually(func() bool {
|
||||||
err := k8sClient.Get(ctx, types.NamespacedName{
|
err := k8sClient.Get(ctx, types.NamespacedName{
|
||||||
@ -120,22 +153,27 @@ var _ = Describe("Setup the environment", func() {
|
|||||||
}, timeout, interval).Should(BeTrue())
|
}, timeout, interval).Should(BeTrue())
|
||||||
Expect(cronJob.Spec.Schedule).Should(Equal("1 * * * *"))
|
Expect(cronJob.Spec.Schedule).Should(Equal("1 * * * *"))
|
||||||
})
|
})
|
||||||
|
It("Should also create a sidecar container", func() {
|
||||||
|
realDeployment := &appsv1.Deployment{}
|
||||||
|
Eventually(func() (int, error) {
|
||||||
|
err := k8sClient.Get(ctx, types.NamespacedName{
|
||||||
|
Name: DeploymentName,
|
||||||
|
Namespace: BackupConfNamespace,
|
||||||
|
}, realDeployment)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return len(realDeployment.Spec.Template.Spec.Containers), nil
|
||||||
|
}, timeout, interval).Should(Equal(2))
|
||||||
|
})
|
||||||
})
|
})
|
||||||
Context("Updating a backupconf", func() {
|
Context("Updating a backupconf", func() {
|
||||||
It("Should also update the CronJob", func() {
|
It("Should also update the CronJob", func() {
|
||||||
realBackupConf := &formolv1alpha1.BackupConfiguration{}
|
realBackupConf := &formolv1alpha1.BackupConfiguration{}
|
||||||
key := types.NamespacedName{
|
Expect(k8sClient.Get(ctx, key, realBackupConf)).Should(Succeed())
|
||||||
Name: BackupConfName,
|
|
||||||
Namespace: BackupConfNamespace,
|
|
||||||
}
|
|
||||||
Eventually(func() bool {
|
|
||||||
err := k8sClient.Get(ctx, key, realBackupConf)
|
|
||||||
if err != nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}, timeout, interval).Should(BeTrue())
|
|
||||||
realBackupConf.Spec.Schedule = "1 0 * * *"
|
realBackupConf.Spec.Schedule = "1 0 * * *"
|
||||||
|
suspend := true
|
||||||
|
realBackupConf.Spec.Suspend = &suspend
|
||||||
Expect(k8sClient.Update(ctx, realBackupConf)).Should(Succeed())
|
Expect(k8sClient.Update(ctx, realBackupConf)).Should(Succeed())
|
||||||
cronJob := &batchv1beta1.CronJob{}
|
cronJob := &batchv1beta1.CronJob{}
|
||||||
Eventually(func() (string, error) {
|
Eventually(func() (string, error) {
|
||||||
@ -148,6 +186,34 @@ var _ = Describe("Setup the environment", func() {
|
|||||||
}
|
}
|
||||||
return cronJob.Spec.Schedule, nil
|
return cronJob.Spec.Schedule, nil
|
||||||
}, timeout, interval).Should(Equal("1 0 * * *"))
|
}, timeout, interval).Should(Equal("1 0 * * *"))
|
||||||
|
Eventually(func() (bool, error) {
|
||||||
|
err := k8sClient.Get(ctx, types.NamespacedName{
|
||||||
|
Name: "backup-" + BackupConfName,
|
||||||
|
Namespace: BackupConfNamespace,
|
||||||
|
}, cronJob)
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
return *cronJob.Spec.Suspend == true, nil
|
||||||
|
}, timeout, interval).Should(BeTrue())
|
||||||
|
})
|
||||||
|
})
|
||||||
|
Context("Deleting a backupconf", func() {
|
||||||
|
It("Should also delete the sidecar container", func() {
|
||||||
|
Expect(k8sClient.Delete(ctx, backupConf)).Should(Succeed())
|
||||||
|
realDeployment := &appsv1.Deployment{}
|
||||||
|
Eventually(func() (int, error) {
|
||||||
|
err := k8sClient.Get(ctx, types.NamespacedName{
|
||||||
|
Name: DeploymentName,
|
||||||
|
Namespace: BackupConfNamespace,
|
||||||
|
}, realDeployment)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return len(realDeployment.Spec.Template.Spec.Containers), nil
|
||||||
|
}, timeout, interval).Should(Equal(1))
|
||||||
|
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user