func()

in controllers/dsapi_controller.go [167:189]


func (r *DSApiReconciler) ensureApiService(ctx context.Context, cluster *dsv1alpha1.DSApi) error {
	// 1. Client service
	service := &corev1.Service{}
	namespacedName := types.NamespacedName{Namespace: cluster.Namespace, Name: dsv1alpha1.DsApiServiceValue}
	if err := r.Client.Get(ctx, namespacedName, service); err != nil {
		// Local cache not found
		apiLogger.Info("api  get service error")
		if apierrors.IsNotFound(err) {
			service = createApiService(cluster)
			if err := controllerutil.SetControllerReference(cluster, service, r.Scheme); err != nil {
				apiLogger.Info("create Api service error")
				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 {
				apiLogger.Info("create Api service error1")
				return err
			}
			apiLogger.Info("the Api service had been created")
		}
	}
	return nil
}