func()

in controllers/seataserver_controller.go [157:194]


func (r *SeataServerReconciler) reconcileStatefulSet(ctx context.Context, s *seatav1alpha1.SeataServer) (err error) {
	sts := seata.MakeStatefulSet(s)
	if err := controllerutil.SetControllerReference(s, sts, r.Scheme); err != nil {
		return err
	}
	foundSts := &appsv1.StatefulSet{}
	err = r.Client.Get(ctx, types.NamespacedName{
		Name:      sts.Name,
		Namespace: sts.Namespace,
	}, foundSts)
	if err != nil && errors.IsNotFound(err) {
		r.Log.Info(fmt.Sprintf("Creating a new SeataServer StatefulSet {%s:%s}",
			sts.Namespace, sts.Name))
		err = r.Client.Create(ctx, sts)
		if err != nil {
			r.recordError(ctx, types.NamespacedName{Name: s.Name, Namespace: s.Namespace},
				seatav1alpha1.ErrorTypeK8s_StatefulSet, fmt.Sprintf("Failed to create SeataServer StatefulSet {%s:%s}",
					sts.Namespace, sts.Name), err)
			return err
		}
		return nil
	} else if err != nil {
		r.recordError(ctx, types.NamespacedName{Name: s.Name, Namespace: s.Namespace},
			seatav1alpha1.ErrorTypeK8s_StatefulSet, fmt.Sprintf("Failed to get SeataServer StatefulSet {%s:%s}",
				sts.Namespace, sts.Name), err)
		return err
	} else {
		err = r.updateStatefulSet(ctx, s, foundSts, sts)
		if err != nil {
			r.recordError(ctx, types.NamespacedName{Name: s.Name, Namespace: s.Namespace},
				seatav1alpha1.ErrorTypeK8s_StatefulSet, fmt.Sprintf("Failed to update SeataServer StatefulSet {%s:%s}",
					foundSts.Namespace, foundSts.Name), err)
			return err
		}
	}

	return nil
}