Skip to content

Remove support for GCE Alpha Disk Insert API #1667

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 5 additions & 52 deletions pkg/gce-cloud-provider/compute/cloud-disk.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,13 @@ import (
"strings"

"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
computealpha "google.golang.org/api/compute/v0.alpha"
computebeta "google.golang.org/api/compute/v0.beta"
computev1 "google.golang.org/api/compute/v1"
)

type CloudDisk struct {
disk *computev1.Disk
betaDisk *computebeta.Disk
alphaDisk *computealpha.Disk
disk *computev1.Disk
betaDisk *computebeta.Disk
}

type CloudDiskType string
Expand All @@ -43,12 +41,6 @@ func CloudDiskFromBeta(disk *computebeta.Disk) *CloudDisk {
}
}

func CloudDiskFromAlpha(disk *computealpha.Disk) *CloudDisk {
return &CloudDisk{
alphaDisk: disk,
}
}

func (d *CloudDisk) LocationType() meta.KeyType {
var zone, region string
switch {
Expand All @@ -58,9 +50,6 @@ func (d *CloudDisk) LocationType() meta.KeyType {
case d.betaDisk != nil:
zone = d.betaDisk.Zone
region = d.betaDisk.Region
case d.alphaDisk != nil:
zone = d.alphaDisk.Zone
region = d.alphaDisk.Region
}
switch {
case zone != "":
Expand All @@ -78,8 +67,6 @@ func (d *CloudDisk) GetUsers() []string {
return d.disk.Users
case d.betaDisk != nil:
return d.betaDisk.Users
case d.alphaDisk != nil:
return d.alphaDisk.Users
default:
return nil
}
Expand All @@ -91,8 +78,6 @@ func (d *CloudDisk) GetName() string {
return d.disk.Name
case d.betaDisk != nil:
return d.betaDisk.Name
case d.alphaDisk != nil:
return d.alphaDisk.Name
default:
return ""
}
Expand All @@ -104,8 +89,6 @@ func (d *CloudDisk) GetKind() string {
return d.disk.Kind
case d.betaDisk != nil:
return d.betaDisk.Kind
case d.alphaDisk != nil:
return d.alphaDisk.Kind
default:
return ""
}
Expand All @@ -117,8 +100,6 @@ func (d *CloudDisk) GetStatus() string {
return d.disk.Status
case d.betaDisk != nil:
return d.betaDisk.Status
case d.alphaDisk != nil:
return d.alphaDisk.Status
default:
return "Unknown"
}
Expand All @@ -134,8 +115,6 @@ func (d *CloudDisk) GetPDType() string {
pdType = d.disk.Type
case d.betaDisk != nil:
pdType = d.betaDisk.Type
case d.alphaDisk != nil:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How will this impact the endpoint in TPC?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think just that in TPC it will also only use beta/v1 which should not be a problem

pdType = d.alphaDisk.Type
default:
return ""
}
Expand All @@ -149,8 +128,6 @@ func (d *CloudDisk) GetSelfLink() string {
return d.disk.SelfLink
case d.betaDisk != nil:
return d.betaDisk.SelfLink
case d.alphaDisk != nil:
return d.alphaDisk.SelfLink
default:
return ""
}
Expand All @@ -162,8 +139,6 @@ func (d *CloudDisk) GetSizeGb() int64 {
return d.disk.SizeGb
case d.betaDisk != nil:
return d.betaDisk.SizeGb
case d.alphaDisk != nil:
return d.alphaDisk.SizeGb
default:
return -1
}
Expand All @@ -177,8 +152,6 @@ func (d *CloudDisk) setSizeGb(size int64) {
d.disk.SizeGb = size
case d.betaDisk != nil:
d.betaDisk.SizeGb = size
case d.alphaDisk != nil:
d.alphaDisk.SizeGb = size
}
}

Expand All @@ -188,8 +161,6 @@ func (d *CloudDisk) GetZone() string {
return d.disk.Zone
case d.betaDisk != nil:
return d.betaDisk.Zone
case d.alphaDisk != nil:
return d.alphaDisk.Zone
default:
return ""
}
Expand All @@ -201,8 +172,6 @@ func (d *CloudDisk) GetSnapshotId() string {
return d.disk.SourceSnapshotId
case d.betaDisk != nil:
return d.betaDisk.SourceSnapshotId
case d.alphaDisk != nil:
return d.alphaDisk.SourceSnapshotId
default:
return ""
}
Expand All @@ -214,8 +183,6 @@ func (d *CloudDisk) GetSourceDiskId() string {
return d.disk.SourceDiskId
case d.betaDisk != nil:
return d.betaDisk.SourceDiskId
case d.alphaDisk != nil:
return d.alphaDisk.SourceDiskId
default:
return ""
}
Expand All @@ -227,8 +194,6 @@ func (d *CloudDisk) GetImageId() string {
return d.disk.SourceImageId
case d.betaDisk != nil:
return d.betaDisk.SourceImageId
case d.alphaDisk != nil:
return d.alphaDisk.SourceImageId
default:
return ""
}
Expand All @@ -244,10 +209,6 @@ func (d *CloudDisk) GetKMSKeyName() string {
if dek := d.betaDisk.DiskEncryptionKey; dek != nil {
return dek.KmsKeyName
}
case d.alphaDisk != nil:
if dek := d.alphaDisk.DiskEncryptionKey; dek != nil {
return dek.KmsKeyName
}
}
return ""
}
Expand All @@ -258,8 +219,6 @@ func (d *CloudDisk) GetMultiWriter() bool {
return false
case d.betaDisk != nil:
return d.betaDisk.MultiWriter
case d.alphaDisk != nil:
return d.alphaDisk.MultiWriter
default:
return false
}
Expand All @@ -268,11 +227,9 @@ func (d *CloudDisk) GetMultiWriter() bool {
func (d *CloudDisk) GetEnableConfidentialCompute() bool {
switch {
case d.disk != nil:
return false
return d.disk.EnableConfidentialCompute
case d.betaDisk != nil:
return d.betaDisk.EnableConfidentialCompute
case d.alphaDisk != nil:
return d.alphaDisk.EnableConfidentialCompute
default:
return false
}
Expand All @@ -281,11 +238,9 @@ func (d *CloudDisk) GetEnableConfidentialCompute() bool {
func (d *CloudDisk) GetEnableStoragePools() bool {
switch {
case d.disk != nil:
return false
return d.disk.StoragePool != ""
case d.betaDisk != nil:
return false
case d.alphaDisk != nil:
return d.alphaDisk.StoragePool != ""
return d.betaDisk.StoragePool != ""
default:
return false
}
Expand All @@ -297,8 +252,6 @@ func (d *CloudDisk) GetLabels() map[string]string {
return d.disk.Labels
case d.betaDisk != nil:
return d.betaDisk.Labels
case d.alphaDisk != nil:
return d.alphaDisk.Labels
default:
return nil
}
Expand Down
26 changes: 0 additions & 26 deletions pkg/gce-cloud-provider/compute/cloud-disk_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import (
"testing"

"github.com/google/go-cmp/cmp"
computealpha "google.golang.org/api/compute/v0.alpha"
computebeta "google.golang.org/api/compute/v0.beta"
computev1 "google.golang.org/api/compute/v1"
)
Expand Down Expand Up @@ -100,22 +99,6 @@ func TestGetEnableStoragePools(t *testing.T) {
},
expectedEnableStoragePools: false,
},
{
name: "alpha disk without storage pool returns false",
cloudDisk: &CloudDisk{
alphaDisk: &computealpha.Disk{},
},
expectedEnableStoragePools: false,
},
{
name: "alpha disk with storage pool returns true",
cloudDisk: &CloudDisk{
alphaDisk: &computealpha.Disk{
StoragePool: "projects/my-project/zones/us-central1-a/storagePools/storagePool-1",
},
},
expectedEnableStoragePools: true,
},
}

for _, tc := range testCases {
Expand Down Expand Up @@ -155,15 +138,6 @@ func TestGetLabels(t *testing.T) {
},
wantLabels: map[string]string{"bar": "beta", "goog-gke-multi-zone": "true"},
},
{
name: "alpha disk without storage pool returns false",
cloudDisk: &CloudDisk{
alphaDisk: &computealpha.Disk{
Labels: map[string]string{"baz": "alpha", "goog-gke-multi-zone": "true"},
},
},
wantLabels: map[string]string{"baz": "alpha", "goog-gke-multi-zone": "true"},
},
}

for _, tc := range testCases {
Expand Down
61 changes: 0 additions & 61 deletions pkg/gce-cloud-provider/compute/gce-compute.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (

"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
csi "github.com/container-storage-interface/spec/lib/go/csi"
computealpha "google.golang.org/api/compute/v0.alpha"
computebeta "google.golang.org/api/compute/v0.beta"
computev1 "google.golang.org/api/compute/v1"
"google.golang.org/grpc/codes"
Expand Down Expand Up @@ -54,8 +53,6 @@ const (
GCEAPIVersionV1 GCEAPIVersion = "v1"
// Beta key type
GCEAPIVersionBeta GCEAPIVersion = "beta"
// Alpha key type
GCEAPIVersionAlpha GCEAPIVersion = "alpha"
)

// AttachDiskBackoff is backoff used to wait for AttachDisk to complete.
Expand Down Expand Up @@ -269,9 +266,6 @@ func (cloud *CloudProvider) GetDisk(ctx context.Context, project string, key *me
if gceAPIVersion == GCEAPIVersionBeta {
disk, err := cloud.getZonalBetaDiskOrError(ctx, project, key.Zone, key.Name)
return CloudDiskFromBeta(disk), err
} else if gceAPIVersion == GCEAPIVersionAlpha {
disk, err := cloud.getZonalAlphaDiskOrError(ctx, project, key.Zone, key.Name)
return CloudDiskFromAlpha(disk), err
} else {
disk, err := cloud.getZonalDiskOrError(ctx, project, key.Zone, key.Name)
return CloudDiskFromV1(disk), err
Expand Down Expand Up @@ -305,14 +299,6 @@ func (cloud *CloudProvider) getRegionalDiskOrError(ctx context.Context, project,
return disk, nil
}

func (cloud *CloudProvider) getZonalAlphaDiskOrError(ctx context.Context, project, volumeZone, volumeName string) (*computealpha.Disk, error) {
disk, err := cloud.alphaService.Disks.Get(project, volumeZone, volumeName).Context(ctx).Do()
if err != nil {
return nil, err
}
return disk, nil
}

func (cloud *CloudProvider) getZonalBetaDiskOrError(ctx context.Context, project, volumeZone, volumeName string) (*computebeta.Disk, error) {
disk, err := cloud.betaService.Disks.Get(project, volumeZone, volumeName).Context(ctx).Do()
if err != nil {
Expand Down Expand Up @@ -459,37 +445,6 @@ func convertV1DiskToBetaDisk(v1Disk *computev1.Disk) *computebeta.Disk {
return betaDisk
}

func convertV1DiskToAlphaDisk(v1Disk *computev1.Disk, provisionedThroughputOnCreate int64, storagePool *common.StoragePool) *computealpha.Disk {
// Note: this is an incomplete list. It only includes the fields we use for disk creation.
alphaDisk := &computealpha.Disk{
Name: v1Disk.Name,
SizeGb: v1Disk.SizeGb,
Description: v1Disk.Description,
Type: v1Disk.Type,
SourceSnapshot: v1Disk.SourceSnapshot,
SourceImage: v1Disk.SourceImage,
SourceImageId: v1Disk.SourceImageId,
SourceSnapshotId: v1Disk.SourceSnapshotId,
SourceDisk: v1Disk.SourceDisk,
ReplicaZones: v1Disk.ReplicaZones,
Zone: v1Disk.Zone,
Region: v1Disk.Region,
Status: v1Disk.Status,
SelfLink: v1Disk.SelfLink,
}
if v1Disk.ProvisionedIops > 0 {
alphaDisk.ProvisionedIops = v1Disk.ProvisionedIops
}
if provisionedThroughputOnCreate > 0 {
alphaDisk.ProvisionedThroughput = provisionedThroughputOnCreate
}
if storagePool != nil {
alphaDisk.StoragePool = storagePool.ResourceName
}

return alphaDisk
}

func (cloud *CloudProvider) insertRegionalDisk(
ctx context.Context,
project string,
Expand Down Expand Up @@ -684,22 +639,6 @@ func (cloud *CloudProvider) insertZonalDisk(
if insertOp != nil {
opName = insertOp.Name
}
} else if gceAPIVersion == GCEAPIVersionAlpha {
var insertOp *computealpha.Operation
var storagePool *common.StoragePool
if params.StoragePools != nil {
storagePool = common.StoragePoolInZone(params.StoragePools, volKey.Zone)
if storagePool == nil {
return status.Errorf(codes.InvalidArgument, "cannot create disk in zone %q: no Storage Pools exist in zone", volKey.Zone)
}
}
alphaDiskToCreate := convertV1DiskToAlphaDisk(diskToCreate, params.ProvisionedThroughputOnCreate, storagePool)
alphaDiskToCreate.MultiWriter = multiWriter
alphaDiskToCreate.EnableConfidentialCompute = params.EnableConfidentialCompute
insertOp, err = cloud.alphaService.Disks.Insert(project, volKey.Zone, alphaDiskToCreate).Context(ctx).Do()
if insertOp != nil {
opName = insertOp.Name
}
} else {
var insertOp *computev1.Operation
insertOp, err = cloud.service.Disks.Insert(project, volKey.Zone, diskToCreate).Context(ctx).Do()
Expand Down
Loading