Skip to content

Commit 12b8520

Browse files
committed
internal/olm: uninstall in reverse order and 1-by-1, required to pass e2e tests in 1.18
1 parent 70d9f3a commit 12b8520

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

internal/olm/client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ import (
2626
"net/http"
2727
"time"
2828

29-
olmresourceclient "github.com/operator-framework/operator-sdk/internal/olm/client"
30-
3129
olmapiv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
3230
log "github.com/sirupsen/logrus"
3331
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
@@ -37,6 +35,8 @@ import (
3735
"k8s.io/apimachinery/pkg/util/wait"
3836
"k8s.io/apimachinery/pkg/util/yaml"
3937
"k8s.io/client-go/rest"
38+
39+
olmresourceclient "github.com/operator-framework/operator-sdk/internal/olm/client"
4040
)
4141

4242
const (

internal/olm/client/client.go

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -103,22 +103,30 @@ func (c Client) DoDelete(ctx context.Context, objs ...runtime.Object) error {
103103
}
104104
kind := obj.GetObjectKind().GroupVersionKind().Kind
105105
log.Infof(" Deleting %s %q", kind, getName(a.GetNamespace(), a.GetName()))
106-
err = c.KubeClient.Delete(ctx, obj, client.PropagationPolicy(metav1.DeletePropagationForeground))
106+
err = c.KubeClient.Delete(ctx, obj, client.PropagationPolicy(metav1.DeletePropagationBackground))
107107
if err != nil {
108108
if !apierrors.IsNotFound(err) {
109109
return err
110110
}
111111
log.Infof(" %s %q does not exist", kind, getName(a.GetNamespace(), a.GetName()))
112112
}
113+
key, err := client.ObjectKeyFromObject(obj)
114+
if err != nil {
115+
return err
116+
}
117+
if err := wait.PollImmediateUntil(time.Millisecond*100, func() (bool, error) {
118+
err := c.KubeClient.Get(ctx, key, obj)
119+
if apierrors.IsNotFound(err) {
120+
return true, nil
121+
} else if err != nil {
122+
return false, err
123+
}
124+
return false, nil
125+
}, ctx.Done()); err != nil {
126+
return err
127+
}
113128
}
114-
115-
log.Infof(" Waiting for deleted resources to disappear")
116-
117-
return wait.PollImmediateUntil(time.Second, func() (bool, error) {
118-
s := c.GetObjectsStatus(ctx, objs...)
119-
installed, err := s.HasInstalledResources()
120-
return !installed, err
121-
}, ctx.Done())
129+
return nil
122130
}
123131

124132
func getName(namespace, name string) string {

0 commit comments

Comments
 (0)