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
}