From c9c268e4097e19e11a6468d898bcc326a25ad5ef Mon Sep 17 00:00:00 2001 From: Miguel Angel Ajo Date: Thu, 27 Jan 2022 17:41:44 +0100 Subject: [PATCH] OpenShift CRD Manager service must signal stop when completed Otherwise the service manager can't track completion of the service when a stop is requested. Signed-off-by: Miguel Angel Ajo --- pkg/controllers/openshift-crd-manager.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/controllers/openshift-crd-manager.go b/pkg/controllers/openshift-crd-manager.go index 4b0ebf3722..a61ccf5b27 100644 --- a/pkg/controllers/openshift-crd-manager.go +++ b/pkg/controllers/openshift-crd-manager.go @@ -39,10 +39,11 @@ func (s *OpenShiftCRDManager) Dependencies() []string { } func (s *OpenShiftCRDManager) Run(ctx context.Context, ready chan<- struct{}, stopped chan<- struct{}) error { - defer close(ready) - // To-DO add readiness check + defer close(stopped) + if err := assets.ApplyCRDs(s.cfg); err != nil { klog.Errorf("%s unable to apply default CRDs: %v", s.Name(), err) + return err } klog.Infof("%s applied default CRDs", s.Name()) @@ -51,5 +52,7 @@ func (s *OpenShiftCRDManager) Run(ctx context.Context, ready chan<- struct{}, st klog.Errorf("%s unable to confirm all CRDs are ready: %v", s.Name(), err) } klog.Infof("%s all CRDs are ready", s.Name()) + close(ready) + return ctx.Err() }