Skip to content

Commit 8fff9db

Browse files
authored
Replace 'github.com/pkg/errors' with 'errors' (#8259)
Remove github.com/pkg/errors dependency
1 parent a2e9d95 commit 8fff9db

Some content is hidden

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

64 files changed

+249
-272
lines changed

docs/guidelines/design-conventions.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ General conventions followed when developing in eksctl:
2525
- i.e. no dots, ellipsis or semicolons
2626
- do not write long log messages, try to break up into two if extra information is needed
2727

28-
- use `errors.Wrapf` to wrap errors
28+
- use `fmt.Errorf` with `%w` to wrap errors
2929
- avoid wrapping errors that are already meaningful
3030

3131
- we use Kris Nova's logger, this may change in the future and we should probably abstract it

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ require (
5555
github.com/orcaman/concurrent-map v1.0.0
5656
github.com/otiai10/copy v1.14.1
5757
github.com/pelletier/go-toml v1.9.5
58-
github.com/pkg/errors v0.9.1
5958
github.com/sanathkr/go-yaml v0.0.0-20170819195128-ed9d249f429b
6059
github.com/sanathkr/yaml v0.0.0-20170819201035-0056894fa522
6160
github.com/sethvargo/go-password v0.3.1
@@ -335,6 +334,7 @@ require (
335334
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
336335
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
337336
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
337+
github.com/pkg/errors v0.9.1 // indirect
338338
github.com/pkg/sftp v1.13.7 // indirect
339339
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
340340
github.com/polyfloyd/go-errorlint v1.7.1 // indirect

pkg/actions/nodegroup/upgrade.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package nodegroup
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"strconv"
78
"strings"
@@ -16,7 +17,6 @@ import (
1617
"github.com/aws/aws-sdk-go-v2/service/eks"
1718
"github.com/blang/semver/v4"
1819
"github.com/kris-nova/logger"
19-
"github.com/pkg/errors"
2020

2121
"github.com/weaveworks/eksctl/pkg/goformation"
2222
"github.com/weaveworks/eksctl/pkg/goformation/cloudformation"
@@ -59,7 +59,7 @@ func (m *Manager) Upgrade(ctx context.Context, options UpgradeOptions) error {
5959

6060
if options.KubernetesVersion != "" {
6161
if _, err := semver.ParseTolerant(options.KubernetesVersion); err != nil {
62-
return errors.Wrap(err, "invalid Kubernetes version")
62+
return fmt.Errorf("invalid Kubernetes version: %w", err)
6363
}
6464
}
6565

@@ -130,7 +130,7 @@ func (m *Manager) upgradeUsingAPI(ctx context.Context, options UpgradeOptions, n
130130
// Use the current Kubernetes version
131131
version, err := semver.ParseTolerant(*nodegroup.Version)
132132
if err != nil {
133-
return errors.Wrapf(err, "unexpected error parsing Kubernetes version %q", *nodegroup.Version)
133+
return fmt.Errorf("unexpected error parsing Kubernetes version %q: %w", *nodegroup.Version, err)
134134
}
135135
input.Version = aws.String(fmt.Sprintf("%v.%v", version.Major, version.Minor))
136136
}
@@ -183,12 +183,12 @@ func (m *Manager) upgradeUsingStack(ctx context.Context, options UpgradeOptions,
183183
NodeGroupName: options.NodegroupName,
184184
})
185185
if err != nil {
186-
return errors.Wrap(err, "error fetching nodegroup template")
186+
return fmt.Errorf("error fetching nodegroup template: %w", err)
187187
}
188188

189189
stack, err := goformation.ParseJSON([]byte(template))
190190
if err != nil {
191-
return errors.Wrap(err, "unexpected error parsing nodegroup template")
191+
return fmt.Errorf("unexpected error parsing nodegroup template: %w", err)
192192
}
193193

194194
ngResources := stack.GetAllEKSNodegroupResources()
@@ -204,7 +204,7 @@ func (m *Manager) upgradeUsingStack(ctx context.Context, options UpgradeOptions,
204204
}
205205

206206
if err := m.stackManager.UpdateNodeGroupStack(ctx, options.NodegroupName, string(bytes), true); err != nil {
207-
return errors.Wrap(err, "error updating nodegroup stack")
207+
return fmt.Errorf("error updating nodegroup stack: %w", err)
208208
}
209209
return nil
210210
}
@@ -258,7 +258,7 @@ func (m *Manager) upgradeUsingStack(ctx context.Context, options UpgradeOptions,
258258
// Use the current Kubernetes version
259259
version, err := semver.ParseTolerant(*nodegroup.Version)
260260
if err != nil {
261-
return errors.Wrapf(err, "unexpected error parsing Kubernetes version %q", *nodegroup.Version)
261+
return fmt.Errorf("unexpected error parsing Kubernetes version %q: %w", *nodegroup.Version, err)
262262
}
263263
kubernetesVersion = fmt.Sprintf("%v.%v", version.Major, version.Minor)
264264
}
@@ -333,7 +333,7 @@ func (m *Manager) requiresStackUpdate(ctx context.Context, nodeGroupName string)
333333

334334
curVer, err := version.ParseEksctlVersion(version.GetVersion())
335335
if err != nil {
336-
return false, errors.Wrap(err, "unexpected error parsing current eksctl version")
336+
return false, fmt.Errorf("unexpected error parsing current eksctl version: %w", err)
337337
}
338338
return !ver.EQ(curVer), nil
339339
}
@@ -385,7 +385,7 @@ func (m *Manager) usesCustomAMIEKSNodeGroup(ctx context.Context, ng *ekstypes.No
385385
func (m *Manager) usesCustomAMI(ctx context.Context, lt *api.LaunchTemplate) (bool, error) {
386386
customLaunchTemplate, err := m.launchTemplateFetcher.Fetch(ctx, lt)
387387
if err != nil {
388-
return false, errors.Wrap(err, "error fetching launch template data")
388+
return false, fmt.Errorf("error fetching launch template data: %w", err)
389389
}
390390
return customLaunchTemplate.ImageId != nil, nil
391391
}

pkg/actions/podidentityassociation/iam_role_updater.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ package podidentityassociation
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"slices"
78
"time"
89

910
"github.com/aws/aws-sdk-go-v2/aws"
1011
cfntypes "github.com/aws/aws-sdk-go-v2/service/cloudformation/types"
1112
"github.com/kris-nova/logger"
12-
"github.com/pkg/errors"
1313

1414
api "github.com/weaveworks/eksctl/pkg/apis/eksctl.io/v1alpha5"
1515
"github.com/weaveworks/eksctl/pkg/cfn/builder"

pkg/addons/default/addons.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1212

1313
"github.com/kris-nova/logger"
14-
"github.com/pkg/errors"
1514

1615
"github.com/weaveworks/eksctl/pkg/kubernetes"
1716
)
@@ -93,7 +92,7 @@ func makeGetError[T any](resource *T, err error, resourceName string) (*T, error
9392
func newList(data []byte) (*metav1.List, error) {
9493
list, err := kubernetes.NewList(data)
9594
if err != nil {
96-
return nil, errors.Wrapf(err, "loading individual resources from manifest")
95+
return nil, fmt.Errorf("loading individual resources from manifest: %w", err)
9796
}
9897
return list, nil
9998
}

pkg/addons/default/coredns.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ package defaultaddons
33
import (
44
"context"
55
"embed"
6+
"errors"
67
"fmt"
78
"regexp"
89
"strings"
910

1011
"github.com/kris-nova/logger"
11-
"github.com/pkg/errors"
1212

1313
appsv1 "k8s.io/api/apps/v1"
1414
corev1 "k8s.io/api/core/v1"
@@ -42,7 +42,7 @@ func UpdateCoreDNS(ctx context.Context, input AddonInput, plan bool) (bool, erro
4242
logger.Warning("%q service was not found", KubeDNS)
4343
return false, nil
4444
}
45-
return false, errors.Wrapf(err, "getting %q service", KubeDNS)
45+
return false, fmt.Errorf("getting %q service: %w", KubeDNS, err)
4646
}
4747

4848
kubeDNSDeployment, err := input.RawClient.ClientSet().AppsV1().Deployments(metav1.NamespaceSystem).Get(ctx, CoreDNS, metav1.GetOptions{})
@@ -51,7 +51,7 @@ func UpdateCoreDNS(ctx context.Context, input AddonInput, plan bool) (bool, erro
5151
logger.Warning("%q was not found", CoreDNS)
5252
return false, nil
5353
}
54-
return false, errors.Wrapf(err, "getting %q", CoreDNS)
54+
return false, fmt.Errorf("getting %q: %w", CoreDNS, err)
5555
}
5656

5757
// if Deployment is present, go through our list of assets

pkg/addons/device_plugin.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import (
44
"context"
55
// For go:embed
66
_ "embed"
7+
"errors"
78
"fmt"
89
"time"
910

1011
"github.com/kris-nova/logger"
11-
"github.com/pkg/errors"
1212

1313
api "github.com/weaveworks/eksctl/pkg/apis/eksctl.io/v1alpha5"
1414
"github.com/weaveworks/eksctl/pkg/kubernetes"
@@ -87,14 +87,14 @@ type DevicePlugin interface {
8787
func applyDevicePlugin(dp DevicePlugin) error {
8888
list, err := kubernetes.NewList(dp.Manifest())
8989
if err != nil {
90-
return errors.Wrap(err, "creating list from device plugin manifest")
90+
return fmt.Errorf("creating list from device plugin manifest: %w", err)
9191
}
9292

9393
rawClient := dp.RawClient()
9494
for _, rawObj := range list.Items {
9595
rawResource, err := rawClient.NewRawResource(rawObj.Object)
9696
if err != nil {
97-
return errors.Wrap(err, "creating raw resource from list item")
97+
return fmt.Errorf("creating raw resource from list item: %w", err)
9898
}
9999
switch rawResource.GVK.Kind {
100100
case "DaemonSet":
@@ -103,23 +103,23 @@ func applyDevicePlugin(dp DevicePlugin) error {
103103
return &typeAssertionError{&appsv1.DaemonSet{}, rawResource}
104104
}
105105
if err := dp.SetImage(&daemonSet.Spec.Template); err != nil {
106-
return errors.Wrap(err, "setting image of device plugin daemonset")
106+
return fmt.Errorf("setting image of device plugin daemonset: %w", err)
107107
}
108108
if err := dp.SetTolerations(&daemonSet.Spec.Template); err != nil {
109-
return errors.Wrap(err, "adding tolerations to device plugin daemonset")
109+
return fmt.Errorf("adding tolerations to device plugin daemonset: %w", err)
110110
}
111111
msg, err := rawResource.CreateOrReplace(dp.PlanMode())
112112
if err != nil {
113-
return errors.Wrap(err, "calling create or replace on raw device plugin daemonset")
113+
return fmt.Errorf("calling create or replace on raw device plugin daemonset: %w", err)
114114
}
115115
logger.Info(msg)
116116
if err := watchDaemonSetReady(dp.RawClient().ClientSet().AppsV1().DaemonSets(daemonSet.Namespace), daemonSet.Name); err != nil {
117-
return errors.Wrap(err, "waiting for device plugin daemonset to become ready")
117+
return fmt.Errorf("waiting for device plugin daemonset to become ready: %w", err)
118118
}
119119
default:
120120
status, err := rawResource.CreateOrReplace(dp.PlanMode())
121121
if err != nil {
122-
return errors.Wrap(err, "calling create or replace on raw device plugin rawResource")
122+
return fmt.Errorf("calling create or replace on raw device plugin rawResource: %w", err)
123123
}
124124
logger.Info(status)
125125
}

pkg/addons/irsa_helper.go

+2-4
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ import (
44
"context"
55
"fmt"
66

7-
"github.com/pkg/errors"
8-
97
"github.com/weaveworks/eksctl/pkg/actions/irsa"
108
api "github.com/weaveworks/eksctl/pkg/apis/eksctl.io/v1alpha5"
119
"github.com/weaveworks/eksctl/pkg/cfn/manager"
@@ -40,7 +38,7 @@ func NewIRSAHelper(oidc *iamoidc.OpenIDConnectManager, stackManager manager.Stac
4038
func (h *irsaHelper) IsSupported(ctx context.Context) (bool, error) {
4139
exists, err := h.oidc.CheckProviderExists(ctx)
4240
if err != nil {
43-
return false, errors.Wrapf(err, "error checking OIDC provider")
41+
return false, fmt.Errorf("error checking OIDC provider: %w", err)
4442
}
4543
return exists, nil
4644
}
@@ -52,7 +50,7 @@ func (h *irsaHelper) CreateOrUpdate(ctx context.Context, sa *api.ClusterIAMServi
5250
stack, err := h.stackManager.DescribeStack(ctx, &manager.Stack{StackName: &name})
5351
if err != nil {
5452
if !manager.IsStackDoesNotExistError(err) {
55-
return errors.Wrapf(err, "error checking if iamserviceaccount %s/%s exists", sa.Namespace, sa.Name)
53+
return fmt.Errorf("error checking if iamserviceaccount %s/%s exists: %w", sa.Namespace, sa.Name, err)
5654
}
5755
}
5856
if stack == nil {

pkg/addons/vpc_controller.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ import (
44
"context"
55
// For go:embed
66
_ "embed"
7+
"errors"
78
"fmt"
89
"time"
910

1011
"github.com/cloudflare/cfssl/csr"
1112
"github.com/kris-nova/logger"
12-
"github.com/pkg/errors"
1313

1414
api "github.com/weaveworks/eksctl/pkg/apis/eksctl.io/v1alpha5"
1515
"github.com/weaveworks/eksctl/pkg/assetutil"
@@ -130,7 +130,7 @@ func (v *VPCController) generateCert() error {
130130

131131
csrPEM, privateKey, err := generateCertReq(webhookServiceName, vpcControllerNamespace)
132132
if err != nil {
133-
return errors.Wrap(err, "generating CSR")
133+
return fmt.Errorf("generating CSR: %w", err)
134134
}
135135

136136
manifest := vpcAdmissionWebhookCsrYaml
@@ -148,7 +148,7 @@ func (v *VPCController) generateCert() error {
148148
certificateSigningRequest.Name = csrName
149149

150150
if err := v.applyRawResource(certificateSigningRequest); err != nil {
151-
return errors.Wrap(err, "creating CertificateSigningRequest")
151+
return fmt.Errorf("creating CertificateSigningRequest: %w", err)
152152
}
153153

154154
certificateSigningRequest.Status.Conditions = []certsv1beta1.CertificateSigningRequestCondition{
@@ -161,7 +161,7 @@ func (v *VPCController) generateCert() error {
161161
}
162162

163163
if _, err := csrClientSet.UpdateApproval(context.TODO(), certificateSigningRequest, metav1.UpdateOptions{}); err != nil {
164-
return errors.Wrap(err, "updating approval")
164+
return fmt.Errorf("updating approval: %w", err)
165165
}
166166

167167
logger.Info("waiting for certificate to be available")
@@ -227,7 +227,7 @@ func (v *VPCController) createCertSecrets(key, cert []byte) error {
227227

228228
err := v.applyRawResource(secret)
229229
if err != nil {
230-
return errors.Wrap(err, "error creating secret")
230+
return fmt.Errorf("error creating secret: %w", err)
231231
}
232232
return err
233233
}
@@ -266,7 +266,7 @@ func (v *VPCController) deployVPCResourceController(ctx context.Context) error {
266266
AttachPolicy: makePolicyDocument(),
267267
}
268268
if err := v.irsa.CreateOrUpdate(ctx, sa); err != nil {
269-
return errors.Wrap(err, "error enabling IRSA")
269+
return fmt.Errorf("error enabling IRSA: %w", err)
270270
}
271271
} else {
272272
// If an OIDC provider isn't associated with the cluster, the VPC controller relies on the managed policy

pkg/apis/eksctl.io/v1alpha5/identity_provider.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ package v1alpha5
22

33
import (
44
"encoding/json"
5+
"errors"
56
"fmt"
6-
7-
"github.com/pkg/errors"
87
)
98

109
type IdentityProviderType string

pkg/apis/eksctl.io/v1alpha5/identitymapping.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package v1alpha5
22

33
import (
4-
"github.com/pkg/errors"
4+
"errors"
55
)
66

77
// IAMIdentityMapping contains IAM accounts, users, roles and services that will be added to the

pkg/apis/eksctl.io/v1alpha5/vpc.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ package v1alpha5
22

33
import (
44
"encoding/json"
5+
"errors"
56
"fmt"
67
"net"
78
"reflect"
89

910
ec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types"
1011

1112
"github.com/aws/aws-sdk-go-v2/aws"
12-
"github.com/pkg/errors"
1313

1414
"github.com/weaveworks/eksctl/pkg/utils/ipnet"
1515
)

0 commit comments

Comments
 (0)