diff --git a/pkg/volume/glusterfs/glusterfs.go b/pkg/volume/glusterfs/glusterfs.go index 7b7537cb034..3223f58c2f1 100644 --- a/pkg/volume/glusterfs/glusterfs.go +++ b/pkg/volume/glusterfs/glusterfs.go @@ -822,10 +822,6 @@ func (p *glusterfsVolumeProvisioner) CreateVolume(gid int) (r *v1.GlusterfsVolum return nil, 0, "", fmt.Errorf("failed to get cluster nodes for volume %s: %v", volume, err) } - // The 'endpointname' is created in form of 'glusterfs-dynamic-'. - // createEndpointService() checks for this 'endpoint' existence in PVC's namespace and - // if not found, it create an endpoint and service using the IPs we dynamically picked at time - // of volume creation. epServiceName := dynamicEpSvcPrefix + string(p.options.PVC.UID) epNamespace := p.options.PVC.Namespace endpoint, service, err := p.createEndpointService(epNamespace, epServiceName, dynamicHostIps, p.options.PVC.Name) @@ -845,6 +841,10 @@ func (p *glusterfsVolumeProvisioner) CreateVolume(gid int) (r *v1.GlusterfsVolum }, sz, volID, nil } +// createEndpointService() makes sure an endpoint and service +// exist for the given namespace, PVC name, endpoint name, and +// set of IPs. I.e. the endpoint or service is only created +// if it does not exist yet. func (p *glusterfsVolumeProvisioner) createEndpointService(namespace string, epServiceName string, hostips []string, pvcname string) (endpoint *v1.Endpoints, service *v1.Service, err error) { addrlist := make([]v1.EndpointAddress, len(hostips))