Skip to content

Commit c7cf37b

Browse files
committed
migrate hyperdisk/chd/storagepools to GCE v1 disk API
1 parent d81bfcc commit c7cf37b

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

pkg/gce-cloud-provider/compute/gce-compute.go

+19-12
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ func convertV1CustomerEncryptionKeyToBeta(v1Key *computev1.CustomerEncryptionKey
419419
}
420420
}
421421

422-
func convertV1DiskToBetaDisk(v1Disk *computev1.Disk, provisionedThroughputOnCreate int64) *computebeta.Disk {
422+
func convertV1DiskToBetaDisk(v1Disk *computev1.Disk) *computebeta.Disk {
423423
var dek *computebeta.CustomerEncryptionKey = nil
424424

425425
if v1Disk.DiskEncryptionKey != nil {
@@ -447,8 +447,8 @@ func convertV1DiskToBetaDisk(v1Disk *computev1.Disk, provisionedThroughputOnCrea
447447
if v1Disk.ProvisionedIops > 0 {
448448
betaDisk.ProvisionedIops = v1Disk.ProvisionedIops
449449
}
450-
if provisionedThroughputOnCreate > 0 {
451-
betaDisk.ProvisionedThroughput = provisionedThroughputOnCreate
450+
if v1Disk.ProvisionedThroughput > 0 {
451+
betaDisk.ProvisionedThroughput = v1Disk.ProvisionedThroughput
452452
}
453453

454454
return betaDisk
@@ -543,7 +543,7 @@ func (cloud *CloudProvider) insertRegionalDisk(
543543

544544
if gceAPIVersion == GCEAPIVersionBeta {
545545
var insertOp *computebeta.Operation
546-
betaDiskToCreate := convertV1DiskToBetaDisk(diskToCreate, 0)
546+
betaDiskToCreate := convertV1DiskToBetaDisk(diskToCreate)
547547
betaDiskToCreate.MultiWriter = multiWriter
548548
insertOp, err = cloud.betaService.RegionDisks.Insert(project, volKey.Region, betaDiskToCreate).Context(ctx).Do()
549549
if insertOp != nil {
@@ -619,13 +619,9 @@ func (cloud *CloudProvider) insertZonalDisk(
619619
opName string
620620
gceAPIVersion = GCEAPIVersionV1
621621
)
622-
if multiWriter || containsBetaDiskType(hyperdiskTypes, params.DiskType) {
622+
if multiWriter {
623623
gceAPIVersion = GCEAPIVersionBeta
624624
}
625-
storagePoolsEnabled := params.StoragePools != nil
626-
if storagePoolsEnabled {
627-
gceAPIVersion = GCEAPIVersionAlpha
628-
}
629625

630626
diskToCreate := &computev1.Disk{
631627
Name: volKey.Name,
@@ -638,6 +634,17 @@ func (cloud *CloudProvider) insertZonalDisk(
638634
if params.ProvisionedIOPSOnCreate > 0 {
639635
diskToCreate.ProvisionedIops = params.ProvisionedIOPSOnCreate
640636
}
637+
if params.ProvisionedThroughputOnCreate > 0 {
638+
diskToCreate.ProvisionedThroughput = params.ProvisionedThroughputOnCreate
639+
}
640+
641+
if params.StoragePools != nil {
642+
sp := common.StoragePoolInZone(params.StoragePools, volKey.Zone)
643+
if sp == nil {
644+
return status.Errorf(codes.InvalidArgument, "cannot create disk in zone %q: no Storage Pools exist in zone", volKey.Zone)
645+
}
646+
diskToCreate.StoragePool = sp.ResourceName
647+
}
641648

642649
if snapshotID != "" {
643650
_, snapshotType, _, err := common.SnapshotIDToProjectKey(snapshotID)
@@ -662,20 +669,20 @@ func (cloud *CloudProvider) insertZonalDisk(
662669
KmsKeyName: params.DiskEncryptionKMSKey,
663670
}
664671
}
672+
diskToCreate.EnableConfidentialCompute = params.EnableConfidentialCompute
665673

666674
if gceAPIVersion == GCEAPIVersionBeta {
667675
var insertOp *computebeta.Operation
668-
betaDiskToCreate := convertV1DiskToBetaDisk(diskToCreate, params.ProvisionedThroughputOnCreate)
676+
betaDiskToCreate := convertV1DiskToBetaDisk(diskToCreate)
669677
betaDiskToCreate.MultiWriter = multiWriter
670-
betaDiskToCreate.EnableConfidentialCompute = params.EnableConfidentialCompute
671678
insertOp, err = cloud.betaService.Disks.Insert(project, volKey.Zone, betaDiskToCreate).Context(ctx).Do()
672679
if insertOp != nil {
673680
opName = insertOp.Name
674681
}
675682
} else if gceAPIVersion == GCEAPIVersionAlpha {
676683
var insertOp *computealpha.Operation
677684
var storagePool *common.StoragePool
678-
if storagePoolsEnabled {
685+
if params.StoragePools != nil {
679686
storagePool = common.StoragePoolInZone(params.StoragePools, volKey.Zone)
680687
if storagePool == nil {
681688
return status.Errorf(codes.InvalidArgument, "cannot create disk in zone %q: no Storage Pools exist in zone", volKey.Zone)

0 commit comments

Comments
 (0)