func HandleReplicaCreated()

in internal/controller/checkpoint_stages.go [72:92]


func HandleReplicaCreated(r *TeamcityReconciler, ctx context.Context, checkpoint *Checkpoint) (bool, error) {
	var mainStatefulSet v1.StatefulSet
	instance := checkpoint.Instance
	mainNodeNamespacedName := instance.Spec.MainNode.GetNamespacedNameFromNamespace(instance.Namespace)
	if err := r.Get(ctx, mainNodeNamespacedName, &mainStatefulSet); err != nil {
		return false, err
	}
	roStatefulSet := resource.BuildROStatefulSet(&instance)
	err := retry.RetryOnConflict(retry.DefaultRetry, func() error {
		var apiError error
		_, apiError = controllerutil.CreateOrUpdate(ctx, r.Client, roStatefulSet, func() error {
			return resource.UpdateROStatefulSet(r.Scheme, &instance, &mainStatefulSet, roStatefulSet)
		})
		return apiError
	})
	err = checkpoint.DoCheckpointWithDesiredStage(ctx, ReplicaStarting)
	if err != nil {
		return false, err
	}
	return true, nil
}