Skip to content

Commit 610bcec

Browse files
sunpa93k8s-infra-cherrypick-robot
authored andcommitted
fix: enforce minimum share size for StandardV2 SKU
1 parent 4cfa4f6 commit 610bcec

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
@@ -426,7 +426,7 @@ func (d *Driver) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest)
426426

427427
fileShareSize := int(requestGiB)
428428

429-
if account != "" && resourceGroup != "" && sku == "" && fileShareSize < minimumPremiumV2ShareSize {
429+
if account != "" && resourceGroup != "" && sku == "" && fileShareSize < minimumV2ShareSize {
430430
if d.cloud == nil || d.cloud.ComputeClientFactory == nil {
431431
return nil, status.Errorf(codes.Internal, "cloud provider is not initialized")
432432
}
@@ -443,26 +443,25 @@ func (d *Driver) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest)
443443
}
444444
}
445445

446-
// account kind should be FileStorage for Premium File
446+
// account kind should be FileStorage for Premium File (v1)
447447
accountKind := string(armstorage.KindStorageV2)
448448
if strings.HasPrefix(strings.ToLower(sku), premium) {
449449
accountKind = string(armstorage.KindFileStorage)
450-
if strings.Contains(strings.ToLower(sku), "v2") {
451-
if fileShareSize < minimumPremiumV2ShareSize {
452-
klog.V(2).Infof("fileShareSize(%d) is less than minimumPremiumV2ShareSize(%d), using minimumPremiumV2ShareSize", fileShareSize, minimumPremiumV2ShareSize)
453-
fileShareSize = minimumPremiumV2ShareSize
454-
}
455-
} else {
450+
if !strings.Contains(strings.ToLower(sku), "v2") {
456451
if fileShareSize < minimumPremiumShareSize {
457452
klog.V(2).Infof("fileShareSize(%d) is less than minimumPremiumShareSize(%d), using minimumPremiumShareSize", fileShareSize, minimumPremiumShareSize)
458453
fileShareSize = minimumPremiumShareSize
459454
}
460455
}
461456
}
462457

463-
// use v2 account kind for v2 sku
458+
// use v2 account kind for v2 sku (both PremiumV2 and StandardV2)
464459
if strings.Contains(strings.ToLower(sku), "v2") {
465460
accountKind = string(armstorage.KindFileStorage)
461+
if fileShareSize < minimumV2ShareSize {
462+
klog.V(2).Infof("fileShareSize(%d) is less than minimumV2ShareSize(%d) for v2 sku(%s), using minimumV2ShareSize", fileShareSize, minimumV2ShareSize, sku)
463+
fileShareSize = minimumV2ShareSize
464+
}
466465
if provisionedIops == nil {
467466
provisionedIops = getDefaultIOPS(fileShareSize, sku)
468467
klog.V(2).Infof("setting provisionedIops as %d", ptr.Deref(provisionedIops, 0))

0 commit comments

Comments
 (0)