in controllers/dsmaster_controller.go [340:361]
func (r *DSMasterReconciler) ensureMasterService(ctx context.Context, cluster *dsv1alpha1.DSMaster) error {
// 1. Client service
service := &corev1.Service{}
namespacedName := types.NamespacedName{Namespace: cluster.Namespace, Name: dsv1alpha1.DsHeadLessServiceLabel}
if err := r.Client.Get(ctx, namespacedName, service); err != nil {
// Local cache not found
if apierrors.IsNotFound(err) && !apierrors.IsAlreadyExists(err) {
service = createMasterService(cluster)
if err := controllerutil.SetControllerReference(cluster, service, r.Scheme); err != nil {
return err
}
// Remote may already exist, so we will return err, for the next time, this code will not execute
if err := r.Client.Create(ctx, service); err != nil {
return err
}
r.recorder.Event(cluster, corev1.EventTypeNormal, "ds-operator-service created", "master headless service had been created")
}
}
return nil
}