Skip to content

Commit 0ea161c

Browse files
committed
Add waiting for dependent objects of ComputeDomain to be fully removed
Signed-off-by: Kevin Klues <[email protected]>
1 parent b8fa263 commit 0ea161c

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

cmd/compute-domain-controller/computedomain.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,10 +231,18 @@ func (m *ComputeDomainManager) onAddOrUpdate(ctx context.Context, obj any) error
231231
return fmt.Errorf("error removing finalizer on ResourceClaimTemplate: %w", err)
232232
}
233233

234+
if err := m.resourceClaimTemplateManager.AssertRemoved(ctx, string(cd.UID)); err != nil {
235+
return fmt.Errorf("error asserting removal of ResourceClaimTemplate: %w", err)
236+
}
237+
234238
if err := m.deploymentManager.RemoveFinalizer(ctx, string(cd.UID)); err != nil {
235239
return fmt.Errorf("error removing finalizer on Deployment: %w", err)
236240
}
237241

242+
if err := m.deploymentManager.AssertRemoved(ctx, string(cd.UID)); err != nil {
243+
return fmt.Errorf("error asserting removal of Deployment: %w", err)
244+
}
245+
238246
if err := m.RemoveFinalizer(ctx, string(cd.UID)); err != nil {
239247
return fmt.Errorf("error removing finalizer: %w", err)
240248
}

cmd/compute-domain-controller/deployment.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,27 @@ func (m *DeploymentManager) RemoveFinalizer(ctx context.Context, cdUID string) e
255255
return nil
256256
}
257257

258+
func (m *DeploymentManager) AssertRemoved(ctx context.Context, cdUID string) error {
259+
if err := m.resourceClaimTemplateManager.AssertRemoved(ctx, cdUID); err != nil {
260+
return fmt.Errorf("error asserting ResourceClaimTemplate removed: %w", err)
261+
}
262+
if err := m.assertRemoved(ctx, cdUID); err != nil {
263+
return fmt.Errorf("error asserting Deployment removal: %w", err)
264+
}
265+
return nil
266+
}
267+
268+
func (m *DeploymentManager) assertRemoved(ctx context.Context, cdUID string) error {
269+
ds, err := getByComputeDomainUID[*appsv1.Deployment](ctx, m.informer, cdUID)
270+
if err != nil {
271+
return fmt.Errorf("error retrieving Deployment: %w", err)
272+
}
273+
if len(ds) != 0 {
274+
return fmt.Errorf("still exists")
275+
}
276+
return nil
277+
}
278+
258279
func (m *DeploymentManager) removeFinalizer(ctx context.Context, cdUID string) error {
259280
ds, err := getByComputeDomainUID[*appsv1.Deployment](ctx, m.informer, cdUID)
260281
if err != nil {

cmd/compute-domain-controller/resourceclaimtemplate.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,17 @@ func (m *BaseResourceClaimTemplateManager) RemoveFinalizer(ctx context.Context,
223223
return nil
224224
}
225225

226+
func (m *BaseResourceClaimTemplateManager) AssertRemoved(ctx context.Context, cdUID string) error {
227+
rcts, err := getByComputeDomainUID[*resourceapi.ResourceClaimTemplate](ctx, m.informer, cdUID)
228+
if err != nil {
229+
return fmt.Errorf("error retrieving ResourceClaimTemplate: %w", err)
230+
}
231+
if len(rcts) != 0 {
232+
return fmt.Errorf("still exists")
233+
}
234+
return nil
235+
}
236+
226237
func NewDeploymentResourceClaimTemplateManager(config *ManagerConfig) *DeploymentResourceClaimTemplateManager {
227238
labelSelector := &metav1.LabelSelector{
228239
MatchExpressions: []metav1.LabelSelectorRequirement{

0 commit comments

Comments
 (0)