From 07fe742714eca04732c5a8c25524cba9c29be70c Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 12 Feb 2016 09:46:59 +0100 Subject: [PATCH] Add PV.Name into names of generated GCE/AWS/OSP volumes. Volume names have now format -dynamic-. pv-name is guaranteed to be unique in Kubernetes cluster, adding ensures we don't conflict with any running cluster in the cloud project (kube-controller-manager --cluster-name=XXX). 'kubernetes' is the default cluster name. --- pkg/cloudprovider/providers/openstack/openstack.go | 7 +++++-- pkg/cloudprovider/providers/openstack/openstack_test.go | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pkg/cloudprovider/providers/openstack/openstack.go b/pkg/cloudprovider/providers/openstack/openstack.go index e0e13ed..86ff39a 100644 --- a/pkg/cloudprovider/providers/openstack/openstack.go +++ b/pkg/cloudprovider/providers/openstack/openstack.go @@ -1038,7 +1038,7 @@ func (os *OpenStack) getVolume(diskName string) (volumes.Volume, error) { } // Create a volume of given size (in GiB) -func (os *OpenStack) CreateVolume(size int, tags *map[string]string) (volumeName string, err error) { +func (os *OpenStack) CreateVolume(name string, size int, tags *map[string]string) (volumeName string, err error) { sClient, err := openstack.NewBlockStorageV1(os.provider, gophercloud.EndpointOpts{ Region: os.region, @@ -1049,7 +1049,10 @@ func (os *OpenStack) CreateVolume(size int, tags *map[string]string) (volumeName return "", err } - opts := volumes.CreateOpts{Size: size} + opts := volumes.CreateOpts{ + Name: name, + Size: size, + } if tags != nil { opts.Metadata = *tags } diff --git a/pkg/cloudprovider/providers/openstack/openstack_test.go b/pkg/cloudprovider/providers/openstack/openstack_test.go index 40b485c..a4db2fa 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_test.go +++ b/pkg/cloudprovider/providers/openstack/openstack_test.go @@ -22,6 +22,8 @@ import ( "testing" "time" + "k8s.io/kubernetes/pkg/util/rand" + "github.com/rackspace/gophercloud" ) @@ -213,7 +215,7 @@ func TestVolumes(t *testing.T) { tags := map[string]string{ "test": "value", } - vol, err := os.CreateVolume(1, &tags) + vol, err := os.CreateVolume("kubernetes-test-volume-"+rand.String(10), 1, &tags) if err != nil { t.Fatalf("Cannot create a new Cinder volume: %v", err) }