Unverified Commit 82c986ec authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #65978 from sngchlko/labeling-region-to-cinder-pv

Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Add region label to dynamic provisioned cinder PVs **What this PR does / why we need it**: This PR adds region label to dynamic provisioned Cinder PVs at the time of the PV creation. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: Fixes #65977 **Special notes for your reviewer**: **Release note**: ```release-note NONE ```
parents 21f18338 1df1181b
...@@ -104,6 +104,7 @@ func TestReadConfig(t *testing.T) { ...@@ -104,6 +104,7 @@ func TestReadConfig(t *testing.T) {
auth-url = http://auth.url auth-url = http://auth.url
user-id = user user-id = user
tenant-name = demo tenant-name = demo
region = RegionOne
[LoadBalancer] [LoadBalancer]
create-monitor = yes create-monitor = yes
monitor-delay = 1m monitor-delay = 1m
...@@ -136,6 +137,10 @@ func TestReadConfig(t *testing.T) { ...@@ -136,6 +137,10 @@ func TestReadConfig(t *testing.T) {
t.Errorf("incorrect tenant name: %s", cfg.Global.TenantName) t.Errorf("incorrect tenant name: %s", cfg.Global.TenantName)
} }
if cfg.Global.Region != "RegionOne" {
t.Errorf("incorrect region: %s", cfg.Global.Region)
}
if !cfg.LoadBalancer.CreateMonitor { if !cfg.LoadBalancer.CreateMonitor {
t.Errorf("incorrect lb.createmonitor: %t", cfg.LoadBalancer.CreateMonitor) t.Errorf("incorrect lb.createmonitor: %t", cfg.LoadBalancer.CreateMonitor)
} }
...@@ -554,7 +559,7 @@ func TestVolumes(t *testing.T) { ...@@ -554,7 +559,7 @@ func TestVolumes(t *testing.T) {
tags := map[string]string{ tags := map[string]string{
"test": "value", "test": "value",
} }
vol, _, _, err := os.CreateVolume("kubernetes-test-volume-"+rand.String(10), 1, "", "", &tags) vol, _, _, _, err := os.CreateVolume("kubernetes-test-volume-"+rand.String(10), 1, "", "", &tags)
if err != nil { if err != nil {
t.Fatalf("Cannot create a new Cinder volume: %v", err) t.Fatalf("Cannot create a new Cinder volume: %v", err)
} }
......
...@@ -443,10 +443,10 @@ func (os *OpenStack) getVolume(volumeID string) (Volume, error) { ...@@ -443,10 +443,10 @@ func (os *OpenStack) getVolume(volumeID string) (Volume, error) {
} }
// CreateVolume creates a volume of given size (in GiB) // CreateVolume creates a volume of given size (in GiB)
func (os *OpenStack) CreateVolume(name string, size int, vtype, availability string, tags *map[string]string) (string, string, bool, error) { func (os *OpenStack) CreateVolume(name string, size int, vtype, availability string, tags *map[string]string) (string, string, string, bool, error) {
volumes, err := os.volumeService("") volumes, err := os.volumeService("")
if err != nil { if err != nil {
return "", "", os.bsOpts.IgnoreVolumeAZ, fmt.Errorf("unable to initialize cinder client for region: %s, err: %v", os.region, err) return "", "", "", os.bsOpts.IgnoreVolumeAZ, fmt.Errorf("unable to initialize cinder client for region: %s, err: %v", os.region, err)
} }
opts := volumeCreateOpts{ opts := volumeCreateOpts{
...@@ -462,11 +462,11 @@ func (os *OpenStack) CreateVolume(name string, size int, vtype, availability str ...@@ -462,11 +462,11 @@ func (os *OpenStack) CreateVolume(name string, size int, vtype, availability str
volumeID, volumeAZ, err := volumes.createVolume(opts) volumeID, volumeAZ, err := volumes.createVolume(opts)
if err != nil { if err != nil {
return "", "", os.bsOpts.IgnoreVolumeAZ, fmt.Errorf("failed to create a %d GB volume: %v", size, err) return "", "", "", os.bsOpts.IgnoreVolumeAZ, fmt.Errorf("failed to create a %d GB volume: %v", size, err)
} }
glog.Infof("Created volume %v in Availability Zone: %v Ignore volume AZ: %v", volumeID, volumeAZ, os.bsOpts.IgnoreVolumeAZ) glog.Infof("Created volume %v in Availability Zone: %v Region: %v Ignore volume AZ: %v", volumeID, volumeAZ, os.region, os.bsOpts.IgnoreVolumeAZ)
return volumeID, volumeAZ, os.bsOpts.IgnoreVolumeAZ, nil return volumeID, volumeAZ, os.region, os.bsOpts.IgnoreVolumeAZ, nil
} }
// GetDevicePathBySerialID returns the path of an attached block storage volume, specified by its id. // GetDevicePathBySerialID returns the path of an attached block storage volume, specified by its id.
......
...@@ -615,8 +615,8 @@ func (testcase *testcase) DiskIsAttachedByName(nodeName types.NodeName, volumeID ...@@ -615,8 +615,8 @@ func (testcase *testcase) DiskIsAttachedByName(nodeName types.NodeName, volumeID
return expected.isAttached, expected.instanceID, expected.ret return expected.isAttached, expected.instanceID, expected.ret
} }
func (testcase *testcase) CreateVolume(name string, size int, vtype, availability string, tags *map[string]string) (string, string, bool, error) { func (testcase *testcase) CreateVolume(name string, size int, vtype, availability string, tags *map[string]string) (string, string, string, bool, error) {
return "", "", false, errors.New("Not implemented") return "", "", "", false, errors.New("Not implemented")
} }
func (testcase *testcase) GetDevicePath(volumeID string) string { func (testcase *testcase) GetDevicePath(volumeID string) string {
......
...@@ -53,7 +53,7 @@ type BlockStorageProvider interface { ...@@ -53,7 +53,7 @@ type BlockStorageProvider interface {
AttachDisk(instanceID, volumeID string) (string, error) AttachDisk(instanceID, volumeID string) (string, error)
DetachDisk(instanceID, volumeID string) error DetachDisk(instanceID, volumeID string) error
DeleteVolume(volumeID string) error DeleteVolume(volumeID string) error
CreateVolume(name string, size int, vtype, availability string, tags *map[string]string) (string, string, bool, error) CreateVolume(name string, size int, vtype, availability string, tags *map[string]string) (string, string, string, bool, error)
GetDevicePath(volumeID string) string GetDevicePath(volumeID string) string
InstanceID() (string, error) InstanceID() (string, error)
GetAttachmentDiskPath(instanceID, volumeID string) (string, error) GetAttachmentDiskPath(instanceID, volumeID string) (string, error)
......
...@@ -208,10 +208,10 @@ func (util *DiskUtil) CreateVolume(c *cinderVolumeProvisioner) (volumeID string, ...@@ -208,10 +208,10 @@ func (util *DiskUtil) CreateVolume(c *cinderVolumeProvisioner) (volumeID string,
} }
} }
volumeID, volumeAZ, IgnoreVolumeAZ, errr := cloud.CreateVolume(name, volSizeGB, vtype, availability, c.options.CloudTags) volumeID, volumeAZ, volumeRegion, IgnoreVolumeAZ, err := cloud.CreateVolume(name, volSizeGB, vtype, availability, c.options.CloudTags)
if errr != nil { if err != nil {
glog.V(2).Infof("Error creating cinder volume: %v", errr) glog.V(2).Infof("Error creating cinder volume: %v", err)
return "", 0, nil, "", errr return "", 0, nil, "", err
} }
glog.V(2).Infof("Successfully created cinder volume %s", volumeID) glog.V(2).Infof("Successfully created cinder volume %s", volumeID)
...@@ -219,6 +219,7 @@ func (util *DiskUtil) CreateVolume(c *cinderVolumeProvisioner) (volumeID string, ...@@ -219,6 +219,7 @@ func (util *DiskUtil) CreateVolume(c *cinderVolumeProvisioner) (volumeID string,
volumeLabels = make(map[string]string) volumeLabels = make(map[string]string)
if IgnoreVolumeAZ == false { if IgnoreVolumeAZ == false {
volumeLabels[kubeletapis.LabelZoneFailureDomain] = volumeAZ volumeLabels[kubeletapis.LabelZoneFailureDomain] = volumeAZ
volumeLabels[kubeletapis.LabelZoneRegion] = volumeRegion
} }
return volumeID, volSizeGB, volumeLabels, fstype, nil return volumeID, volSizeGB, volumeLabels, fstype, nil
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment