Skip to content

Commit 5bd2e07

Browse files
authored
Merge pull request kubernetes-sigs#1115 from sunnylovestiramisu/automated-cherry-pick-of-#1073-kubernetes-sigs#1084-kubernetes-sigs#1092-upstream-release-1.8
Automated cherry pick of kubernetes-sigs#1073: Add debugging log for the mapping of a PD name to /dev/* path kubernetes-sigs#1084: Upgrade klog v1 to v2 and fix error wrapping kubernetes-sigs#1092: Separate user errors from internal errors
2 parents 1751513 + 48b287b commit 5bd2e07

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+388
-2139
lines changed

cmd/gce-pd-csi-driver/main.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"runtime"
2424
"time"
2525

26-
"k8s.io/klog"
26+
"k8s.io/klog/v2"
2727

2828
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/common"
2929
gce "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/gce-cloud-provider/compute"
@@ -105,7 +105,7 @@ func handle() {
105105
}
106106
extraVolumeLabels, err := common.ConvertLabelsStringToMap(*extraVolumeLabelsStr)
107107
if err != nil {
108-
klog.Fatalf("Bad extra volume labels: %v", err)
108+
klog.Fatalf("Bad extra volume labels: %v", err.Error())
109109
}
110110

111111
gceDriver := driver.GetGCEDriver()
@@ -122,7 +122,7 @@ func handle() {
122122
if *runControllerService {
123123
cloudProvider, err := gce.CreateCloudProvider(ctx, version, *cloudConfigFilePath)
124124
if err != nil {
125-
klog.Fatalf("Failed to get cloud provider: %v", err)
125+
klog.Fatalf("Failed to get cloud provider: %v", err.Error())
126126
}
127127
initialBackoffDuration := time.Duration(*errorBackoffInitialDurationMs) * time.Millisecond
128128
maxBackoffDuration := time.Duration(*errorBackoffMaxDurationMs) * time.Microsecond
@@ -136,20 +136,20 @@ func handle() {
136136
if *runNodeService {
137137
mounter, err := mountmanager.NewSafeMounter()
138138
if err != nil {
139-
klog.Fatalf("Failed to get safe mounter: %v", err)
139+
klog.Fatalf("Failed to get safe mounter: %v", err.Error())
140140
}
141141
deviceUtils := mountmanager.NewDeviceUtils()
142142
statter := mountmanager.NewStatter(mounter)
143143
meta, err := metadataservice.NewMetadataService()
144144
if err != nil {
145-
klog.Fatalf("Failed to set up metadata service: %v", err)
145+
klog.Fatalf("Failed to set up metadata service: %v", err.Error())
146146
}
147147
nodeServer = driver.NewNodeServer(gceDriver, mounter, deviceUtils, meta, statter)
148148
}
149149

150150
err = gceDriver.SetupGCEDriver(driverName, version, extraVolumeLabels, identityServer, controllerServer, nodeServer)
151151
if err != nil {
152-
klog.Fatalf("Failed to initialize GCE CSI Driver: %v", err)
152+
klog.Fatalf("Failed to initialize GCE CSI Driver: %v", err.Error())
153153
}
154154

155155
gce.AttachDiskBackoff.Duration = *attachDiskBackoffDuration

go.mod

+1-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ require (
2222
k8s.io/apimachinery v0.24.1
2323
k8s.io/client-go v11.0.1-0.20190805182717-6502b5e7b1b5+incompatible
2424
k8s.io/component-base v0.24.1
25-
k8s.io/klog v1.0.0
25+
k8s.io/klog/v2 v2.60.1
2626
k8s.io/kubernetes v1.24.1
2727
k8s.io/mount-utils v0.24.1
2828
k8s.io/utils v0.0.0-20220713171938-56c0de1e6f5e
@@ -84,7 +84,6 @@ require (
8484
gopkg.in/yaml.v2 v2.4.0 // indirect
8585
gopkg.in/yaml.v3 v3.0.1 // indirect
8686
k8s.io/api v0.24.1 // indirect
87-
k8s.io/klog/v2 v2.60.1 // indirect
8887
k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42 // indirect
8988
k8s.io/test-infra v0.0.0-20210730160938-8ad9b8c53bd8 // indirect
9089
sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 // indirect

go.sum

-1
Original file line numberDiff line numberDiff line change
@@ -2451,7 +2451,6 @@ k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAE
24512451
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
24522452
k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
24532453
k8s.io/klog v0.3.3/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
2454-
k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
24552454
k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
24562455
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
24572456
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
"google.golang.org/api/googleapi"
2626
"google.golang.org/grpc/codes"
2727
"google.golang.org/grpc/status"
28-
"k8s.io/klog"
28+
"k8s.io/klog/v2"
2929
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/common"
3030

3131
"k8s.io/apimachinery/pkg/util/sets"
@@ -103,7 +103,7 @@ func (cloud *FakeCloudProvider) RepairUnderspecifiedVolumeKey(ctx context.Contex
103103
}
104104
r, err := common.GetRegionFromZones([]string{cloud.zone})
105105
if err != nil {
106-
return "", nil, fmt.Errorf("failed to get region from zones: %v", err)
106+
return "", nil, fmt.Errorf("failed to get region from zones: %w", err)
107107
}
108108
volumeKey.Region = r
109109
return project, volumeKey, nil

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

+20-20
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828
"google.golang.org/grpc/codes"
2929
"google.golang.org/grpc/status"
3030
"k8s.io/apimachinery/pkg/util/wait"
31-
"k8s.io/klog"
31+
"k8s.io/klog/v2"
3232
"sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/common"
3333
)
3434

@@ -115,7 +115,7 @@ func (cloud *CloudProvider) GetDefaultZone() string {
115115
func (cloud *CloudProvider) ListDisks(ctx context.Context) ([]*computev1.Disk, string, error) {
116116
region, err := common.GetRegionFromZones([]string{cloud.zone})
117117
if err != nil {
118-
return nil, "", fmt.Errorf("failed to get region from zones: %v", err)
118+
return nil, "", fmt.Errorf("failed to get region from zones: %w", err)
119119
}
120120
zones, err := cloud.ListZones(ctx, region)
121121
if err != nil {
@@ -162,7 +162,7 @@ func (cloud *CloudProvider) RepairUnderspecifiedVolumeKey(ctx context.Context, p
162162
}
163163
region, err := common.GetRegionFromZones([]string{cloud.zone})
164164
if err != nil {
165-
return "", nil, fmt.Errorf("failed to get region from zones: %v", err)
165+
return "", nil, fmt.Errorf("failed to get region from zones: %w", err)
166166
}
167167
switch volumeKey.Type() {
168168
case meta.Zonal:
@@ -216,7 +216,7 @@ func (cloud *CloudProvider) ListZones(ctx context.Context, region string) ([]str
216216
zones := []string{}
217217
zoneList, err := cloud.service.Zones.List(cloud.project).Filter(fmt.Sprintf("region eq .*%s$", region)).Do()
218218
if err != nil {
219-
return nil, fmt.Errorf("failed to list zones in region %s: %v", region, err)
219+
return nil, fmt.Errorf("failed to list zones in region %s: %w", region, err)
220220
}
221221
for _, zone := range zoneList.Items {
222222
zones = append(zones, zone.Name)
@@ -493,7 +493,7 @@ func (cloud *CloudProvider) insertRegionalDisk(
493493
klog.Warningf("GCE PD %s already exists, reusing", volKey.Name)
494494
return nil
495495
}
496-
return status.Error(codes.Internal, fmt.Sprintf("unknown Insert disk error: %v", err))
496+
return status.Error(codes.Internal, fmt.Sprintf("unknown Insert disk error: %v", err.Error()))
497497
}
498498
klog.V(5).Infof("InsertDisk operation %s for disk %s", opName, diskToCreate.Name)
499499

@@ -514,7 +514,7 @@ func (cloud *CloudProvider) insertRegionalDisk(
514514
klog.Warningf("GCE PD %s already exists after wait, reusing", volKey.Name)
515515
return nil
516516
}
517-
return fmt.Errorf("unknown Insert disk operation error: %v", err)
517+
return fmt.Errorf("unknown Insert disk operation error: %w", err)
518518
}
519519
return nil
520520
}
@@ -604,7 +604,7 @@ func (cloud *CloudProvider) insertZonalDisk(
604604
klog.Warningf("GCE PD %s already exists, reusing", volKey.Name)
605605
return nil
606606
}
607-
return fmt.Errorf("unknown Insert disk error: %v", err)
607+
return fmt.Errorf("unknown Insert disk error: %w", err)
608608
}
609609
klog.V(5).Infof("InsertDisk operation %s for disk %s", opName, diskToCreate.Name)
610610

@@ -626,7 +626,7 @@ func (cloud *CloudProvider) insertZonalDisk(
626626
klog.Warningf("GCE PD %s already exists after wait, reusing", volKey.Name)
627627
return nil
628628
}
629-
return fmt.Errorf("unknown Insert disk operation error: %v", err)
629+
return fmt.Errorf("unknown Insert disk operation error: %w", err)
630630
}
631631
return nil
632632
}
@@ -685,7 +685,7 @@ func (cloud *CloudProvider) AttachDisk(ctx context.Context, project string, volK
685685

686686
deviceName, err := common.GetDeviceName(volKey)
687687
if err != nil {
688-
return fmt.Errorf("failed to get device name: %v", err)
688+
return fmt.Errorf("failed to get device name: %w", err)
689689
}
690690
attachedDiskV1 := &computev1.AttachedDisk{
691691
DeviceName: deviceName,
@@ -697,13 +697,13 @@ func (cloud *CloudProvider) AttachDisk(ctx context.Context, project string, volK
697697

698698
op, err := cloud.service.Instances.AttachDisk(project, instanceZone, instanceName, attachedDiskV1).Context(ctx).Do()
699699
if err != nil {
700-
return fmt.Errorf("failed cloud service attach disk call: %v", err)
700+
return fmt.Errorf("failed cloud service attach disk call: %w", err)
701701
}
702702
klog.V(5).Infof("AttachDisk operation %s for disk %s", op.Name, attachedDiskV1.DeviceName)
703703

704704
err = cloud.waitForZonalOp(ctx, project, op.Name, instanceZone)
705705
if err != nil {
706-
return fmt.Errorf("failed when waiting for zonal op: %v", err)
706+
return fmt.Errorf("failed when waiting for zonal op: %w", err)
707707
}
708708
return nil
709709
}
@@ -814,7 +814,7 @@ func (cloud *CloudProvider) WaitForAttach(ctx context.Context, project string, v
814814
klog.V(6).Infof("Polling for attach of disk %v to instance %v to complete for %v", volKey.Name, instanceName, time.Since(start))
815815
disk, err := cloud.GetDisk(ctx, project, volKey, GCEAPIVersionV1)
816816
if err != nil {
817-
return false, fmt.Errorf("GetDisk failed to get disk: %v", err)
817+
return false, fmt.Errorf("GetDisk failed to get disk: %w", err)
818818
}
819819

820820
if disk == nil {
@@ -946,7 +946,7 @@ func (cloud *CloudProvider) waitForImageCreation(ctx context.Context, project, i
946946
klog.V(6).Infof("Checking GCE Image %s.", imageName)
947947
image, err := cloud.GetImage(ctx, project, imageName)
948948
if err != nil {
949-
klog.Warningf("Error in getting image %s, %v", imageName, err)
949+
klog.Warningf("Error in getting image %s, %v", imageName, err.Error())
950950
} else if image != nil {
951951
if image.Status != "PENDING" {
952952
klog.V(6).Infof("Image %s status is %s", imageName, image.Status)
@@ -1009,7 +1009,7 @@ func (cloud *CloudProvider) ResizeDisk(ctx context.Context, project string, volK
10091009
klog.V(5).Infof("Resizing disk %v to size %v", volKey, requestBytes)
10101010
cloudDisk, err := cloud.GetDisk(ctx, project, volKey, GCEAPIVersionV1)
10111011
if err != nil {
1012-
return -1, fmt.Errorf("failed to get disk: %v", err)
1012+
return -1, fmt.Errorf("failed to get disk: %w", err)
10131013
}
10141014

10151015
sizeGb := cloudDisk.GetSizeGb()
@@ -1037,13 +1037,13 @@ func (cloud *CloudProvider) resizeZonalDisk(ctx context.Context, project string,
10371037
}
10381038
op, err := cloud.service.Disks.Resize(project, volKey.Zone, volKey.Name, resizeReq).Context(ctx).Do()
10391039
if err != nil {
1040-
return -1, fmt.Errorf("failed to resize zonal volume %v: %v", volKey.String(), err)
1040+
return -1, fmt.Errorf("failed to resize zonal volume %v: %w", volKey.String(), err)
10411041
}
10421042
klog.V(5).Infof("ResizeDisk operation %s for disk %s", op.Name, volKey.Name)
10431043

10441044
err = cloud.waitForZonalOp(ctx, project, op.Name, volKey.Zone)
10451045
if err != nil {
1046-
return -1, fmt.Errorf("failed waiting for op for zonal resize for %s: %v", volKey.String(), err)
1046+
return -1, fmt.Errorf("failed waiting for op for zonal resize for %s: %w", volKey.String(), err)
10471047
}
10481048

10491049
return requestGb, nil
@@ -1056,13 +1056,13 @@ func (cloud *CloudProvider) resizeRegionalDisk(ctx context.Context, project stri
10561056

10571057
op, err := cloud.service.RegionDisks.Resize(project, volKey.Region, volKey.Name, resizeReq).Context(ctx).Do()
10581058
if err != nil {
1059-
return -1, fmt.Errorf("failed to resize regional volume %v: %v", volKey.String(), err)
1059+
return -1, fmt.Errorf("failed to resize regional volume %v: %w", volKey.String(), err)
10601060
}
10611061
klog.V(5).Infof("ResizeDisk operation %s for disk %s", op.Name, volKey.Name)
10621062

10631063
err = cloud.waitForRegionalOp(ctx, project, op.Name, volKey.Region)
10641064
if err != nil {
1065-
return -1, fmt.Errorf("failed waiting for op for regional resize for %s: %v", volKey.String(), err)
1065+
return -1, fmt.Errorf("failed waiting for op for regional resize for %s: %w", volKey.String(), err)
10661066
}
10671067

10681068
return requestGb, nil
@@ -1114,7 +1114,7 @@ func (cloud *CloudProvider) waitForSnapshotCreation(ctx context.Context, project
11141114
klog.V(6).Infof("Checking GCE Snapshot %s.", snapshotName)
11151115
snapshot, err := cloud.GetSnapshot(ctx, project, snapshotName)
11161116
if err != nil {
1117-
klog.Warningf("Error in getting snapshot %s, %v", snapshotName, err)
1117+
klog.Warningf("Error in getting snapshot %s, %v", snapshotName, err.Error())
11181118
} else if snapshot != nil {
11191119
if snapshot.Status != "CREATING" {
11201120
klog.V(6).Infof("Snapshot %s status is %s", snapshotName, snapshot.Status)
@@ -1161,7 +1161,7 @@ func encodeTags(tags map[string]string) (string, error) {
11611161

11621162
enc, err := json.Marshal(tags)
11631163
if err != nil {
1164-
return "", fmt.Errorf("failed to encodeTags %v: %v", tags, err)
1164+
return "", fmt.Errorf("failed to encodeTags %v: %w", tags, err)
11651165
}
11661166
return string(enc), nil
11671167
}

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

+5-5
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import (
3232
"google.golang.org/api/compute/v1"
3333
"google.golang.org/api/googleapi"
3434
"k8s.io/apimachinery/pkg/util/wait"
35-
"k8s.io/klog"
35+
"k8s.io/klog/v2"
3636
)
3737

3838
const (
@@ -100,7 +100,7 @@ func CreateCloudProvider(ctx context.Context, vendorVersion string, configPath s
100100

101101
project, zone, err := getProjectAndZone(configFile)
102102
if err != nil {
103-
return nil, fmt.Errorf("Failed getting Project and Zone: %v", err)
103+
return nil, fmt.Errorf("Failed getting Project and Zone: %w", err)
104104
}
105105

106106
return &CloudProvider{
@@ -148,13 +148,13 @@ func readConfig(configPath string) (*ConfigFile, error) {
148148

149149
reader, err := os.Open(configPath)
150150
if err != nil {
151-
return nil, fmt.Errorf("couldn't open cloud provider configuration at %s: %v", configPath, err)
151+
return nil, fmt.Errorf("couldn't open cloud provider configuration at %s: %w", configPath, err)
152152
}
153153
defer reader.Close()
154154

155155
cfg := &ConfigFile{}
156156
if err := gcfg.FatalOnly(gcfg.ReadInto(cfg, reader)); err != nil {
157-
return nil, fmt.Errorf("couldn't read cloud provider configuration at %s: %v", configPath, err)
157+
return nil, fmt.Errorf("couldn't read cloud provider configuration at %s: %w", configPath, err)
158158
}
159159
return cfg, nil
160160
}
@@ -193,7 +193,7 @@ func createCloudServiceWithDefaultServiceAccount(ctx context.Context, vendorVers
193193
func newOauthClient(ctx context.Context, tokenSource oauth2.TokenSource) (*http.Client, error) {
194194
if err := wait.PollImmediate(5*time.Second, 30*time.Second, func() (bool, error) {
195195
if _, err := tokenSource.Token(); err != nil {
196-
klog.Errorf("error fetching initial token: %v", err)
196+
klog.Errorf("error fetching initial token: %v", err.Error())
197197
return false, nil
198198
}
199199
return true, nil

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,19 @@ var _ MetadataService = &metadataServiceManager{}
4545
func NewMetadataService() (MetadataService, error) {
4646
zone, err := metadata.Zone()
4747
if err != nil {
48-
return nil, fmt.Errorf("failed to get current zone: %v", err)
48+
return nil, fmt.Errorf("failed to get current zone: %w", err)
4949
}
5050
projectID, err := metadata.ProjectID()
5151
if err != nil {
52-
return nil, fmt.Errorf("failed to get project: %v", err)
52+
return nil, fmt.Errorf("failed to get project: %w", err)
5353
}
5454
name, err := metadata.InstanceName()
5555
if err != nil {
56-
return nil, fmt.Errorf("failed to get instance name: %v", err)
56+
return nil, fmt.Errorf("failed to get instance name: %w", err)
5757
}
5858
fullMachineType, err := metadata.Get("instance/machine-type")
5959
if err != nil {
60-
return nil, fmt.Errorf("failed to get machine-type: %v", err)
60+
return nil, fmt.Errorf("failed to get machine-type: %w", err)
6161
}
6262
// Response format: "projects/[NUMERIC_PROJECT_ID]/machineTypes/[MACHINE_TYPE]"
6363
splits := strings.Split(fullMachineType, "/")

0 commit comments

Comments
 (0)