Skip to content

Commit a1e7603

Browse files
Merge pull request #833 from ecordell/fix-e2e
test(e2e): wait for deployment to exist in csv replacement test
2 parents 95910da + a6eb04b commit a1e7603

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

deploy/chart/templates/0000_50_olm_09-aggregated.clusterrole.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,8 @@ metadata:
2525
rbac.authorization.k8s.io/aggregate-to-view: "true"
2626
rules:
2727
- apiGroups: ["operators.coreos.com"]
28-
resources: ["clusterserviceversions", "catalogsources", "installplans", "subscriptions", "packagemanifests"]
28+
resources: ["clusterserviceversions", "catalogsources", "installplans", "subscriptions", "operatorgroups"]
29+
verbs: ["get", "list", "watch"]
30+
- apiGroups: ["packages.operators.coreos.com"]
31+
resources: ["packagemanifests"]
2932
verbs: ["get", "list", "watch"]

pkg/controller/operators/olm/operator.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,14 @@ func (a *Operator) handleClusterServiceVersionDeletion(obj interface{}) {
396396

397397
defer func(csv v1alpha1.ClusterServiceVersion) {
398398
logger.Debug("removing csv from queue set")
399-
a.csvQueueSet.Remove(csv.GetName(), csv.GetNamespace())
399+
if err := a.csvQueueSet.Remove(csv.GetName(), csv.GetNamespace()); err != nil {
400+
logger.WithError(err).Debug("error removing from queue")
401+
}
402+
403+
if clusterServiceVersion.IsCopied() {
404+
logger.Debug("deleted csv is copied. skipping operatorgroup requeue")
405+
return
406+
}
400407

401408
// Requeue all OperatorGroups in the namespace
402409
logger.Debug("requeueing operatorgroups in namespace")

test/e2e/csv_e2e_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,19 @@ func awaitCSV(t *testing.T, c versioned.Interface, namespace, name string, check
256256
return fetched, err
257257
}
258258

259+
func waitForDeployment(t *testing.T, c operatorclient.ClientInterface, name string) error {
260+
return wait.Poll(pollInterval, pollDuration, func() (bool, error) {
261+
_, err := c.GetDeployment(testNamespace, name)
262+
if err != nil {
263+
if k8serrors.IsNotFound(err) {
264+
return false, nil
265+
}
266+
return false, err
267+
}
268+
return true, nil
269+
})
270+
}
271+
259272
func waitForDeploymentToDelete(t *testing.T, c operatorclient.ClientInterface, name string) error {
260273
return wait.Poll(pollInterval, pollDuration, func() (bool, error) {
261274
t.Logf("waiting for deployment %s to delete", name)
@@ -2687,6 +2700,10 @@ func TestUpdateCSVModifyDeploymentName(t *testing.T) {
26872700
_, err = crc.OperatorsV1alpha1().ClusterServiceVersions(testNamespace).Update(fetchedCSV)
26882701
require.NoError(t, err)
26892702

2703+
// Wait for new deployment to exist
2704+
err = waitForDeployment(t, c, strategyNew.DeploymentSpecs[0].Name)
2705+
require.NoError(t, err)
2706+
26902707
// Wait for updated CSV to succeed
26912708
_, err = fetchCSV(t, crc, csv.Name, testNamespace, csvSucceededChecker)
26922709
require.NoError(t, err)

0 commit comments

Comments
 (0)