in controllers/daemon/staticgatewayconfiguration_controller.go [97:138]
func (r *StaticGatewayConfigurationReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
log := log.FromContext(ctx)
// Got an event from cleanup ticker
if req.NamespacedName.Namespace == "" && req.NamespacedName.Name == "" {
if err := r.cleanUp(ctx); err != nil {
return ctrl.Result{}, fmt.Errorf("failed to clean up orphaned network configurations: %w", err)
}
return ctrl.Result{}, nil
}
// Fetch the StaticGatewayConfiguration instance.
gwConfig := &egressgatewayv1alpha1.StaticGatewayConfiguration{}
if err := r.Get(ctx, req.NamespacedName, gwConfig); err != nil {
if apierrors.IsNotFound(err) {
// Object not found, return.
return ctrl.Result{}, nil
}
log.Error(err, "unable to fetch StaticGatewayConfiguration instance")
return ctrl.Result{}, err
}
if !isReady(gwConfig) {
// gateway setup hasn't completed yet
return ctrl.Result{}, nil
}
if !applyToNode(gwConfig) {
// gwConfig does not apply to this node
return ctrl.Result{}, nil
}
if !gwConfig.ObjectMeta.DeletionTimestamp.IsZero() {
if err := r.cleanUp(ctx); err != nil {
return ctrl.Result{}, fmt.Errorf("failed to clean up deleted StaticGatewayConfiguration %s/%s: %w", gwConfig.Namespace, gwConfig.Name, err)
}
return ctrl.Result{}, nil
}
// Reconcile gateway configuration
return ctrl.Result{}, r.reconcile(ctx, gwConfig)
}