in controllers/packagebundlecontroller_controller.go [100:158]
func (r *PackageBundleControllerReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
r.Log.V(6).Info("Reconcile:", "PackageBundleController", req.NamespacedName)
result := ctrl.Result{
Requeue: true,
RequeueAfter: DefaultUpgradeCheckInterval,
}
pbc := &api.PackageBundleController{}
err := r.Client.Get(ctx, req.NamespacedName, pbc)
if err != nil {
if client.IgnoreNotFound(err) != nil {
return result, fmt.Errorf("retrieving package bundle controller: %s", err)
}
r.Log.Info("Bundle controller deleted (ignoring)", "bundle controller", req.NamespacedName)
return withoutRequeue(result), nil
}
if pbc.Spec.UpgradeCheckInterval.Duration > 0 {
result.RequeueAfter = pbc.Spec.UpgradeCheckInterval.Duration
}
if pbc.IsIgnored() {
if pbc.Status.State != api.BundleControllerStateIgnored {
pbc.Status.State = api.BundleControllerStateIgnored
r.Log.V(6).Info("update", "PackageBundleController", pbc.Name, "state", pbc.Status.State)
err = r.Client.Status().Update(ctx, pbc, &client.SubResourceUpdateOptions{})
if err != nil {
r.Log.Error(err, "updating ignored status")
return withoutRequeue(result), nil
}
}
return withoutRequeue(result), nil
}
if !pbc.IsDefaultRegistryDefault() {
if err := r.certInjector.UpdateIfNeeded(ctx, pbc.Name); err != nil {
return result, fmt.Errorf("ensuring registry CA cert updated: %v", err)
}
}
err = r.bundleManager.ProcessBundleController(ctx, pbc)
if err != nil {
if !r.webhookInitialized {
r.Log.Info("delaying reconciliation until webhook is initialized")
result.RequeueAfter = webhookInitializationRequeueInterval
return result, nil
}
r.Log.Error(err, "processing bundle controller")
if pbc.Spec.UpgradeCheckShortInterval.Duration > 0 {
result.RequeueAfter = pbc.Spec.UpgradeCheckShortInterval.Duration
}
return result, nil
}
r.webhookInitialized = true
r.Log.V(6).Info("Reconciled:", "PackageBundleController", req.NamespacedName)
return result, nil
}