Skip to content

Commit d2442e6

Browse files
committed
Fix e2e Install Plan creation with permission
Fix #3108 Attempting to delete a CSV that is not in a terminal (e.g. Success) state fails silently (i.e. the CSV is not deleted). So, wait until the CSV is in the success state before deleting. Add logging. Signed-off-by: Todd Short <todd.short@me.com>
1 parent d70de07 commit d2442e6

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

test/e2e/installplan_e2e_test.go

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2792,10 +2792,12 @@ var _ = Describe("Install Plan", func() {
27922792
_, err := fetchCatalogSourceOnStatus(crc, mainCatalogSourceName, generatedNamespace.GetName(), catalogSourceRegistryPodSynced())
27932793
require.NoError(GinkgoT(), err)
27942794

2795+
By("Creating a Subscription")
27952796
subscriptionName := genName("sub-nginx-")
27962797
subscriptionCleanup := createSubscriptionForCatalog(crc, generatedNamespace.GetName(), subscriptionName, mainCatalogSourceName, packageName, stableChannel, "", operatorsv1alpha1.ApprovalAutomatic)
27972798
defer subscriptionCleanup()
27982799

2800+
By("Attempt to get Subscription")
27992801
subscription, err := fetchSubscription(crc, generatedNamespace.GetName(), subscriptionName, subscriptionHasInstallPlanChecker())
28002802
require.NoError(GinkgoT(), err)
28012803
require.NotNil(GinkgoT(), subscription)
@@ -2867,6 +2869,10 @@ var _ = Describe("Install Plan", func() {
28672869
By("Should have removed every matching step")
28682870
require.Equal(GinkgoT(), 0, len(expectedSteps), "Actual resource steps do not match expected: %#v", expectedSteps)
28692871

2872+
By("Waiting on CSV to succeed before deleting")
2873+
_, err = fetchCSV(crc, generatedNamespace.GetName(), stableCSVName, csvSucceededChecker)
2874+
require.NoError(GinkgoT(), err)
2875+
28702876
GinkgoT().Logf("deleting csv %s/%s", generatedNamespace.GetName(), stableCSVName)
28712877
By("Explicitly delete the CSV")
28722878
err = crc.OperatorsV1alpha1().ClusterServiceVersions(generatedNamespace.GetName()).Delete(context.Background(), stableCSVName, metav1.DeleteOptions{})
@@ -2875,14 +2881,24 @@ var _ = Describe("Install Plan", func() {
28752881
err = nil
28762882
}
28772883
require.NoError(GinkgoT(), err)
2884+
By("Waiting for the CSV to delete")
2885+
err = waitForCsvToDelete(generatedNamespace.GetName(), stableCSVName, crc)
2886+
require.NoError(GinkgoT(), err)
28782887

2888+
nCrs := 0
2889+
nCrbs := 0
2890+
By("Waiting for CRBs and CRs and SAs to delete")
28792891
Eventually(func() bool {
28802892
crbs, err := c.KubernetesInterface().RbacV1().ClusterRoleBindings().List(context.Background(), metav1.ListOptions{LabelSelector: fmt.Sprintf("%v=%v", ownerutil.OwnerKey, stableCSVName)})
28812893
if err != nil {
28822894
GinkgoT().Logf("error getting crbs: %v", err)
28832895
return false
28842896
}
2885-
if len(crbs.Items) != 0 {
2897+
if n := len(crbs.Items); n != 0 {
2898+
if n != nCrbs {
2899+
GinkgoT().Logf("crbs remaining: %v", n)
2900+
nCrbs = n
2901+
}
28862902
return false
28872903
}
28882904

@@ -2891,7 +2907,11 @@ var _ = Describe("Install Plan", func() {
28912907
GinkgoT().Logf("error getting crs: %v", err)
28922908
return false
28932909
}
2894-
if len(crs.Items) != 0 {
2910+
if n := len(crs.Items); n != 0 {
2911+
if n != nCrs {
2912+
GinkgoT().Logf("crs remaining: %v", n)
2913+
nCrs = n
2914+
}
28952915
return false
28962916
}
28972917

0 commit comments

Comments
 (0)