Fix GCE CreateVolume allocates in chunks of GiB incorrectly
This commit is contained in:
		| @@ -423,7 +423,7 @@ func (c *gcePersistentDiskProvisioner) Provision() (*v1.PersistentVolume, error) | ||||
| 			PersistentVolumeReclaimPolicy: c.options.PersistentVolumeReclaimPolicy, | ||||
| 			AccessModes:                   c.options.PVC.Spec.AccessModes, | ||||
| 			Capacity: v1.ResourceList{ | ||||
| 				v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dGi", sizeGB)), | ||||
| 				v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dG", sizeGB)), | ||||
| 			}, | ||||
| 			PersistentVolumeSource: v1.PersistentVolumeSource{ | ||||
| 				GCEPersistentDisk: &v1.GCEPersistentDiskVolumeSource{ | ||||
|   | ||||
| @@ -183,7 +183,7 @@ func TestPlugin(t *testing.T) { | ||||
| 	} | ||||
| 	cap := persistentSpec.Spec.Capacity[v1.ResourceStorage] | ||||
| 	size := cap.Value() | ||||
| 	if size != 100*1024*1024*1024 { | ||||
| 	if size != 100*volume.GB { | ||||
| 		t.Errorf("Provision() returned unexpected volume size: %v", size) | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -82,8 +82,8 @@ func (gceutil *GCEDiskUtil) CreateVolume(c *gcePersistentDiskProvisioner) (strin | ||||
| 	name := volume.GenerateVolumeName(c.options.ClusterName, c.options.PVName, 63) // GCE PD name can have up to 63 characters | ||||
| 	capacity := c.options.PVC.Spec.Resources.Requests[v1.ResourceName(v1.ResourceStorage)] | ||||
| 	requestBytes := capacity.Value() | ||||
| 	// GCE works with gigabytes, convert to GiB with rounding up | ||||
| 	requestGB := volume.RoundUpSize(requestBytes, 1024*1024*1024) | ||||
| 	// GCE PDs are allocated in chunks of GBs (not GiBs) | ||||
| 	requestGB := volume.RoundUpSize(requestBytes, volume.GB) | ||||
|  | ||||
| 	// Apply Parameters (case-insensitive). We leave validation of | ||||
| 	// the values to the cloud provider. | ||||
|   | ||||
| @@ -256,8 +256,8 @@ var _ = SIGDescribe("Dynamic Provisioning", func() { | ||||
| 						"type": "pd-ssd", | ||||
| 						"zone": cloudZone, | ||||
| 					}, | ||||
| 					"1.5Gi", | ||||
| 					"2Gi", | ||||
| 					"1.5G", | ||||
| 					"2G", | ||||
| 					func(volume *v1.PersistentVolume) error { | ||||
| 						return checkGCEPD(volume, "pd-ssd") | ||||
| 					}, | ||||
| @@ -269,8 +269,8 @@ var _ = SIGDescribe("Dynamic Provisioning", func() { | ||||
| 					map[string]string{ | ||||
| 						"type": "pd-standard", | ||||
| 					}, | ||||
| 					"1.5Gi", | ||||
| 					"2Gi", | ||||
| 					"1.5G", | ||||
| 					"2G", | ||||
| 					func(volume *v1.PersistentVolume) error { | ||||
| 						return checkGCEPD(volume, "pd-standard") | ||||
| 					}, | ||||
| @@ -435,8 +435,8 @@ var _ = SIGDescribe("Dynamic Provisioning", func() { | ||||
| 				map[string]string{ | ||||
| 					"type": "pd-standard", | ||||
| 				}, | ||||
| 				"1Gi", | ||||
| 				"1Gi", | ||||
| 				"1G", | ||||
| 				"1G", | ||||
| 				func(volume *v1.PersistentVolume) error { | ||||
| 					return checkGCEPD(volume, "pd-standard") | ||||
| 				}, | ||||
| @@ -469,8 +469,8 @@ var _ = SIGDescribe("Dynamic Provisioning", func() { | ||||
| 				map[string]string{ | ||||
| 					"type": "pd-standard", | ||||
| 				}, | ||||
| 				"1Gi", | ||||
| 				"1Gi", | ||||
| 				"1G", | ||||
| 				"1G", | ||||
| 				func(volume *v1.PersistentVolume) error { | ||||
| 					return checkGCEPD(volume, "pd-standard") | ||||
| 				}, | ||||
| @@ -520,7 +520,7 @@ var _ = SIGDescribe("Dynamic Provisioning", func() { | ||||
| 				name:        "unmanaged_zone", | ||||
| 				provisioner: "kubernetes.io/gce-pd", | ||||
| 				parameters:  map[string]string{"zone": unmanagedZone}, | ||||
| 				claimSize:   "1Gi", | ||||
| 				claimSize:   "1G", | ||||
| 			} | ||||
| 			sc := newStorageClass(test, ns, suffix) | ||||
| 			sc, err = c.StorageV1().StorageClasses().Create(sc) | ||||
| @@ -640,6 +640,14 @@ var _ = SIGDescribe("Dynamic Provisioning", func() { | ||||
| 				claimSize:    "2Gi", | ||||
| 				expectedSize: "2Gi", | ||||
| 			} | ||||
| 			// gce or gke | ||||
| 			if getDefaultPluginName() == "kubernetes.io/gce-pd" { | ||||
| 				// using GB not GiB as e2e test unit since gce-pd returns GB, | ||||
| 				// or expectedSize may be greater than claimSize. | ||||
| 				test.claimSize = "2G" | ||||
| 				test.expectedSize = "2G" | ||||
| 			} | ||||
|  | ||||
| 			claim := newClaim(test, ns, "default") | ||||
| 			testDynamicProvisioning(test, c, claim, nil) | ||||
| 		}) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 edisonxiang
					edisonxiang