Skip to content

Commit

Permalink
fix e2e test delete error & fix op unit test timeout error (#263)
Browse files Browse the repository at this point in the history
  • Loading branch information
hirokuni-kitahara authored Jan 21, 2021
1 parent 02c7d25 commit a93ca3b
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 50 deletions.
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,8 @@ setup-test-env:
delete-test-env:
@echo
@echo deleting test namespace
kubectl delete ns $(TEST_NS)
# $TEST_NS will be deleted in e2e test usually, so ignore not found error.
kubectl delete ns $(TEST_NS) --ignore-not-found=true
kubectl delete ns $(TEST_NS_NEW)
kubectl delete ns $(TEST_UNPROTECTED_NS)

Expand Down
93 changes: 44 additions & 49 deletions integrity-shield-operator/controllers/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ var testEnv *envtest.Environment
var scheme *runtime.Scheme
var r *IntegrityShieldReconciler
var iShieldCR *apisv1alpha1.IntegrityShield
var crBytes []byte

// Kubectl executes kubectl commands
func Kubectl(args ...string) error {
Expand Down Expand Up @@ -166,7 +167,7 @@ var _ = BeforeSuite(func(done Done) {

// create ishield cr
var defaultCR *apisv1alpha1.IntegrityShield
crBytes, err := ioutil.ReadFile(testIShieldCRPath)
crBytes, err = ioutil.ReadFile(testIShieldCRPath)
Expect(err).Should(BeNil())
err = yaml.Unmarshal(crBytes, &defaultCR)
Expect(err).Should(BeNil())
Expand All @@ -177,64 +178,16 @@ var _ = BeforeSuite(func(done Done) {
err = k8sClient.Get(ctx, types.NamespacedName{Name: defaultCR.Name, Namespace: defaultCR.Namespace}, iShieldCR)
Expect(err).Should(BeNil())

// mgr, err := ctrl.NewManager(cfg, ctrl.Options{
// Scheme: scheme,
// MetricsBindAddress: ":8080",
// Port: 9443,
// LeaderElection: false,
// LeaderElectionID: "b67154b9.integrityshield.io",
// Namespace: defaultCR.Namespace, // namespaced-scope when the value is not an empty string
// })
// Expect(err).Should(BeNil())

r = &IntegrityShieldReconciler{
Client: k8sClient,
Log: ctrl.Log.WithName("controllers").WithName("IntegrityShield"),
Scheme: scheme,
}

// err = r.SetupWithManager(mgr)
// Expect(err).Should(BeNil())

keyringSecretName := "keyring-secret"
emptyKeyring := &v1.Secret{ObjectMeta: metav1.ObjectMeta{Namespace: iShieldCR.Namespace, Name: keyringSecretName}, Data: map[string][]byte{}}
_ = k8sClient.Create(ctx, emptyKeyring)

req := reconcile.Request{
NamespacedName: types.NamespacedName{Namespace: iShieldCR.Namespace, Name: iShieldCR.Name},
}

i := 0
deployFound := &appsv1.Deployment{}
for {
_, err = r.Reconcile(req)
Expect(err).Should(BeNil())
i++

if i%10 == 0 {
fmt.Println("[DEBUG] reconcile iteration: ", i)
tmpErr := k8sClient.Get(ctx, types.NamespacedName{Name: iShieldCR.GetIShieldServerDeploymentName(), Namespace: iShieldNamespace}, deployFound)
if tmpErr == nil {

break
}
}
}
fmt.Println("[DEBUG] reconcile finished: ", i)

_ = k8sClient.Delete(ctx, iShieldCR)
time.Sleep(time.Second * 10)

var newIShieldCR *apiv1alpha1.IntegrityShield
err = yaml.Unmarshal(crBytes, &newIShieldCR)
Expect(err).Should(BeNil())
newIShieldCR.SetNamespace(iShieldNamespace)
newIShieldCR = embedRSP(newIShieldCR)
err = k8sClient.Create(ctx, newIShieldCR)
Expect(err).Should(BeNil())
iShieldCR = &apisv1alpha1.IntegrityShield{}
err = k8sClient.Get(ctx, types.NamespacedName{Name: newIShieldCR.Name, Namespace: newIShieldCR.Namespace}, iShieldCR)
Expect(err).Should(BeNil())
close(done)
}, 60)

Expand Down Expand Up @@ -278,6 +231,48 @@ func doReconcileTest(fn func(*apiv1alpha1.IntegrityShield) (ctrl.Result, error),

var _ = Describe("Test integrity shield", func() {

It("repeating Reconcile() Test", func() {
req := reconcile.Request{
NamespacedName: types.NamespacedName{Namespace: iShieldCR.Namespace, Name: iShieldCR.Name},
}

i := 0
deployFound := &appsv1.Deployment{}
for {
_, err := r.Reconcile(req)
Expect(err).Should(BeNil())
i++

if i%10 == 0 {
fmt.Println("[DEBUG] reconcile iteration: ", i)
tmpErr := k8sClient.Get(context.Background(), types.NamespacedName{Name: iShieldCR.GetIShieldServerDeploymentName(), Namespace: iShieldNamespace}, deployFound)
if tmpErr == nil {

break
}
}
}
fmt.Println("[DEBUG] reconcile finished: ", i)
})

It("IShiled CR delete & re-create Test", func() {
ctx := context.Background()
var err error
_ = k8sClient.Delete(ctx, iShieldCR)
time.Sleep(time.Second * 10)

var newIShieldCR *apiv1alpha1.IntegrityShield
err = yaml.Unmarshal(crBytes, &newIShieldCR)
Expect(err).Should(BeNil())
newIShieldCR.SetNamespace(iShieldNamespace)
newIShieldCR = embedRSP(newIShieldCR)
err = k8sClient.Create(ctx, newIShieldCR)
Expect(err).Should(BeNil())
iShieldCR = &apisv1alpha1.IntegrityShield{}
err = k8sClient.Get(ctx, types.NamespacedName{Name: newIShieldCR.Name, Namespace: newIShieldCR.Namespace}, iShieldCR)
Expect(err).Should(BeNil())
})

It("Util Func isDeploymentAvailable() Test", func() {
_ = r.isDeploymentAvailable(iShieldCR)
})
Expand Down

0 comments on commit a93ca3b

Please sign in to comment.