Skip to content

Commit

Permalink
fix: add cachingMode setting check
Browse files Browse the repository at this point in the history
  • Loading branch information
andyzhangx authored and k8s-infra-cherrypick-robot committed Mar 30, 2023
1 parent 3fd1093 commit ea5bcc3
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
7 changes: 7 additions & 0 deletions pkg/azureutils/azure_disk_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -649,6 +649,13 @@ func ParseDiskParameters(parameters map[string]string) (ManagedDiskParameters, e
}
}
}

if strings.EqualFold(diskParams.AccountType, string(azureconstants.PremiumV2LRS)) {
if diskParams.CachingMode != "" && !strings.EqualFold(string(diskParams.CachingMode), string(v1.AzureDataDiskCachingNone)) {
return diskParams, fmt.Errorf("cachingMode %s is not supported for %s", diskParams.CachingMode, azureconstants.PremiumV2LRS)
}
}

return diskParams, nil
}

Expand Down
50 changes: 50 additions & 0 deletions pkg/azureutils/azure_disk_utils_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1420,6 +1420,56 @@ func TestParseDiskParameters(t *testing.T) {
},
expectedError: fmt.Errorf("parse invalidValue failed with error: strconv.Atoi: parsing \"invalidValue\": invalid syntax"),
},
{
name: "disk parameters with PremiumV2_LRS",
inputParams: map[string]string{consts.SkuNameField: "PremiumV2_LRS"},
expectedOutput: ManagedDiskParameters{
AccountType: "PremiumV2_LRS",
Incremental: true,
Tags: make(map[string]string),
VolumeContext: map[string]string{consts.SkuNameField: "PremiumV2_LRS"},
DeviceSettings: make(map[string]string),
},
expectedError: nil,
},
{
name: "disk parameters with PremiumV2_LRS (valid cachingMode)",
inputParams: map[string]string{
consts.SkuNameField: "PremiumV2_LRS",
consts.CachingModeField: "none",
},
expectedOutput: ManagedDiskParameters{
AccountType: "PremiumV2_LRS",
CachingMode: "none",
Incremental: true,
Tags: make(map[string]string),
VolumeContext: map[string]string{
consts.SkuNameField: "PremiumV2_LRS",
consts.CachingModeField: "none",
},
DeviceSettings: make(map[string]string),
},
expectedError: nil,
},
{
name: "disk parameters with PremiumV2_LRS (invalid cachingMode)",
inputParams: map[string]string{
consts.SkuNameField: "PremiumV2_LRS",
consts.CachingModeField: "ReadOnly",
},
expectedOutput: ManagedDiskParameters{
AccountType: "PremiumV2_LRS",
CachingMode: "ReadOnly",
Incremental: true,
Tags: make(map[string]string),
VolumeContext: map[string]string{
consts.SkuNameField: "PremiumV2_LRS",
consts.CachingModeField: "ReadOnly",
},
DeviceSettings: make(map[string]string),
},
expectedError: fmt.Errorf("cachingMode ReadOnly is not supported for PremiumV2_LRS"),
},
{
name: "valid parameters input",
inputParams: map[string]string{
Expand Down

0 comments on commit ea5bcc3

Please sign in to comment.