Skip to content

Commit 34fc336

Browse files
sunpa93k8s-infra-cherrypick-robot
authored andcommitted
fix: enforce minimum share size for StandardV2 SKU
1 parent dcde9fd commit 34fc336

File tree

2 files changed

+11
-13
lines changed

2 files changed

+11
-13
lines changed

pkg/azurefile/azurefile.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,9 @@ const (
8181
fileShareNameMinLength = 3
8282
fileShareNameMaxLength = 63
8383

84-
minimumPremiumShareSize = 100 // GB
85-
minimumPremiumV2ShareSize = 32 // GB
86-
// Minimum size of Azure Premium Files is 100GiB, and PremiumV2 Files is 32GiB.
87-
// See https://docs.microsoft.com/en-us/azure/storage/files/storage-files-planning#provisioned-shares
84+
minimumPremiumShareSize = 100 // GiB. Minimum size of Azure Premium Files (provisioned v1).
85+
minimumV2ShareSize = 32 // GiB. Minimum size of Azure provisioned v2 Files (PremiumV2/StandardV2).
86+
// See https://learn.microsoft.com/en-us/azure/storage/files/understanding-billing#provisioned-v2-provisioning
8887
defaultAzureFileQuota = 100
8988
minimumAccountQuota = 100 // GB
9089

pkg/azurefile/controllerserver.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ func (d *Driver) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest)
419419

420420
fileShareSize := int(requestGiB)
421421

422-
if account != "" && resourceGroup != "" && sku == "" && fileShareSize < minimumPremiumV2ShareSize {
422+
if account != "" && resourceGroup != "" && sku == "" && fileShareSize < minimumV2ShareSize {
423423
if d.cloud == nil || d.cloud.ComputeClientFactory == nil {
424424
return nil, status.Errorf(codes.Internal, "cloud provider is not initialized")
425425
}
@@ -436,26 +436,25 @@ func (d *Driver) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest)
436436
}
437437
}
438438

439-
// account kind should be FileStorage for Premium File
439+
// account kind should be FileStorage for Premium File (v1)
440440
accountKind := string(armstorage.KindStorageV2)
441441
if strings.HasPrefix(strings.ToLower(sku), premium) {
442442
accountKind = string(armstorage.KindFileStorage)
443-
if strings.Contains(strings.ToLower(sku), "v2") {
444-
if fileShareSize < minimumPremiumV2ShareSize {
445-
klog.V(2).Infof("fileShareSize(%d) is less than minimumPremiumV2ShareSize(%d), using minimumPremiumV2ShareSize", fileShareSize, minimumPremiumV2ShareSize)
446-
fileShareSize = minimumPremiumV2ShareSize
447-
}
448-
} else {
443+
if !strings.Contains(strings.ToLower(sku), "v2") {
449444
if fileShareSize < minimumPremiumShareSize {
450445
klog.V(2).Infof("fileShareSize(%d) is less than minimumPremiumShareSize(%d), using minimumPremiumShareSize", fileShareSize, minimumPremiumShareSize)
451446
fileShareSize = minimumPremiumShareSize
452447
}
453448
}
454449
}
455450

456-
// use v2 account kind for v2 sku
451+
// use v2 account kind for v2 sku (both PremiumV2 and StandardV2)
457452
if strings.Contains(strings.ToLower(sku), "v2") {
458453
accountKind = string(armstorage.KindFileStorage)
454+
if fileShareSize < minimumV2ShareSize {
455+
klog.V(2).Infof("fileShareSize(%d) is less than minimumV2ShareSize(%d) for v2 sku(%s), using minimumV2ShareSize", fileShareSize, minimumV2ShareSize, sku)
456+
fileShareSize = minimumV2ShareSize
457+
}
459458
if provisionedIops == nil {
460459
provisionedIops = getDefaultIOPS(fileShareSize, sku)
461460
klog.V(2).Infof("setting provisionedIops as %d", ptr.Deref(provisionedIops, 0))

0 commit comments

Comments
 (0)