Skip to content

Commit bed1f66

Browse files
committed
Avoid use of github.com/pkg/errors functions that capture stack
We are not making use of the stack traces that these functions capture, so we should avoid using them as unnecessary overhead. Signed-off-by: Brad Davidson <[email protected]>
1 parent 66d0f16 commit bed1f66

Some content is hidden

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

71 files changed

+368
-337
lines changed

cmd/k3s/main.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package main
33
import (
44
"bytes"
55
"context"
6+
"errors"
67
"io"
78
"io/fs"
89
"os"
@@ -20,7 +21,7 @@ import (
2021
"github.com/k3s-io/k3s/pkg/flock"
2122
"github.com/k3s-io/k3s/pkg/untar"
2223
"github.com/k3s-io/k3s/pkg/version"
23-
"github.com/pkg/errors"
24+
pkgerrors "github.com/pkg/errors"
2425
"github.com/rancher/wrangler/v3/pkg/resolvehome"
2526
"github.com/sirupsen/logrus"
2627
"github.com/spf13/pflag"
@@ -207,7 +208,7 @@ func stageAndRunCLI(cli *cli.Context, cmd string, dataDir string, args []string)
207208
func stageAndRun(dataDir, cmd string, args []string, calledAsInternal bool) error {
208209
dir, err := extract(dataDir)
209210
if err != nil {
210-
return errors.Wrap(err, "extracting data")
211+
return pkgerrors.WithMessage(err, "extracting data")
211212
}
212213
logrus.Debugf("Asset dir %s", dir)
213214

cmd/k3s/main_linux.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ import (
77
"os"
88
"syscall"
99

10-
"github.com/pkg/errors"
10+
pkgerrors "github.com/pkg/errors"
1111
)
1212

1313
const programPostfix = ""
1414

1515
func runExec(cmd string, args []string, calledAsInternal bool) (err error) {
1616
if err := syscall.Exec(cmd, args, os.Environ()); err != nil {
17-
return errors.Wrapf(err, "exec %s failed", cmd)
17+
return pkgerrors.WithMessagef(err, "exec %s failed", cmd)
1818
}
1919
return nil
2020
}

pkg/agent/config/config.go

+24-23
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"crypto/x509"
1010
"encoding/hex"
1111
"encoding/pem"
12+
"errors"
1213
"fmt"
1314
"io"
1415
"net"
@@ -32,7 +33,7 @@ import (
3233
"github.com/k3s-io/k3s/pkg/util"
3334
"github.com/k3s-io/k3s/pkg/version"
3435
"github.com/k3s-io/k3s/pkg/vpn"
35-
"github.com/pkg/errors"
36+
pkgerrors "github.com/pkg/errors"
3637
certutil "github.com/rancher/dynamiclistener/cert"
3738
"github.com/rancher/wharfie/pkg/registries"
3839
"github.com/rancher/wrangler/v3/pkg/slice"
@@ -247,7 +248,7 @@ func upgradeOldNodePasswordPath(oldNodePasswordFile, newNodePasswordFile string)
247248
func getKubeletServingCert(nodeName string, nodeIPs []net.IP, certFile, keyFile, nodePasswordFile string, info *clientaccess.Info) error {
248249
csr, err := getCSRBytes(keyFile)
249250
if err != nil {
250-
return errors.Wrapf(err, "failed to create certificate request %s", certFile)
251+
return pkgerrors.WithMessagef(err, "failed to create certificate request %s", certFile)
251252
}
252253

253254
basename := filepath.Base(certFile)
@@ -261,11 +262,11 @@ func getKubeletServingCert(nodeName string, nodeIPs []net.IP, certFile, keyFile,
261262
// must be used instead of the one we signed the CSR with.
262263
certBytes, keyBytes := splitCertKeyPEM(body)
263264
if err := os.WriteFile(certFile, certBytes, 0600); err != nil {
264-
return errors.Wrapf(err, "failed to write cert %s", certFile)
265+
return pkgerrors.WithMessagef(err, "failed to write cert %s", certFile)
265266
}
266267
if len(keyBytes) > 0 {
267268
if err := os.WriteFile(keyFile, keyBytes, 0600); err != nil {
268-
return errors.Wrapf(err, "failed to write key %s", keyFile)
269+
return pkgerrors.WithMessagef(err, "failed to write key %s", keyFile)
269270
}
270271
}
271272
return nil
@@ -279,7 +280,7 @@ func getHostFile(filename string, info *clientaccess.Info) error {
279280
return err
280281
}
281282
if err := os.WriteFile(filename, fileBytes, 0600); err != nil {
282-
return errors.Wrapf(err, "failed to write cert %s", filename)
283+
return pkgerrors.WithMessagef(err, "failed to write cert %s", filename)
283284
}
284285
return nil
285286
}
@@ -291,7 +292,7 @@ func getHostFile(filename string, info *clientaccess.Info) error {
291292
func getClientCert(certFile, keyFile string, info *clientaccess.Info) error {
292293
csr, err := getCSRBytes(keyFile)
293294
if err != nil {
294-
return errors.Wrapf(err, "failed to create certificate request %s", certFile)
295+
return pkgerrors.WithMessagef(err, "failed to create certificate request %s", certFile)
295296
}
296297

297298
basename := filepath.Base(certFile)
@@ -305,11 +306,11 @@ func getClientCert(certFile, keyFile string, info *clientaccess.Info) error {
305306
// must be used instead of the one we signed the CSR with.
306307
certBytes, keyBytes := splitCertKeyPEM(fileBytes)
307308
if err := os.WriteFile(certFile, certBytes, 0600); err != nil {
308-
return errors.Wrapf(err, "failed to write cert %s", certFile)
309+
return pkgerrors.WithMessagef(err, "failed to write cert %s", certFile)
309310
}
310311
if len(keyBytes) > 0 {
311312
if err := os.WriteFile(keyFile, keyBytes, 0600); err != nil {
312-
return errors.Wrapf(err, "failed to write key %s", keyFile)
313+
return pkgerrors.WithMessagef(err, "failed to write key %s", keyFile)
313314
}
314315
}
315316
return nil
@@ -352,7 +353,7 @@ func splitCertKeyPEM(bytes []byte) (certPem []byte, keyPem []byte) {
352353
func getKubeletClientCert(certFile, keyFile, nodeName string, nodeIPs []net.IP, nodePasswordFile string, info *clientaccess.Info) error {
353354
csr, err := getCSRBytes(keyFile)
354355
if err != nil {
355-
return errors.Wrapf(err, "failed to create certificate request %s", certFile)
356+
return pkgerrors.WithMessagef(err, "failed to create certificate request %s", certFile)
356357
}
357358

358359
basename := filepath.Base(certFile)
@@ -366,11 +367,11 @@ func getKubeletClientCert(certFile, keyFile, nodeName string, nodeIPs []net.IP,
366367
// must be used instead of the one we signed the CSR with.
367368
certBytes, keyBytes := splitCertKeyPEM(body)
368369
if err := os.WriteFile(certFile, certBytes, 0600); err != nil {
369-
return errors.Wrapf(err, "failed to write cert %s", certFile)
370+
return pkgerrors.WithMessagef(err, "failed to write cert %s", certFile)
370371
}
371372
if len(keyBytes) > 0 {
372373
if err := os.WriteFile(keyFile, keyBytes, 0600); err != nil {
373-
return errors.Wrapf(err, "failed to write key %s", keyFile)
374+
return pkgerrors.WithMessagef(err, "failed to write key %s", keyFile)
374375
}
375376
}
376377
return nil
@@ -437,13 +438,13 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N
437438

438439
controlConfig, err := getConfig(info)
439440
if err != nil {
440-
return nil, errors.Wrap(err, "failed to retrieve configuration from server")
441+
return nil, pkgerrors.WithMessage(err, "failed to retrieve configuration from server")
441442
}
442443
// If the supervisor and externally-facing apiserver are not on the same port, tell the proxy where to find the apiserver.
443444
if controlConfig.SupervisorPort != controlConfig.HTTPSPort {
444445
isIPv6 := utilsnet.IsIPv6(net.ParseIP(util.GetFirstValidIPString(envInfo.NodeIP)))
445446
if err := proxy.SetAPIServerPort(controlConfig.HTTPSPort, isIPv6); err != nil {
446-
return nil, errors.Wrapf(err, "failed to set apiserver port to %d", controlConfig.HTTPSPort)
447+
return nil, pkgerrors.WithMessagef(err, "failed to set apiserver port to %d", controlConfig.HTTPSPort)
447448
}
448449
}
449450
apiServerURL := proxy.APIServerURL()
@@ -452,7 +453,7 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N
452453
if controlConfig.FlannelBackend != config.FlannelBackendNone && len(envInfo.FlannelIface) > 0 {
453454
flannelIface, err = net.InterfaceByName(envInfo.FlannelIface)
454455
if err != nil {
455-
return nil, errors.Wrapf(err, "unable to find interface %s", envInfo.FlannelIface)
456+
return nil, pkgerrors.WithMessagef(err, "unable to find interface %s", envInfo.FlannelIface)
456457
}
457458
}
458459

@@ -508,7 +509,7 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N
508509
vpnIPs = append(vpnIPs, vpnInfo.IPv4Address)
509510
}
510511
} else {
511-
return nil, errors.Errorf("address family mismatch when assigning VPN addresses to node: node=%v, VPN ipv4=%v ipv6=%v", nodeIPs, vpnInfo.IPv4Address, vpnInfo.IPv6Address)
512+
return nil, fmt.Errorf("address family mismatch when assigning VPN addresses to node: node=%v, VPN ipv4=%v ipv6=%v", nodeIPs, vpnInfo.IPv4Address, vpnInfo.IPv6Address)
512513
}
513514

514515
// Overwrite nodeip and flannel interface and throw a warning if user explicitly set those parameters
@@ -523,7 +524,7 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N
523524
nodeIPs = vpnIPs
524525
flannelIface, err = net.InterfaceByName(vpnInfo.VPNInterface)
525526
if err != nil {
526-
return nil, errors.Wrapf(err, "unable to find vpn interface: %s", vpnInfo.VPNInterface)
527+
return nil, pkgerrors.WithMessagef(err, "unable to find vpn interface: %s", vpnInfo.VPNInterface)
527528
}
528529
}
529530
}
@@ -558,12 +559,12 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N
558559

559560
// Ask the server to sign our kubelet server cert.
560561
if err := getKubeletServingCert(nodeName, nodeExternalAndInternalIPs, servingKubeletCert, servingKubeletKey, newNodePasswordFile, info); err != nil {
561-
return nil, errors.Wrap(err, servingKubeletCert)
562+
return nil, pkgerrors.WithMessage(err, servingKubeletCert)
562563
}
563564

564565
// Ask the server to sign our kubelet client cert.
565566
if err := getKubeletClientCert(clientKubeletCert, clientKubeletKey, nodeName, nodeIPs, newNodePasswordFile, info); err != nil {
566-
return nil, errors.Wrap(err, clientKubeletCert)
567+
return nil, pkgerrors.WithMessage(err, clientKubeletCert)
567568
}
568569

569570
// Generate a kubeconfig for the kubelet.
@@ -577,7 +578,7 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N
577578

578579
// Ask the server to sign our kube-proxy client cert.
579580
if err := getClientCert(clientKubeProxyCert, clientKubeProxyKey, info); err != nil {
580-
return nil, errors.Wrap(err, clientKubeProxyCert)
581+
return nil, pkgerrors.WithMessage(err, clientKubeProxyCert)
581582
}
582583

583584
// Generate a kubeconfig for kube-proxy.
@@ -591,7 +592,7 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N
591592

592593
// Ask the server to sign our agent controller client cert.
593594
if err := getClientCert(clientK3sControllerCert, clientK3sControllerKey, info); err != nil {
594-
return nil, errors.Wrap(err, clientK3sControllerCert)
595+
return nil, pkgerrors.WithMessage(err, clientK3sControllerCert)
595596
}
596597

597598
// Generate a kubeconfig for the agent controller.
@@ -660,7 +661,7 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N
660661
} else {
661662
listenAddress, _, _, err := util.GetDefaultAddresses(nodeIPs[0])
662663
if err != nil {
663-
return nil, errors.Wrap(err, "cannot configure IPv4/IPv6 node-ip")
664+
return nil, pkgerrors.WithMessage(err, "cannot configure IPv4/IPv6 node-ip")
664665
}
665666
nodeConfig.AgentConfig.ListenAddress = listenAddress
666667
}
@@ -691,7 +692,7 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N
691692
if !nodeConfig.NoFlannel {
692693
hostLocal, err := exec.LookPath("host-local")
693694
if err != nil {
694-
return nil, errors.Wrapf(err, "failed to find host-local")
695+
return nil, pkgerrors.WithMessagef(err, "failed to find host-local")
695696
}
696697

697698
if envInfo.FlannelConf == "" {
@@ -858,7 +859,7 @@ func getKubeProxyDisabled(ctx context.Context, node *config.Node, proxy proxy.Pr
858859

859860
controlConfig, err := getConfig(info)
860861
if err != nil {
861-
return false, errors.Wrap(err, "failed to retrieve configuration from server")
862+
return false, pkgerrors.WithMessage(err, "failed to retrieve configuration from server")
862863
}
863864

864865
return controlConfig.DisableKubeProxy, nil

pkg/agent/config/config_linux.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44
package config
55

66
import (
7+
"errors"
78
"os"
89
"path/filepath"
910

1011
"github.com/k3s-io/k3s/pkg/agent/containerd"
1112
"github.com/k3s-io/k3s/pkg/cli/cmds"
1213
"github.com/k3s-io/k3s/pkg/daemons/config"
13-
"github.com/pkg/errors"
14+
pkgerrors "github.com/pkg/errors"
1415
"github.com/sirupsen/logrus"
1516
)
1617

@@ -24,17 +25,17 @@ func applyContainerdOSSpecificConfig(nodeConfig *config.Node) error {
2425
switch nodeConfig.AgentConfig.Snapshotter {
2526
case "overlayfs":
2627
if err := containerd.OverlaySupported(nodeConfig.Containerd.Root); err != nil {
27-
return errors.Wrapf(err, "\"overlayfs\" snapshotter cannot be enabled for %q, try using \"fuse-overlayfs\" or \"native\"",
28+
return pkgerrors.WithMessagef(err, "\"overlayfs\" snapshotter cannot be enabled for %q, try using \"fuse-overlayfs\" or \"native\"",
2829
nodeConfig.Containerd.Root)
2930
}
3031
case "fuse-overlayfs":
3132
if err := containerd.FuseoverlayfsSupported(nodeConfig.Containerd.Root); err != nil {
32-
return errors.Wrapf(err, "\"fuse-overlayfs\" snapshotter cannot be enabled for %q, try using \"native\"",
33+
return pkgerrors.WithMessagef(err, "\"fuse-overlayfs\" snapshotter cannot be enabled for %q, try using \"native\"",
3334
nodeConfig.Containerd.Root)
3435
}
3536
case "stargz":
3637
if err := containerd.StargzSupported(nodeConfig.Containerd.Root); err != nil {
37-
return errors.Wrapf(err, "\"stargz\" snapshotter cannot be enabled for %q, try using \"overlayfs\" or \"native\"",
38+
return pkgerrors.WithMessagef(err, "\"stargz\" snapshotter cannot be enabled for %q, try using \"overlayfs\" or \"native\"",
3839
nodeConfig.Containerd.Root)
3940
}
4041
nodeConfig.AgentConfig.ImageServiceSocket = "/run/containerd-stargz-grpc/containerd-stargz-grpc.sock"

pkg/agent/config/config_windows.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88

99
"github.com/k3s-io/k3s/pkg/cli/cmds"
1010
"github.com/k3s-io/k3s/pkg/daemons/config"
11-
"github.com/pkg/errors"
11+
pkgerrors "github.com/pkg/errors"
1212
"github.com/rancher/permissions/pkg/access"
1313
"github.com/rancher/permissions/pkg/acl"
1414
"github.com/rancher/permissions/pkg/sid"
@@ -46,7 +46,7 @@ func configureACL(file string) error {
4646
access.GrantSid(windows.GENERIC_ALL, sid.LocalSystem()),
4747
access.GrantSid(windows.GENERIC_ALL, sid.BuiltinAdministrators()),
4848
}...); err != nil {
49-
return errors.Wrapf(err, "failed to configure Access Control List For %s", file)
49+
return pkgerrors.WithMessagef(err, "failed to configure Access Control List For %s", file)
5050
}
5151

5252
return nil

pkg/agent/containerd/config_linux.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package containerd
55

66
import (
7+
"fmt"
78
"os"
89

910
containerd "github.com/containerd/containerd/v2/client"
@@ -16,7 +17,7 @@ import (
1617
"github.com/k3s-io/k3s/pkg/daemons/config"
1718
"github.com/k3s-io/k3s/pkg/version"
1819
"github.com/moby/sys/userns"
19-
"github.com/pkg/errors"
20+
pkgerrors "github.com/pkg/errors"
2021
"github.com/sirupsen/logrus"
2122
"golang.org/x/sys/unix"
2223
"k8s.io/cri-client/pkg/util"
@@ -78,7 +79,7 @@ func SetupContainerdConfig(cfg *config.Node) error {
7879

7980
// Verifies if the DefaultRuntime can be found
8081
if _, ok := extraRuntimes[cfg.DefaultRuntime]; !ok && cfg.DefaultRuntime != "" {
81-
return errors.Errorf("default runtime %s was not found", cfg.DefaultRuntime)
82+
return fmt.Errorf("default runtime %s was not found", cfg.DefaultRuntime)
8283
}
8384

8485
containerdConfig := templates.ContainerdConfig{
@@ -96,7 +97,7 @@ func SetupContainerdConfig(cfg *config.Node) error {
9697

9798
selEnabled, selConfigured, err := selinuxStatus()
9899
if err != nil {
99-
return errors.Wrap(err, "failed to detect selinux")
100+
return pkgerrors.WithMessage(err, "failed to detect selinux")
100101
}
101102
switch {
102103
case !cfg.SELinux && selEnabled:

pkg/agent/containerd/config_windows.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"github.com/k3s-io/k3s/pkg/agent/templates"
1111
"github.com/k3s-io/k3s/pkg/daemons/config"
1212
util3 "github.com/k3s-io/k3s/pkg/util"
13-
"github.com/pkg/errors"
13+
pkgerrors "github.com/pkg/errors"
1414
"github.com/sirupsen/logrus"
1515
"k8s.io/cri-client/pkg/util"
1616
)
@@ -68,13 +68,13 @@ func Client(address string) (*containerd.Client, error) {
6868
}
6969

7070
func OverlaySupported(root string) error {
71-
return errors.Wrapf(util3.ErrUnsupportedPlatform, "overlayfs is not supported")
71+
return pkgerrors.WithMessagef(util3.ErrUnsupportedPlatform, "overlayfs is not supported")
7272
}
7373

7474
func FuseoverlayfsSupported(root string) error {
75-
return errors.Wrapf(util3.ErrUnsupportedPlatform, "fuse-overlayfs is not supported")
75+
return pkgerrors.WithMessagef(util3.ErrUnsupportedPlatform, "fuse-overlayfs is not supported")
7676
}
7777

7878
func StargzSupported(root string) error {
79-
return errors.Wrapf(util3.ErrUnsupportedPlatform, "stargz is not supported")
79+
return pkgerrors.WithMessagef(util3.ErrUnsupportedPlatform, "stargz is not supported")
8080
}

0 commit comments

Comments
 (0)