Skip to content

Commit d1bbf45

Browse files
authored
fix(region): update gp3 disk size (#24812)
1 parent 79ab73c commit d1bbf45

11 files changed

Lines changed: 299 additions & 35 deletions

File tree

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ require (
108108
k8s.io/cri-api v0.28.15
109109
k8s.io/klog/v2 v2.90.1
110110
moul.io/http2curl/v2 v2.3.0
111-
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260422030642-84e9ebcd4edc
111+
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260512084604-0d6b96958d7b
112112
yunion.io/x/executor v0.0.0-20260312022053-f538abd2b005
113113
yunion.io/x/jsonutils v1.0.1-0.20250507052344-1abcf4f443b1
114114
yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1783,8 +1783,8 @@ sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
17831783
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
17841784
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
17851785
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
1786-
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260422030642-84e9ebcd4edc h1:WEwV9QBvFzOZhvJbpcRYzgA1jAHnzq3IB2qhs+eECIc=
1787-
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260422030642-84e9ebcd4edc/go.mod h1:rCz5Nds6Zi/5uaj51oRDYdj5fZ5uULmKbuBAgNLuI+w=
1786+
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260512084604-0d6b96958d7b h1:G1f0+6msw1sX1d9D/91tdZ++b8qpXuHktau3vPh4X8I=
1787+
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260512084604-0d6b96958d7b/go.mod h1:rCz5Nds6Zi/5uaj51oRDYdj5fZ5uULmKbuBAgNLuI+w=
17881788
yunion.io/x/executor v0.0.0-20260312022053-f538abd2b005 h1:3sWwcjGXGjG9mLBWa7AyLq+QSi0udTAx21pfVQRFMBE=
17891789
yunion.io/x/executor v0.0.0-20260312022053-f538abd2b005/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws=
17901790
yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634=

pkg/apis/compute/storage_const.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ var (
198198
STORAGE_PUBLIC_CLOUD, STORAGE_CLOUD_SSD, STORAGE_CLOUD_ESSD_PL0, STORAGE_CLOUD_ESSD, STORAGE_CLOUD_ESSD_PL2, STORAGE_CLOUD_ESSD_PL3,
199199
STORAGE_EPHEMERAL_SSD, STORAGE_CLOUD_EFFICIENCY,
200200
STORAGE_STANDARD_LRS, STORAGE_STANDARDSSD_LRS, STORAGE_PREMIUM_LRS,
201-
STORAGE_GP2_SSD, STORAGE_GP3_SSD, STORAGE_IO1_SSD, STORAGE_ST1_HDD, STORAGE_SC1_HDD, STORAGE_STANDARD_HDD,
201+
STORAGE_GP2_SSD, STORAGE_GP3_SSD, STORAGE_IO1_SSD, STORAGE_IO2_SSD, STORAGE_ST1_HDD, STORAGE_SC1_HDD, STORAGE_STANDARD_HDD,
202202
STORAGE_LOCAL_BASIC, STORAGE_LOCAL_SSD, STORAGE_CLOUD_BASIC, STORAGE_CLOUD_PREMIUM,
203203
STORAGE_HUAWEI_SSD, STORAGE_HUAWEI_SAS, STORAGE_HUAWEI_SATA,
204204
STORAGE_OPENSTACK_ISCSI, STORAGE_UCLOUD_CLOUD_NORMAL, STORAGE_UCLOUD_CLOUD_SSD,

pkg/compute/guestdrivers/aws.go

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,15 @@ func (self *SAwsGuestDriver) GetWindowsUserDataType() string {
8484
return cloudprovider.CLOUD_EC2
8585
}
8686

87+
// AWS EBS 单卷容量:参见 https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html
88+
const (
89+
awsEbsGp2MaxSizeGiB = 16384 // gp2 最大 16 TiB
90+
awsEbsGp3MaxSizeGiB = 65536 // gp3 最大 64 TiB
91+
awsEbsIoMaxSizeGiB = 16384 // io1/io2 常规卷最大 16 TiB(io2 Block Express 另受实例等约束)
92+
awsEbsHddMaxSizeGiB = 16384 // st1/sc1 最大 16 TiB
93+
awsEbsSt1Sc1MinSizeGiB = 125 // st1/sc1 最小 125 GiB
94+
)
95+
8796
func (self *SAwsGuestDriver) GetInstanceCapability() cloudprovider.SInstanceCapability {
8897
return cloudprovider.SInstanceCapability{
8998
Hypervisor: self.GetHypervisor(),
@@ -100,18 +109,21 @@ func (self *SAwsGuestDriver) GetInstanceCapability() cloudprovider.SInstanceCapa
100109
},
101110
Storages: cloudprovider.Storage{
102111
DataDisk: []cloudprovider.StorageInfo{
103-
cloudprovider.StorageInfo{StorageType: api.STORAGE_GP2_SSD, MaxSizeGb: 16384, MinSizeGb: 1, StepSizeGb: 1, Resizable: true},
104-
cloudprovider.StorageInfo{StorageType: api.STORAGE_GP3_SSD, MaxSizeGb: 16384, MinSizeGb: 1, StepSizeGb: 1, Resizable: true},
105-
cloudprovider.StorageInfo{StorageType: api.STORAGE_IO1_SSD, MaxSizeGb: 16384, MinSizeGb: 4, StepSizeGb: 1, Resizable: true},
106-
cloudprovider.StorageInfo{StorageType: api.STORAGE_ST1_HDD, MaxSizeGb: 16384, MinSizeGb: 500, StepSizeGb: 1, Resizable: true},
107-
cloudprovider.StorageInfo{StorageType: api.STORAGE_SC1_HDD, MaxSizeGb: 16384, MinSizeGb: 500, StepSizeGb: 1, Resizable: true},
112+
cloudprovider.StorageInfo{StorageType: api.STORAGE_GP2_SSD, MaxSizeGb: awsEbsGp2MaxSizeGiB, MinSizeGb: 1, StepSizeGb: 1, Resizable: true},
113+
cloudprovider.StorageInfo{StorageType: api.STORAGE_GP3_SSD, MaxSizeGb: awsEbsGp3MaxSizeGiB, MinSizeGb: 1, StepSizeGb: 1, Resizable: true},
114+
cloudprovider.StorageInfo{StorageType: api.STORAGE_IO1_SSD, MaxSizeGb: awsEbsIoMaxSizeGiB, MinSizeGb: 4, StepSizeGb: 1, Resizable: true},
115+
cloudprovider.StorageInfo{StorageType: api.STORAGE_IO2_SSD, MaxSizeGb: awsEbsIoMaxSizeGiB, MinSizeGb: 4, StepSizeGb: 1, Resizable: true},
116+
cloudprovider.StorageInfo{StorageType: api.STORAGE_ST1_HDD, MaxSizeGb: awsEbsHddMaxSizeGiB, MinSizeGb: awsEbsSt1Sc1MinSizeGiB, StepSizeGb: 1, Resizable: true},
117+
cloudprovider.StorageInfo{StorageType: api.STORAGE_SC1_HDD, MaxSizeGb: awsEbsHddMaxSizeGiB, MinSizeGb: awsEbsSt1Sc1MinSizeGiB, StepSizeGb: 1, Resizable: true},
108118
cloudprovider.StorageInfo{StorageType: api.STORAGE_STANDARD_HDD, MaxSizeGb: 1024, MinSizeGb: 1, StepSizeGb: 1, Resizable: true},
109119
},
110120
SysDisk: []cloudprovider.StorageInfo{
111-
cloudprovider.StorageInfo{StorageType: api.STORAGE_GP2_SSD, MaxSizeGb: 16384, MinSizeGb: 1, StepSizeGb: 1, Resizable: false},
112-
cloudprovider.StorageInfo{StorageType: api.STORAGE_IO1_SSD, MaxSizeGb: 16384, MinSizeGb: 4, StepSizeGb: 1, Resizable: false},
113-
cloudprovider.StorageInfo{StorageType: api.STORAGE_ST1_HDD, MaxSizeGb: 16384, MinSizeGb: 500, StepSizeGb: 1, Resizable: false},
114-
cloudprovider.StorageInfo{StorageType: api.STORAGE_SC1_HDD, MaxSizeGb: 16384, MinSizeGb: 500, StepSizeGb: 1, Resizable: false},
121+
cloudprovider.StorageInfo{StorageType: api.STORAGE_GP2_SSD, MaxSizeGb: awsEbsGp2MaxSizeGiB, MinSizeGb: 1, StepSizeGb: 1, Resizable: false},
122+
cloudprovider.StorageInfo{StorageType: api.STORAGE_GP3_SSD, MaxSizeGb: awsEbsGp3MaxSizeGiB, MinSizeGb: 1, StepSizeGb: 1, Resizable: false},
123+
cloudprovider.StorageInfo{StorageType: api.STORAGE_IO1_SSD, MaxSizeGb: awsEbsIoMaxSizeGiB, MinSizeGb: 4, StepSizeGb: 1, Resizable: false},
124+
cloudprovider.StorageInfo{StorageType: api.STORAGE_IO2_SSD, MaxSizeGb: awsEbsIoMaxSizeGiB, MinSizeGb: 4, StepSizeGb: 1, Resizable: false},
125+
cloudprovider.StorageInfo{StorageType: api.STORAGE_ST1_HDD, MaxSizeGb: awsEbsHddMaxSizeGiB, MinSizeGb: awsEbsSt1Sc1MinSizeGiB, StepSizeGb: 1, Resizable: false},
126+
cloudprovider.StorageInfo{StorageType: api.STORAGE_SC1_HDD, MaxSizeGb: awsEbsHddMaxSizeGiB, MinSizeGb: awsEbsSt1Sc1MinSizeGiB, StepSizeGb: 1, Resizable: false},
115127
cloudprovider.StorageInfo{StorageType: api.STORAGE_STANDARD_HDD, MaxSizeGb: 1024, MinSizeGb: 1, StepSizeGb: 1, Resizable: false},
116128
},
117129
},

pkg/compute/hostdrivers/aws.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,21 @@ func (self *SAwsHostDriver) GetProvider() string {
4848
}
4949

5050
func (self *SAwsHostDriver) ValidateDiskSize(storage *models.SStorage, sizeGb int) error {
51-
if storage.StorageType == api.STORAGE_GP2_SSD || storage.StorageType == api.STORAGE_GP3_SSD {
51+
if storage.StorageType == api.STORAGE_GP2_SSD {
5252
if sizeGb < 1 || sizeGb > 16384 {
5353
return fmt.Errorf("The %s disk size must be in the range of 1G ~ 16384GB", storage.StorageType)
5454
}
55+
} else if storage.StorageType == api.STORAGE_GP3_SSD {
56+
if sizeGb < 1 || sizeGb > 65536 {
57+
return fmt.Errorf("The %s disk size must be in the range of 1G ~ 65536GB", storage.StorageType)
58+
}
5559
} else if storage.StorageType == api.STORAGE_IO1_SSD || storage.StorageType == api.STORAGE_IO2_SSD {
5660
if sizeGb < 4 || sizeGb > 16384 {
5761
return fmt.Errorf("The %s disk size must be in the range of 4G ~ 16384GB", storage.StorageType)
5862
}
5963
} else if utils.IsInStringArray(storage.StorageType, []string{api.STORAGE_ST1_HDD, api.STORAGE_SC1_HDD}) {
60-
if sizeGb < 500 || sizeGb > 16384 {
61-
return fmt.Errorf("The %s disk size must be in the range of 500G ~ 16384GB", storage.StorageType)
64+
if sizeGb < 125 || sizeGb > 16384 {
65+
return fmt.Errorf("The %s disk size must be in the range of 125G ~ 16384GB", storage.StorageType)
6266
}
6367
} else if storage.StorageType == api.STORAGE_STANDARD_HDD {
6468
if sizeGb < 1 || sizeGb > 1024 {

vendor/modules.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2598,7 +2598,7 @@ sigs.k8s.io/structured-merge-diff/v4/value
25982598
# sigs.k8s.io/yaml v1.3.0
25992599
## explicit; go 1.12
26002600
sigs.k8s.io/yaml
2601-
# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260422030642-84e9ebcd4edc
2601+
# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260512084604-0d6b96958d7b
26022602
## explicit; go 1.24
26032603
yunion.io/x/cloudmux/pkg/apis
26042604
yunion.io/x/cloudmux/pkg/apis/billing

vendor/yunion.io/x/cloudmux/pkg/multicloud/aws/bucket.go

Lines changed: 229 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/yunion.io/x/cloudmux/pkg/multicloud/aws/disk.go

Lines changed: 21 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)