mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
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 ```
This commit is contained in:
commit
82c986ecbc
@ -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) {
|
|||||||
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) {
|
|||||||
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) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 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
|
|||||||
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
|
|||||||
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 {
|
|||||||
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,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
|||||||
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
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user