code: func (l *persistentVolumeLabel) getGCEPVLabeler() (cloudprovider.PVLabeler, error) {
  	l.mutex.Lock()
  	defer l.mutex.Unlock()
  
  	if l.gcePVLabeler == nil {
  		var cloudConfigReader io.Reader
  		if len(l.cloudConfig) > 0 {
  			cloudConfigReader = bytes.NewReader(l.cloudConfig)
  		}
  
  		cloudProvider, err := cloudprovider.GetCloudProvider("gce", cloudConfigReader)
  		if err != nil || cloudProvider == nil {
  			return nil, err
  		}
  
  		gcePVLabeler, ok := cloudProvider.(cloudprovider.PVLabeler)
  		if !ok {
  			return nil, errors.New("GCE cloud provider does not implement PV labeling")
  		}
  
  		l.gcePVLabeler = gcePVLabeler
  
  	}
  	return l.gcePVLabeler, nil
  }
docs: // getGCEPVLabeler returns the GCE implementation of PVLabeler