func()

in controllers/flinkcluster/flinkcluster_reconciler.go [195:231]


func (reconciler *ClusterReconciler) reconcileComponent(
	ctx context.Context,
	component string,
	desiredObj client.Object,
	observedObj client.Object) error {
	log := logr.FromContextOrDiscard(ctx).WithValues("component", component)
	desiredObjIsNil := reflect.ValueOf(desiredObj).IsNil()
	observedObjIsNil := reflect.ValueOf(observedObj).IsNil()

	if !desiredObjIsNil && observedObjIsNil {
		return reconciler.createComponent(ctx, desiredObj, component)
	}

	if !desiredObjIsNil && !observedObjIsNil {
		var cluster = reconciler.observed.cluster
		if shouldUpdateCluster(&reconciler.observed) && !isComponentUpdated(observedObj, cluster) {
			var err error
			if shouldRecreateOnUpdate(&reconciler.observed) {
				err = reconciler.deleteComponent(ctx, desiredObj, component)
			} else {
				err = reconciler.updateComponent(ctx, desiredObj, component)
			}
			if err != nil {
				return err
			}
			return nil
		}
		log.Info("Component already exists, no action", "component", component)
		return nil
	}

	if desiredObjIsNil && !observedObjIsNil {
		return reconciler.deleteComponent(ctx, observedObj, component)
	}

	return nil
}