Skip to content

Commit 6dd8cda

Browse files
committed
implement shutdown
Signed-off-by: Manabu Mccloskey <[email protected]>
1 parent a2a8208 commit 6dd8cda

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

pkg/controllers/localbuild/controller.go

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -299,9 +299,13 @@ func (r *LocalbuildReconciler) ReconcileArgoAppsWithGitea(ctx context.Context, r
299299
}
300300
}
301301

302-
// TODO: this needs to be removed for local file syncs.
303-
r.shouldShutdown = true
304-
return ctrl.Result{}, nil
302+
shutdown, err := r.shouldShutDown(ctx, resource)
303+
if err != nil {
304+
return ctrl.Result{Requeue: true}, err
305+
}
306+
r.shouldShutdown = shutdown
307+
308+
return ctrl.Result{RequeueAfter: time.Second * 30}, nil
305309
}
306310

307311
func (r *LocalbuildReconciler) reconcileEmbeddedApp(ctx context.Context, appName string, resource *v1alpha1.Localbuild) (ctrl.Result, error) {
@@ -366,6 +370,21 @@ func (r *LocalbuildReconciler) reconcileEmbeddedApp(ctx context.Context, appName
366370
return ctrl.Result{}, nil
367371
}
368372

373+
func (r *LocalbuildReconciler) shouldShutDown(ctx context.Context, resource *v1alpha1.Localbuild) (bool, error) {
374+
repos := &v1alpha1.GitRepositoryList{}
375+
err := r.Client.List(ctx, repos, client.InNamespace(resource.Namespace))
376+
if err != nil {
377+
return false, fmt.Errorf("getting repo list %w", err)
378+
}
379+
for i := range repos.Items {
380+
repo := repos.Items[i]
381+
if !repo.Status.Synced {
382+
return false, nil
383+
}
384+
}
385+
return true, nil
386+
}
387+
369388
func GetEmbeddedRawInstallResources(name string) ([][]byte, error) {
370389
switch name {
371390
case "argocd":

pkg/controllers/localbuild/installer.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ func (e *EmbeddedInstallation) Install(ctx context.Context, req ctrl.Request, re
8686
_ = appsv1.AddToScheme(sch)
8787
if gvkObj, err := sch.New(gvk); err == nil {
8888
if gotObj, ok := gvkObj.(client.Object); ok {
89-
if err := cli.Get(ctx, types.NamespacedName{Namespace: obj.GetNamespace(), Name: obj.GetName()}, gotObj); err != nil {
89+
if err := cli.Get(ctx, types.NamespacedName{Namespace: e.namespace, Name: obj.GetName()}, gotObj); err != nil {
9090
if err = controllerutil.SetControllerReference(resource, obj, sc); err != nil {
9191
log.Error(err, "Setting controller reference for deployment", obj.GetName(), obj)
9292
return ctrl.Result{}, err
@@ -132,7 +132,7 @@ func (e *EmbeddedInstallation) Install(ctx context.Context, req ctrl.Request, re
132132

133133
for {
134134
if gotObj, ok := gvkObj.(client.Object); ok {
135-
if err := cli.Get(ctx, types.NamespacedName{Namespace: obj.GetNamespace(), Name: obj.GetName()}, gotObj); err != nil {
135+
if err := cli.Get(ctx, types.NamespacedName{Namespace: e.namespace, Name: obj.GetName()}, gotObj); err != nil {
136136
errCh <- err
137137
return
138138
}

0 commit comments

Comments
 (0)