code: func (spc *realStatefulPodControl) createPersistentVolumeClaims(set *apps.StatefulSet, pod *v1.Pod) error {
  	var errs []error
  	for _, claim := range getPersistentVolumeClaims(set, pod) {
  		_, err := spc.pvcLister.PersistentVolumeClaims(claim.Namespace).Get(claim.Name)
  		switch {
  		case apierrors.IsNotFound(err):
  			_, err := spc.client.CoreV1().PersistentVolumeClaims(claim.Namespace).Create(&claim)
  			if err != nil {
  				errs = append(errs, fmt.Errorf("Failed to create PVC %s: %s", claim.Name, err))
  			}
  			if err == nil || !apierrors.IsAlreadyExists(err) {
  				spc.recordClaimEvent("create", set, pod, &claim, err)
  			}
  		case err != nil:
  			errs = append(errs, fmt.Errorf("Failed to retrieve PVC %s: %s", claim.Name, err))
  			spc.recordClaimEvent("create", set, pod, &claim, err)
  		}
  		// TODO: Check resource requirements and accessmodes, update if necessary
  	}
  	return errorutils.NewAggregate(errs)
  }
docs: // createPersistentVolumeClaims creates all of the required PersistentVolumeClaims for pod, which must be a member of
  // set. If all of the claims for Pod are successfully created, the returned error is nil. If creation fails, this method
  // may be called again until no error is returned, indicating the PersistentVolumeClaims for pod are consistent with
  // set's Spec.