This is an automated email from the ASF dual-hosted git repository.

pcongiusti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git


The following commit(s) were added to refs/heads/main by this push:
     new 802f26893 chore(dep): Remove archived github.com/pkg/errors dependency
802f26893 is described below

commit 802f2689316caa52faa58f6898256a9b75b7f345
Author: Gaelle Fournier <[email protected]>
AuthorDate: Fri May 5 18:11:41 2023 +0200

    chore(dep): Remove archived github.com/pkg/errors dependency
    
    Ref #4326
    
    * process used: https://xdg.me/rewriting-go-with-ast-transformation/
    * some helping tooling: https://github.com/xdg-go/go-rewrap-errors
    
    Principal manual adaptations : k8serrors, errors.Cause
---
 addons/keda/keda.go                                | 13 +++++----
 addons/keda/keda_test.go                           |  5 ++--
 docs/modules/ROOT/partials/apis/camel-k-crds.adoc  |  6 ++--
 docs/modules/traits/pages/cron.adoc                |  6 ++--
 e2e/common/cli/default.go                          |  2 +-
 e2e/common/config/default.go                       |  2 +-
 e2e/common/languages/default.go                    |  2 +-
 e2e/common/misc/client_test.go                     |  2 +-
 e2e/common/misc/default.go                         |  2 +-
 e2e/common/misc/kamelet_binding_test.go            |  2 +-
 e2e/common/misc/kamelet_binding_with_image_test.go |  2 +-
 e2e/common/misc/kamelet_update_test.go             |  2 +-
 e2e/common/traits/default.go                       |  2 +-
 e2e/common/traits/deployment_test.go               |  3 +-
 e2e/common/traits/errored_trait_test.go            |  2 +-
 e2e/common/traits/health_test.go                   |  3 +-
 e2e/common/traits/pdb_test.go                      |  6 ++--
 e2e/common/traits/prometheus_test.go               |  4 +--
 e2e/commonwithcustominstall/debug_test.go          |  7 +++--
 .../platform_traits_test.go                        |  1 -
 e2e/knative/default.go                             |  2 +-
 e2e/knative/knative_platform_test.go               |  2 +-
 e2e/knative/openapi_test.go                        |  3 +-
 e2e/support/csv.go                                 |  6 ++--
 e2e/support/test_support.go                        |  5 ++--
 e2e/support/test_util.go                           |  3 +-
 go.mod                                             |  2 +-
 pkg/apis/camel/v1/trait/cron.go                    |  6 ++--
 pkg/builder/quarkus.go                             | 14 ++++-----
 pkg/builder/s2i.go                                 | 25 ++++++++--------
 pkg/client/apply.go                                |  3 +-
 pkg/client/client.go                               |  3 +-
 pkg/cmd/debug.go                                   |  3 +-
 pkg/cmd/install.go                                 | 21 ++++++-------
 pkg/cmd/local/container.go                         |  8 ++---
 pkg/cmd/local/local.go                             | 12 ++++----
 pkg/cmd/local_build.go                             |  2 +-
 pkg/cmd/local_run.go                               |  5 ++--
 pkg/cmd/modeline.go                                |  9 +++---
 pkg/cmd/operator/operator.go                       |  3 +-
 pkg/cmd/promote.go                                 | 17 +++++------
 pkg/cmd/rebuild.go                                 |  8 ++---
 pkg/cmd/reset.go                                   | 21 ++++++-------
 pkg/cmd/root.go                                    |  6 ++--
 pkg/cmd/run.go                                     | 13 +++++----
 pkg/cmd/run_test.go                                |  2 +-
 pkg/cmd/source/source.go                           |  5 ++--
 pkg/cmd/source/util.go                             |  4 +--
 pkg/cmd/uninstall.go                               |  6 ++--
 pkg/controller/build/build_controller.go           |  4 +--
 pkg/controller/build/build_pod.go                  |  3 +-
 pkg/controller/build/initialize_pod.go             |  5 ++--
 pkg/controller/build/monitor_pod.go                |  5 ++--
 pkg/controller/catalog/catalog_controller.go       |  4 +--
 pkg/controller/integration/build_kit.go            | 34 ++++++++++++----------
 .../integration/integration_controller.go          |  4 +--
 pkg/controller/integration/kits.go                 |  4 +--
 pkg/controller/integrationkit/build.go             |  8 ++---
 pkg/controller/integrationkit/initialize.go        |  4 +--
 .../integrationkit/integrationkit_controller.go    |  4 +--
 .../integrationplatform_controller.go              |  4 +--
 pkg/controller/integrationplatform/kaniko_cache.go |  6 ++--
 pkg/controller/kamelet/kamelet_controller.go       |  4 +--
 pkg/controller/kameletbinding/error_handler.go     | 14 ++++-----
 pkg/controller/kameletbinding/initialize.go        |  5 ++--
 pkg/controller/kameletbinding/integration.go       | 19 ++++++------
 .../kameletbinding/kameletbinding_controller.go    |  4 +--
 pkg/controller/kameletbinding/monitor.go           |  4 +--
 pkg/controller/pipe/error_handler.go               | 14 ++++-----
 pkg/controller/pipe/initialize.go                  |  5 ++--
 pkg/controller/pipe/integration.go                 | 19 ++++++------
 pkg/controller/pipe/monitor.go                     |  4 +--
 pkg/controller/pipe/pipe_controller.go             |  4 +--
 pkg/install/cluster.go                             | 18 ++++++------
 pkg/install/kamelets.go                            |  3 +-
 pkg/install/openshift.go                           |  6 ++--
 pkg/install/operator.go                            |  9 +++---
 pkg/kamelet/initialize.go                          |  3 +-
 pkg/platform/defaults.go                           |  5 ++--
 pkg/resources/resources_support.go                 | 17 +++++------
 pkg/trait/camel.go                                 | 10 +++----
 pkg/trait/gc.go                                    |  8 ++---
 pkg/trait/init.go                                  |  3 +-
 pkg/trait/jvm.go                                   |  3 +-
 pkg/trait/knative.go                               | 12 ++++----
 pkg/trait/openapi.go                               |  5 ++--
 pkg/trait/pull_secret.go                           |  4 +--
 pkg/trait/trait.go                                 | 10 +++----
 pkg/trait/trait_catalog.go                         |  7 +++--
 pkg/trait/trait_configure.go                       |  6 ++--
 pkg/trait/trait_types.go                           |  4 +--
 pkg/trait/util.go                                  |  4 +--
 pkg/util/command.go                                |  7 ++---
 pkg/util/docker/docker.go                          |  2 +-
 pkg/util/kubernetes/discovery.go                   |  4 +--
 pkg/util/kubernetes/log/pod_scraper.go             |  3 +-
 pkg/util/kubernetes/replace.go                     |  4 +--
 pkg/util/kubernetes/resolver.go                    |  4 +--
 pkg/util/maven/maven_command.go                    |  3 +-
 pkg/util/olm/operator.go                           | 15 +++++-----
 pkg/util/openshift/openshift.go                    |  4 +--
 pkg/util/property/property.go                      |  4 +--
 pkg/util/reference/reference.go                    |  7 +++--
 pkg/util/util.go                                   | 16 +++++-----
 104 files changed, 337 insertions(+), 351 deletions(-)

diff --git a/addons/keda/keda.go b/addons/keda/keda.go
index b47ee4e89..8fa069c72 100644
--- a/addons/keda/keda.go
+++ b/addons/keda/keda.go
@@ -20,6 +20,7 @@ package keda
 import (
        "bytes"
        "encoding/json"
+       "errors"
        "fmt"
        "sort"
        "strings"
@@ -37,7 +38,7 @@ import (
        "github.com/apache/camel-k/v2/pkg/util/property"
        "github.com/apache/camel-k/v2/pkg/util/source"
        "github.com/apache/camel-k/v2/pkg/util/uri"
-       "github.com/pkg/errors"
+
        autoscalingv1 "k8s.io/api/autoscaling/v1"
        v1 "k8s.io/api/core/v1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -225,7 +226,7 @@ func (t *kedaTrait) addScalingResources(e 
*trait.Environment) error {
                                Name:      trigger.AuthenticationSecret,
                        }
                        if err := e.Client.Get(e.Ctx, key, &s); err != nil {
-                               return errors.Wrapf(err, "could not load secret 
named %q in namespace %q", trigger.AuthenticationSecret, 
e.Integration.Namespace)
+                               return fmt.Errorf("could not load secret named 
%q in namespace %q: %w", trigger.AuthenticationSecret, e.Integration.Namespace, 
err)
                        }
                        // Fill a TriggerAuthentication from the secret
                        triggerAuth := kedav1alpha1.TriggerAuthentication{
@@ -480,11 +481,11 @@ func (t *kedaTrait) evaluateTemplateParameters(e 
*trait.Environment, kamelet *ca
        for param, expr := range paramTemplates {
                tmpl, err := template.New(fmt.Sprintf("kamelet-param-%s", 
param)).Parse(expr)
                if err != nil {
-                       return nil, nil, errors.Wrapf(err, "invalid template 
for KEDA parameter %q: %q", param, expr)
+                       return nil, nil, fmt.Errorf("invalid template for KEDA 
parameter %q: %q: %w", param, expr, err)
                }
                var buf bytes.Buffer
                if err := tmpl.Execute(&buf, kameletPropValues); err != nil {
-                       return nil, nil, errors.Wrapf(err, "unable to process 
template for KEDA parameter %q: %q", param, expr)
+                       return nil, nil, fmt.Errorf("unable to process template 
for KEDA parameter %q: %q: %w", param, expr, err)
                }
                paramValues[param] = buf.String()
        }
@@ -502,7 +503,7 @@ func (t *kedaTrait) getKameletPropertyValue(e 
*trait.Environment, kamelet *camel
                        if c.Type == "property" && strings.HasPrefix(c.Value, 
kameletSpecificKey) {
                                v, err := 
property.DecodePropertyFileValue(c.Value, kameletSpecificKey)
                                if err != nil {
-                                       return "", errors.Wrapf(err, "could not 
decode property %q", kameletSpecificKey)
+                                       return "", fmt.Errorf("could not decode 
property %q: %w", kameletSpecificKey, err)
                                }
                                return v, nil
                        }
@@ -522,7 +523,7 @@ func (t *kedaTrait) getKameletPropertyValue(e 
*trait.Environment, kamelet *camel
                        d := 
json.NewDecoder(bytes.NewReader(schema.Default.RawMessage))
                        d.UseNumber()
                        if err := d.Decode(&val); err != nil {
-                               return "", errors.Wrapf(err, "cannot decode 
default value for property %q", prop)
+                               return "", fmt.Errorf("cannot decode default 
value for property %q: %w", prop, err)
                        }
                        v := fmt.Sprintf("%v", val)
                        return v, nil
diff --git a/addons/keda/keda_test.go b/addons/keda/keda_test.go
index 8a5f64c49..73d60d4ea 100644
--- a/addons/keda/keda_test.go
+++ b/addons/keda/keda_test.go
@@ -20,6 +20,7 @@ package keda
 import (
        "context"
        "encoding/json"
+       "fmt"
        "testing"
 
        "github.com/apache/camel-k/v2/addons/keda/duck/v1alpha1"
@@ -29,7 +30,7 @@ import (
        "github.com/apache/camel-k/v2/pkg/util/camel"
        "github.com/apache/camel-k/v2/pkg/util/kubernetes"
        "github.com/apache/camel-k/v2/pkg/util/test"
-       "github.com/pkg/errors"
+
        "github.com/stretchr/testify/assert"
        corev1 "k8s.io/api/core/v1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -438,7 +439,7 @@ func getSecret(e *trait.Environment) *corev1.Secret {
 func createBasicTestEnvironment(resources ...runtime.Object) 
*trait.Environment {
        fakeClient, err := test.NewFakeClient(resources...)
        if err != nil {
-               panic(errors.Wrap(err, "could not create fake client"))
+               panic(fmt.Errorf("could not create fake client: %w", err))
        }
 
        var it *camelv1.Integration
diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc 
b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
index 4cbcfd037..05067c9cb 100644
--- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
@@ -5522,9 +5522,9 @@ in order to save resources when the integration does not 
need to be executed.
 Integrations that start from the following components are evaluated by the 
cron trait: `timer`, `cron`, `quartz`.
 
 The rules for using a Kubernetes CronJob are the following:
-- `timer`: when periods can be written as cron expressions. E.g. 
`timer:tick?period=60000`.
-- `cron`, `quartz`: when the cron expression does not contain seconds (or the 
"seconds" part is set to 0). E.g.
-  `cron:tab?schedule=0/2$\{plus}*\{plus}*\{plus}*\{plus}?` or 
`quartz:trigger?cron=0\{plus}0/2\{plus}*\{plus}*\{plus}*\{plus}?`.
+  - `timer`: when periods can be written as cron expressions. E.g. 
`timer:tick?period=60000`.
+  - `cron`, `quartz`: when the cron expression does not contain seconds (or 
the "seconds" part is set to 0). E.g.
+    `cron:tab?schedule=0/2$\{plus}*\{plus}*\{plus}*\{plus}?` or 
`quartz:trigger?cron=0\{plus}0/2\{plus}*\{plus}*\{plus}*\{plus}?`.
 
 
 [cols="2,2a",options="header"]
diff --git a/docs/modules/traits/pages/cron.adoc 
b/docs/modules/traits/pages/cron.adoc
index 60d90f904..e7b2caa17 100755
--- a/docs/modules/traits/pages/cron.adoc
+++ b/docs/modules/traits/pages/cron.adoc
@@ -11,9 +11,9 @@ in order to save resources when the integration does not need 
to be executed.
 Integrations that start from the following components are evaluated by the 
cron trait: `timer`, `cron`, `quartz`.
 
 The rules for using a Kubernetes CronJob are the following:
-- `timer`: when periods can be written as cron expressions. E.g. 
`timer:tick?period=60000`.
-- `cron`, `quartz`: when the cron expression does not contain seconds (or the 
"seconds" part is set to 0). E.g.
-  `cron:tab?schedule=0/2${plus}*{plus}*{plus}*{plus}?` or 
`quartz:trigger?cron=0{plus}0/2{plus}*{plus}*{plus}*{plus}?`.
+  - `timer`: when periods can be written as cron expressions. E.g. 
`timer:tick?period=60000`.
+  - `cron`, `quartz`: when the cron expression does not contain seconds (or 
the "seconds" part is set to 0). E.g.
+    `cron:tab?schedule=0/2${plus}*{plus}*{plus}*{plus}?` or 
`quartz:trigger?cron=0{plus}0/2{plus}*{plus}*{plus}*{plus}?`.
 
 
 This trait is available in the following profiles: **Kubernetes, Knative, 
OpenShift**.
diff --git a/e2e/common/cli/default.go b/e2e/common/cli/default.go
index 7d19ea637..dbd4ae0b2 100644
--- a/e2e/common/cli/default.go
+++ b/e2e/common/cli/default.go
@@ -23,4 +23,4 @@ package cli
 import "github.com/apache/camel-k/v2/e2e/support"
 
 var ns = support.GetEnvOrDefault("CAMEL_K_TEST_NAMESPACE", 
support.GetCIProcessID())
-var operatorID = 
support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID",support.GetCIProcessID())
+var operatorID = support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID", 
support.GetCIProcessID())
diff --git a/e2e/common/config/default.go b/e2e/common/config/default.go
index 96fbb9055..4a5ced9e0 100644
--- a/e2e/common/config/default.go
+++ b/e2e/common/config/default.go
@@ -23,4 +23,4 @@ package config
 import "github.com/apache/camel-k/v2/e2e/support"
 
 var ns = support.GetEnvOrDefault("CAMEL_K_TEST_NAMESPACE", 
support.GetCIProcessID())
-var operatorID = 
support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID",support.GetCIProcessID())
+var operatorID = support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID", 
support.GetCIProcessID())
diff --git a/e2e/common/languages/default.go b/e2e/common/languages/default.go
index 39ad5841c..433ca1e6f 100644
--- a/e2e/common/languages/default.go
+++ b/e2e/common/languages/default.go
@@ -23,4 +23,4 @@ package languages
 import "github.com/apache/camel-k/v2/e2e/support"
 
 var ns = support.GetEnvOrDefault("CAMEL_K_TEST_NAMESPACE", 
support.GetCIProcessID())
-var operatorID = 
support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID",support.GetCIProcessID())
+var operatorID = support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID", 
support.GetCIProcessID())
diff --git a/e2e/common/misc/client_test.go b/e2e/common/misc/client_test.go
index c3363d655..89bacee62 100644
--- a/e2e/common/misc/client_test.go
+++ b/e2e/common/misc/client_test.go
@@ -32,7 +32,7 @@ import (
        "sigs.k8s.io/controller-runtime/pkg/client/config"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned"
        . "github.com/onsi/gomega"
 )
diff --git a/e2e/common/misc/default.go b/e2e/common/misc/default.go
index 537b2ba70..76b897333 100644
--- a/e2e/common/misc/default.go
+++ b/e2e/common/misc/default.go
@@ -23,4 +23,4 @@ package misc
 import "github.com/apache/camel-k/v2/e2e/support"
 
 var ns = support.GetEnvOrDefault("CAMEL_K_TEST_NAMESPACE", 
support.GetCIProcessID())
-var operatorID = 
support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID",support.GetCIProcessID())
+var operatorID = support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID", 
support.GetCIProcessID())
diff --git a/e2e/common/misc/kamelet_binding_test.go 
b/e2e/common/misc/kamelet_binding_test.go
index 7c0e10847..3b148174a 100644
--- a/e2e/common/misc/kamelet_binding_test.go
+++ b/e2e/common/misc/kamelet_binding_test.go
@@ -30,7 +30,7 @@ import (
        corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/util/kubernetes"
 )
 
diff --git a/e2e/common/misc/kamelet_binding_with_image_test.go 
b/e2e/common/misc/kamelet_binding_with_image_test.go
index ab2ad549a..86dfdf799 100644
--- a/e2e/common/misc/kamelet_binding_with_image_test.go
+++ b/e2e/common/misc/kamelet_binding_with_image_test.go
@@ -31,7 +31,7 @@ import (
        corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestPipeWithImage(t *testing.T) {
diff --git a/e2e/common/misc/kamelet_update_test.go 
b/e2e/common/misc/kamelet_update_test.go
index 055863424..e0f1228c9 100644
--- a/e2e/common/misc/kamelet_update_test.go
+++ b/e2e/common/misc/kamelet_update_test.go
@@ -29,7 +29,7 @@ import (
        . "github.com/onsi/gomega"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 const customLabel = "custom-label"
diff --git a/e2e/common/traits/default.go b/e2e/common/traits/default.go
index d08b902f7..59a520c86 100644
--- a/e2e/common/traits/default.go
+++ b/e2e/common/traits/default.go
@@ -23,4 +23,4 @@ package traits
 import "github.com/apache/camel-k/v2/e2e/support"
 
 var ns = support.GetEnvOrDefault("CAMEL_K_TEST_NAMESPACE", 
support.GetCIProcessID())
-var operatorID = 
support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID",support.GetCIProcessID())
+var operatorID = support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID", 
support.GetCIProcessID())
diff --git a/e2e/common/traits/deployment_test.go 
b/e2e/common/traits/deployment_test.go
index 7aa82ade1..7b9f2e5b4 100644
--- a/e2e/common/traits/deployment_test.go
+++ b/e2e/common/traits/deployment_test.go
@@ -23,9 +23,10 @@ limitations under the License.
 package traits
 
 import (
-       appsv1 "k8s.io/api/apps/v1"
        "testing"
 
+       appsv1 "k8s.io/api/apps/v1"
+
        . "github.com/onsi/gomega"
        . "github.com/onsi/gomega/gstruct"
 
diff --git a/e2e/common/traits/errored_trait_test.go 
b/e2e/common/traits/errored_trait_test.go
index b74d0bccb..391a76ab5 100644
--- a/e2e/common/traits/errored_trait_test.go
+++ b/e2e/common/traits/errored_trait_test.go
@@ -30,7 +30,7 @@ import (
        corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestErroredTrait(t *testing.T) {
diff --git a/e2e/common/traits/health_test.go b/e2e/common/traits/health_test.go
index 535dd8a72..fc15af7d1 100644
--- a/e2e/common/traits/health_test.go
+++ b/e2e/common/traits/health_test.go
@@ -25,11 +25,12 @@ package traits
 import (
        "encoding/json"
        "fmt"
-       camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "strings"
        "testing"
        "time"
 
+       camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+
        . "github.com/onsi/gomega"
 
        corev1 "k8s.io/api/core/v1"
diff --git a/e2e/common/traits/pdb_test.go b/e2e/common/traits/pdb_test.go
index 58d6788fa..6fcb5f83a 100644
--- a/e2e/common/traits/pdb_test.go
+++ b/e2e/common/traits/pdb_test.go
@@ -31,7 +31,7 @@ import (
 
        corev1 "k8s.io/api/core/v1"
        policyv1 "k8s.io/api/policy/v1"
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        "k8s.io/apimachinery/pkg/util/intstr"
 
@@ -102,7 +102,7 @@ func TestPodDisruptionBudgetTrait(t *testing.T) {
                        Name: pods[0].Name,
                },
        })
-       Expect(err).To(MatchError(&errors.StatusError{
+       Expect(err).To(MatchError(&k8serrors.StatusError{
                ErrStatus: metav1.Status{
                        Status:  "Failure",
                        Message: "Cannot evict pod as it would violate the 
pod's disruption budget.",
@@ -152,7 +152,7 @@ func podDisruptionBudget(ns string, name string) func() 
*policyv1.PodDisruptionB
                        },
                }
                err := TestClient().Get(TestContext, 
ctrl.ObjectKeyFromObject(&pdb), &pdb)
-               if err != nil && errors.IsNotFound(err) {
+               if err != nil && k8serrors.IsNotFound(err) {
                        return nil
                } else if err != nil {
                        panic(err)
diff --git a/e2e/common/traits/prometheus_test.go 
b/e2e/common/traits/prometheus_test.go
index d01e61629..2a4d42629 100644
--- a/e2e/common/traits/prometheus_test.go
+++ b/e2e/common/traits/prometheus_test.go
@@ -30,7 +30,7 @@ import (
        "github.com/stretchr/testify/assert"
 
        corev1 "k8s.io/api/core/v1"
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
 
        ctrl "sigs.k8s.io/controller-runtime/pkg/client"
 
@@ -83,7 +83,7 @@ func podMonitor(ns string, name string) func() 
*monitoringv1.PodMonitor {
                        Name:      name,
                }
                err := TestClient().Get(TestContext, key, &pm)
-               if err != nil && errors.IsNotFound(err) {
+               if err != nil && k8serrors.IsNotFound(err) {
                        return nil
                } else if err != nil {
                        panic(err)
diff --git a/e2e/commonwithcustominstall/debug_test.go 
b/e2e/commonwithcustominstall/debug_test.go
index 6f09316da..ae1a8cd25 100644
--- a/e2e/commonwithcustominstall/debug_test.go
+++ b/e2e/commonwithcustominstall/debug_test.go
@@ -25,12 +25,13 @@ package commonwithcustominstall
 import (
        "context"
        "fmt"
-       . "github.com/apache/camel-k/v2/e2e/support"
-       . "github.com/onsi/gomega"
-       v1 "k8s.io/api/core/v1"
        "net"
        "testing"
        "time"
+
+       . "github.com/apache/camel-k/v2/e2e/support"
+       . "github.com/onsi/gomega"
+       v1 "k8s.io/api/core/v1"
 )
 
 func TestKamelCLIDebug(t *testing.T) {
diff --git a/e2e/commonwithcustominstall/platform_traits_test.go 
b/e2e/commonwithcustominstall/platform_traits_test.go
index c8f6e13a2..2934808bd 100644
--- a/e2e/commonwithcustominstall/platform_traits_test.go
+++ b/e2e/commonwithcustominstall/platform_traits_test.go
@@ -74,4 +74,3 @@ func TestTraitOnIntegrationPlatform(t *testing.T) {
                })
        })
 }
-
diff --git a/e2e/knative/default.go b/e2e/knative/default.go
index 62a3ff199..20fe113af 100644
--- a/e2e/knative/default.go
+++ b/e2e/knative/default.go
@@ -23,4 +23,4 @@ package knative
 import "github.com/apache/camel-k/v2/e2e/support"
 
 var ns = support.GetEnvOrDefault("CAMEL_K_TEST_NAMESPACE", 
support.GetCIProcessID())
-var operatorID = 
support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID",support.GetCIProcessID())
+var operatorID = support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID", 
support.GetCIProcessID())
diff --git a/e2e/knative/knative_platform_test.go 
b/e2e/knative/knative_platform_test.go
index b51e93ec8..2dc5fdedf 100644
--- a/e2e/knative/knative_platform_test.go
+++ b/e2e/knative/knative_platform_test.go
@@ -33,7 +33,7 @@ import (
        corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/util/dsl"
        "github.com/apache/camel-k/v2/pkg/util/knative"
 )
diff --git a/e2e/knative/openapi_test.go b/e2e/knative/openapi_test.go
index b2028f6b1..f9ddb0de8 100644
--- a/e2e/knative/openapi_test.go
+++ b/e2e/knative/openapi_test.go
@@ -23,9 +23,10 @@ limitations under the License.
 package knative
 
 import (
+       "testing"
+
        . "github.com/apache/camel-k/v2/e2e/support"
        . "github.com/onsi/gomega"
-       "testing"
 )
 
 func TestOpenAPIService(t *testing.T) {
diff --git a/e2e/support/csv.go b/e2e/support/csv.go
index 24ffe27b5..194fb140a 100644
--- a/e2e/support/csv.go
+++ b/e2e/support/csv.go
@@ -29,7 +29,7 @@ import (
        "unsafe"
 
        corev1 "k8s.io/api/core/v1"
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
        ctrl "sigs.k8s.io/controller-runtime/pkg/client"
@@ -97,7 +97,7 @@ func CatalogSource(ns, name string) func() *olm.CatalogSource 
{
                                Name:      name,
                        },
                }
-               if err := TestClient().Get(TestContext, 
ctrl.ObjectKeyFromObject(cs), cs); err != nil && errors.IsNotFound(err) {
+               if err := TestClient().Get(TestContext, 
ctrl.ObjectKeyFromObject(cs), cs); err != nil && k8serrors.IsNotFound(err) {
                        return nil
                } else if err != nil {
                        log.Errorf(err, "Error while retrieving CatalogSource 
%s", name)
@@ -119,7 +119,7 @@ func CatalogSourcePhase(ns, name string) func() string {
 func CatalogSourcePod(ns, csName string) func() *corev1.Pod {
        return func() *corev1.Pod {
                podList, err := 
TestClient().CoreV1().Pods(ns).List(TestContext, metav1.ListOptions{})
-               if err != nil && errors.IsNotFound(err) {
+               if err != nil && k8serrors.IsNotFound(err) {
                        return nil
                } else if err != nil {
                        panic(err)
diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go
index 021f41aca..4377c64b8 100644
--- a/e2e/support/test_support.go
+++ b/e2e/support/test_support.go
@@ -27,6 +27,7 @@ import (
        "bytes"
        "context"
        "encoding/json"
+       "errors"
        "fmt"
        "io"
        "os"
@@ -44,7 +45,7 @@ import (
        "github.com/google/uuid"
        "github.com/onsi/gomega"
        "github.com/onsi/gomega/format"
-       "github.com/pkg/errors"
+
        "github.com/spf13/cobra"
        appsv1 "k8s.io/api/apps/v1"
        batchv1 "k8s.io/api/batch/v1"
@@ -348,7 +349,7 @@ func verifyGlobalOperator() error {
 
        oppod := OperatorPod(opns)()
        if oppod == nil {
-               return fmt.Errorf("No operator pod detected in namespace %s. 
Operator install is a pre-requisite of the test", opns)
+               return fmt.Errorf("no operator pod detected in namespace %s. 
Operator install is a pre-requisite of the test", opns)
        }
 
        return nil
diff --git a/e2e/support/test_util.go b/e2e/support/test_util.go
index 4d22c983c..b85e93060 100644
--- a/e2e/support/test_util.go
+++ b/e2e/support/test_util.go
@@ -23,10 +23,11 @@ limitations under the License.
 package support
 
 import (
+       "os"
+
        . "github.com/onsi/gomega"
        . "github.com/onsi/gomega/gstruct"
        "github.com/onsi/gomega/types"
-       "os"
 )
 
 func init() {
diff --git a/go.mod b/go.mod
index 06d2add42..406ef6374 100644
--- a/go.mod
+++ b/go.mod
@@ -25,7 +25,6 @@ require (
        github.com/openshift/api 
v3.9.1-0.20190927182313-d4a64ec2cbd8+incompatible
        github.com/operator-framework/api v0.13.0
        github.com/otiai10/copy v1.9.0
-       github.com/pkg/errors v0.9.1
        github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring 
v0.60.0
        github.com/prometheus/client_golang v1.15.1
        github.com/prometheus/client_model v0.4.0
@@ -136,6 +135,7 @@ require (
        github.com/opencontainers/image-spec 
v1.0.3-0.20220114050600-8b9d41f48198 // indirect
        github.com/opencontainers/runc v1.0.2 // indirect
        github.com/pelletier/go-toml/v2 v2.0.6 // indirect
+       github.com/pkg/errors v0.9.1 // indirect
        github.com/pmezard/go-difflib v1.0.0 // indirect
        github.com/prometheus/procfs v0.9.0 // indirect
        github.com/prometheus/statsd_exporter v0.21.0 // indirect
diff --git a/pkg/apis/camel/v1/trait/cron.go b/pkg/apis/camel/v1/trait/cron.go
index 67e8cb749..cb6c8582d 100644
--- a/pkg/apis/camel/v1/trait/cron.go
+++ b/pkg/apis/camel/v1/trait/cron.go
@@ -27,9 +27,9 @@ package trait
 // Integrations that start from the following components are evaluated by the 
cron trait: `timer`, `cron`, `quartz`.
 //
 // The rules for using a Kubernetes CronJob are the following:
-// - `timer`: when periods can be written as cron expressions. E.g. 
`timer:tick?period=60000`.
-// - `cron`, `quartz`: when the cron expression does not contain seconds (or 
the "seconds" part is set to 0). E.g.
-//   `cron:tab?schedule=0/2${plus}*{plus}*{plus}*{plus}?` or 
`quartz:trigger?cron=0{plus}0/2{plus}*{plus}*{plus}*{plus}?`.
+//   - `timer`: when periods can be written as cron expressions. E.g. 
`timer:tick?period=60000`.
+//   - `cron`, `quartz`: when the cron expression does not contain seconds (or 
the "seconds" part is set to 0). E.g.
+//     `cron:tab?schedule=0/2${plus}*{plus}*{plus}*{plus}?` or 
`quartz:trigger?cron=0{plus}0/2{plus}*{plus}*{plus}*{plus}?`.
 //
 // +camel-k:trait=cron.
 type CronTrait struct {
diff --git a/pkg/builder/quarkus.go b/pkg/builder/quarkus.go
index 8a1190757..85fcd92b5 100644
--- a/pkg/builder/quarkus.go
+++ b/pkg/builder/quarkus.go
@@ -24,8 +24,6 @@ import (
        "path/filepath"
        "strings"
 
-       "github.com/pkg/errors"
-
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/util/camel"
        "github.com/apache/camel-k/v2/pkg/util/defaults"
@@ -87,7 +85,7 @@ func prepareProjectWithSources(ctx *builderContext) error {
        }
        sourcesPath := filepath.Join(ctx.Path, "maven", "src", "main", 
"resources", "routes")
        if err := os.MkdirAll(sourcesPath, os.ModePerm); err != nil {
-               return errors.Wrap(err, "failure while creating resource 
folder")
+               return fmt.Errorf("failure while creating resource folder: %w", 
err)
        }
 
        sourceList := ""
@@ -97,14 +95,14 @@ func prepareProjectWithSources(ctx *builderContext) error {
                }
                sourceList += "classpath:routes/" + source.Name
                if err := os.WriteFile(filepath.Join(sourcesPath, source.Name), 
[]byte(source.Content), os.ModePerm); err != nil {
-                       return errors.Wrapf(err, "failure while writing %s", 
source.Name)
+                       return fmt.Errorf("failure while writing %s: %w", 
source.Name, err)
                }
        }
 
        if sourceList != "" {
                routesIncludedPattern := "camel.main.routes-include-pattern = " 
+ sourceList
                if err := os.WriteFile(filepath.Join(filepath.Dir(sourcesPath), 
"application.properties"), []byte(routesIncludedPattern), os.ModePerm); err != 
nil {
-                       return errors.Wrapf(err, "failure while writing the 
configuration application.properties")
+                       return fmt.Errorf("failure while writing the 
configuration application.properties: %w", err)
                }
        }
        return nil
@@ -239,7 +237,7 @@ func buildQuarkusRunner(ctx *builderContext) error {
 func BuildQuarkusRunnerCommon(ctx context.Context, mc maven.Context, project 
maven.Project) error {
        resourcesPath := filepath.Join(mc.Path, "src", "main", "resources")
        if err := os.MkdirAll(resourcesPath, os.ModePerm); err != nil {
-               return errors.Wrap(err, "failure while creating resource 
folder")
+               return fmt.Errorf("failure while creating resource folder: %w", 
err)
        }
 
        // Generate an empty application.properties so that there will be 
something in
@@ -248,14 +246,14 @@ func BuildQuarkusRunnerCommon(ctx context.Context, mc 
maven.Context, project mav
        // In the future there should be a way to provide build information 
from secrets,
        // configmap, etc.
        if _, err := os.OpenFile(filepath.Join(resourcesPath, 
"application.properties"), os.O_RDWR|os.O_CREATE, 0666); err != nil {
-               return errors.Wrap(err, "failure while creating 
application.properties")
+               return fmt.Errorf("failure while creating 
application.properties: %w", err)
        }
 
        mc.AddArgument("package")
 
        // Run the Maven goal
        if err := project.Command(mc).Do(ctx); err != nil {
-               return errors.Wrap(err, "failure while building project")
+               return fmt.Errorf("failure while building project: %w", err)
        }
 
        return nil
diff --git a/pkg/builder/s2i.go b/pkg/builder/s2i.go
index 2e1c9ed32..99cbd00ea 100644
--- a/pkg/builder/s2i.go
+++ b/pkg/builder/s2i.go
@@ -23,6 +23,7 @@ import (
        "compress/gzip"
        "context"
        "encoding/json"
+       "errors"
        "fmt"
        "io"
        "os"
@@ -41,8 +42,6 @@ import (
        "sigs.k8s.io/controller-runtime/pkg/client/apiutil"
        ctrlutil "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
 
-       "github.com/pkg/errors"
-
        buildv1 "github.com/openshift/api/build/v1"
        imagev1 "github.com/openshift/api/image/v1"
 
@@ -93,7 +92,7 @@ func (t *s2iTask) Do(ctx context.Context) v1.BuildStatus {
 
        err := t.c.Delete(ctx, bc)
        if err != nil && !apierrors.IsNotFound(err) {
-               return status.Failed(errors.Wrap(err, "cannot delete build 
config"))
+               return status.Failed(fmt.Errorf("cannot delete build config: 
%w", err))
        }
 
        // Set the build controller as owner reference
@@ -104,12 +103,12 @@ func (t *s2iTask) Do(ctx context.Context) v1.BuildStatus {
        }
 
        if err := ctrlutil.SetOwnerReference(owner, bc, t.c.GetScheme()); err 
!= nil {
-               return status.Failed(errors.Wrapf(err, "cannot set owner 
reference on BuildConfig: %s", bc.Name))
+               return status.Failed(fmt.Errorf("cannot set owner reference on 
BuildConfig: %s: %w", bc.Name, err))
        }
 
        err = t.c.Create(ctx, bc)
        if err != nil {
-               return status.Failed(errors.Wrap(err, "cannot create build 
config"))
+               return status.Failed(fmt.Errorf("cannot create build config: 
%w", err))
        }
 
        is := &imagev1.ImageStream{
@@ -131,16 +130,16 @@ func (t *s2iTask) Do(ctx context.Context) v1.BuildStatus {
 
        err = t.c.Delete(ctx, is)
        if err != nil && !apierrors.IsNotFound(err) {
-               return status.Failed(errors.Wrap(err, "cannot delete image 
stream"))
+               return status.Failed(fmt.Errorf("cannot delete image stream: 
%w", err))
        }
 
        if err := ctrlutil.SetOwnerReference(owner, is, t.c.GetScheme()); err 
!= nil {
-               return status.Failed(errors.Wrapf(err, "cannot set owner 
reference on ImageStream: %s", is.Name))
+               return status.Failed(fmt.Errorf("cannot set owner reference on 
ImageStream: %s: %w", is.Name, err))
        }
 
        err = t.c.Create(ctx, is)
        if err != nil {
-               return status.Failed(errors.Wrap(err, "cannot create image 
stream"))
+               return status.Failed(fmt.Errorf("cannot create image stream: 
%w", err))
        }
 
        err = util.WithTempDir(t.build.Name+"-s2i-", func(tmpDir string) error {
@@ -161,12 +160,12 @@ func (t *s2iTask) Do(ctx context.Context) v1.BuildStatus {
 
                archiveFile, err := os.Create(archive)
                if err != nil {
-                       return errors.Wrap(err, "cannot create tar archive")
+                       return fmt.Errorf("cannot create tar archive: %w", err)
                }
 
                err = tarDir(contextDir, archiveFile)
                if err != nil {
-                       return errors.Wrap(err, "cannot tar context directory")
+                       return fmt.Errorf("cannot tar context directory: %w", 
err)
                }
 
                f, err := util.Open(archive)
@@ -190,18 +189,18 @@ func (t *s2iTask) Do(ctx context.Context) v1.BuildStatus {
                        Do(ctx)
 
                if r.Error() != nil {
-                       return errors.Wrap(r.Error(), "cannot instantiate 
binary")
+                       return fmt.Errorf("cannot instantiate binary: %w", 
r.Error())
                }
 
                data, err := r.Raw()
                if err != nil {
-                       return errors.Wrap(err, "no raw data retrieved")
+                       return fmt.Errorf("no raw data retrieved: %w", err)
                }
 
                s2iBuild := buildv1.Build{}
                err = json.Unmarshal(data, &s2iBuild)
                if err != nil {
-                       return errors.Wrap(err, "cannot unmarshal instantiated 
binary response")
+                       return fmt.Errorf("cannot unmarshal instantiated binary 
response: %w", err)
                }
 
                err = t.waitForS2iBuildCompletion(ctx, t.c, &s2iBuild)
diff --git a/pkg/client/apply.go b/pkg/client/apply.go
index abbd9d221..7fe872e84 100644
--- a/pkg/client/apply.go
+++ b/pkg/client/apply.go
@@ -19,6 +19,7 @@ package client
 
 import (
        "context"
+       "errors"
        "fmt"
        "net/http"
        "strings"
@@ -27,7 +28,7 @@ import (
 
        "github.com/apache/camel-k/v2/pkg/util/log"
        "github.com/apache/camel-k/v2/pkg/util/patch"
-       "github.com/pkg/errors"
+
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
        "k8s.io/apimachinery/pkg/runtime"
diff --git a/pkg/client/client.go b/pkg/client/client.go
index 08282f274..c288e655b 100644
--- a/pkg/client/client.go
+++ b/pkg/client/client.go
@@ -18,12 +18,13 @@ limitations under the License.
 package client
 
 import (
+       "errors"
        "fmt"
        "os"
        "path/filepath"
 
        user "github.com/mitchellh/go-homedir"
-       "github.com/pkg/errors"
+
        "github.com/sirupsen/logrus"
        "k8s.io/client-go/scale"
 
diff --git a/pkg/cmd/debug.go b/pkg/cmd/debug.go
index de224b4da..214b2dad6 100644
--- a/pkg/cmd/debug.go
+++ b/pkg/cmd/debug.go
@@ -18,6 +18,7 @@ limitations under the License.
 package cmd
 
 import (
+       "errors"
        "fmt"
        "os"
        "os/signal"
@@ -28,7 +29,7 @@ import (
        camelv1 
"github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/typed/camel/v1"
        "github.com/apache/camel-k/v2/pkg/util/kubernetes"
        k8slog "github.com/apache/camel-k/v2/pkg/util/kubernetes/log"
-       "github.com/pkg/errors"
+
        "github.com/spf13/cobra"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
diff --git a/pkg/cmd/install.go b/pkg/cmd/install.go
index 616f0ec6f..faafc2364 100644
--- a/pkg/cmd/install.go
+++ b/pkg/cmd/install.go
@@ -19,6 +19,7 @@ package cmd
 
 import (
        "context"
+       "errors"
        "fmt"
        "io"
        "os"
@@ -28,7 +29,7 @@ import (
        "time"
 
        platformutil "github.com/apache/camel-k/v2/pkg/platform"
-       "github.com/pkg/errors"
+
        "github.com/spf13/cobra"
        "github.com/spf13/viper"
 
@@ -72,7 +73,7 @@ func newCmdInstall(rootCmdOptions *RootCmdOptions) 
(*cobra.Command, *installCmdO
                        }
                        if err := options.install(cmd, args); err != nil {
                                if k8serrors.IsAlreadyExists(err) {
-                                       return errors.Wrap(err, "Camel K seems 
already installed (use the --force option to overwrite existing resources)")
+                                       return fmt.Errorf("camel K seems 
already installed (use the --force option to overwrite existing resources): 
%w", err)
                                }
                                return err
                        }
@@ -283,8 +284,8 @@ func (o *installCmdOptions) tryInstallViaOLM(
                return false, err
        }
        if olmAvailable, err := olm.IsAPIAvailable(o.Context, olmClient, 
o.Namespace); err != nil {
-               return false, errors.Wrap(err,
-                       "error while checking OLM availability. Run with 
'--olm=false' to skip this check")
+               return false, fmt.Errorf("error while checking OLM 
availability. Run with '--olm=false' to skip this check: %w", err)
+
        } else if !olmAvailable {
                fmt.Fprintln(cmd.OutOrStdout(), "OLM is not available in the 
cluster. Fallback to regular installation.")
                return false, nil
@@ -292,13 +293,13 @@ func (o *installCmdOptions) tryInstallViaOLM(
 
        if hasPermission, err := olm.HasPermissionToInstall(o.Context, 
olmClient,
                o.Namespace, o.Global, o.olmOptions); err != nil {
-               return false, errors.Wrap(err,
-                       "error while checking permissions to install operator 
via OLM. Run with '--olm=false' to skip this check")
+               return false, fmt.Errorf("error while checking permissions to 
install operator via OLM. Run with '--olm=false' to skip this check: %w", err)
+
        } else if !hasPermission {
                return false, errors.New(
                        "OLM is available but current user has not enough 
permissions to create the operator. " +
                                "You can either ask your administrator to 
provide permissions (preferred) " +
-                               "or run the install command with the 
'--olm=false' flag.")
+                               "or run the install command with the 
'--olm=false' flag")
        }
 
        // Install or collect via OLM
@@ -605,7 +606,7 @@ func (o *installCmdOptions) setupIntegrationPlatform(
        }
 
        if err := install.IntegrationPlatformViewerRole(o.Context, c, 
namespace); err != nil && !k8serrors.IsAlreadyExists(err) {
-               return nil, errors.Wrap(err, "Error while installing global 
IntegrationPlatform viewer role")
+               return nil, fmt.Errorf("error while installing global 
IntegrationPlatform viewer role: %w", err)
        }
 
        if o.ExampleSetup {
@@ -743,7 +744,7 @@ func (o *installCmdOptions) validate(_ *cobra.Command, _ 
[]string) error {
                if err != nil {
                        result = multierr.Append(result, err)
                } else if nfo.IsDir() {
-                       result = multierr.Append(result, errors.Wrapf(err, 
"registry file cannot be a directory: %s", o.RegistryAuthFile))
+                       result = multierr.Append(result, fmt.Errorf("registry 
file cannot be a directory: %s: %w", o.RegistryAuthFile, err))
                }
        }
 
@@ -902,7 +903,7 @@ func createDefaultMavenSettingsConfigMap(ctx 
context.Context, client client.Clie
                } else if len(p) != 0 {
                        err = client.Patch(ctx, cm, 
ctrl.RawPatch(types.MergePatchType, p))
                        if err != nil {
-                               return errors.Wrap(err, "error during patch 
resource")
+                               return fmt.Errorf("error during patch resource: 
%w", err)
                        }
                }
        }
diff --git a/pkg/cmd/local/container.go b/pkg/cmd/local/container.go
index 624a57c36..12ab06b93 100644
--- a/pkg/cmd/local/container.go
+++ b/pkg/cmd/local/container.go
@@ -19,6 +19,7 @@ package local
 
 import (
        "context"
+       "errors"
        "fmt"
        "io"
        "os"
@@ -29,7 +30,6 @@ import (
 
        "github.com/apache/camel-k/v2/pkg/util"
        "github.com/apache/camel-k/v2/pkg/util/docker"
-       "github.com/pkg/errors"
 )
 
 // Local Docker file system management functions.
@@ -110,7 +110,7 @@ func buildBaseImage(ctx context.Context, stdout, stderr 
io.Writer) error {
 
        // Run the command.
        if err := cmd.Run(); err != nil {
-               return errors.Errorf("base image containerization did not run 
successfully: %v", err)
+               return fmt.Errorf("base image containerization did not run 
successfully: %w", err)
        }
 
        return nil
@@ -206,7 +206,7 @@ func buildIntegrationImage(ctx context.Context, image 
string, stdout, stderr io.
 
        // Run the command.
        if err := cmd.Run(); err != nil {
-               return errors.Errorf("integration image containerization did 
not run successfully: %v", err)
+               return fmt.Errorf("integration image containerization did not 
run successfully: %w", err)
        }
 
        return nil
@@ -239,7 +239,7 @@ func RunIntegrationImage(ctx context.Context, image string, 
stdout, stderr io.Wr
 
        // Run the command.
        if err := cmd.Run(); err != nil {
-               return errors.Errorf("integration image did not run 
successfully: %v", err)
+               return fmt.Errorf("integration image did not run successfully: 
%w", err)
        }
 
        return nil
diff --git a/pkg/cmd/local/local.go b/pkg/cmd/local/local.go
index b347e2031..ed2664353 100644
--- a/pkg/cmd/local/local.go
+++ b/pkg/cmd/local/local.go
@@ -20,13 +20,13 @@ package local
 import (
        "context"
        "encoding/json"
+       "errors"
        "fmt"
        "os"
        "path/filepath"
        "sort"
        "strings"
 
-       "github.com/pkg/errors"
        "github.com/scylladb/go-set/strset"
        "github.com/spf13/cobra"
 
@@ -52,7 +52,7 @@ func GetDependencies(ctx context.Context, cmd *cobra.Command, 
srcs, userDependen
        // Fetch existing catalog or create new one if one does not already 
exist
        catalog, err := CreateCamelCatalog(ctx)
        if err != nil {
-               return nil, errors.Wrap(err, "failed to create Camel catalog")
+               return nil, fmt.Errorf("failed to create Camel catalog: %w", 
err)
        }
 
        // Validate user-provided dependencies against Camel catalog
@@ -61,7 +61,7 @@ func GetDependencies(ctx context.Context, cmd *cobra.Command, 
srcs, userDependen
        // Get top-level dependencies from sources
        dependencies, err := getTopLevelDependencies(ctx, catalog, srcs)
        if err != nil {
-               return nil, errors.Wrap(err, "failed to resolve dependencies 
from source")
+               return nil, fmt.Errorf("failed to resolve dependencies from 
source: %w", err)
        }
 
        // Add additional user-provided dependencies
@@ -77,7 +77,7 @@ func GetDependencies(ctx context.Context, cmd *cobra.Command, 
srcs, userDependen
 
                dependencies, err = getTransitiveDependencies(ctx, catalog, 
dependencies, repositories)
                if err != nil {
-                       return nil, errors.Wrap(err, "failed to compute 
transitive dependencies")
+                       return nil, fmt.Errorf("failed to compute transitive 
dependencies: %w", err)
                }
        }
 
@@ -278,7 +278,7 @@ func printDependencies(format string, dependencies 
[]string, cmd *cobra.Command)
                }
                fmt.Fprint(cmd.OutOrStdout(), string(data))
        default:
-               return errors.Errorf("unknown output format: %s", format)
+               return fmt.Errorf("unknown output format: %s", format)
        }
        return nil
 }
@@ -353,7 +353,7 @@ func validatePropertyFile(fileName string) error {
        }
 
        if file, err := os.Stat(fileName); err != nil {
-               return errors.Wrapf(err, "unable to access property file %s", 
fileName)
+               return fmt.Errorf("unable to access property file %s: %w", 
fileName, err)
        } else if file.IsDir() {
                return fmt.Errorf("property file %s is a directory", fileName)
        }
diff --git a/pkg/cmd/local_build.go b/pkg/cmd/local_build.go
index bbed644ae..ef6136cc7 100644
--- a/pkg/cmd/local_build.go
+++ b/pkg/cmd/local_build.go
@@ -18,9 +18,9 @@ limitations under the License.
 package cmd
 
 import (
+       "errors"
        "fmt"
 
-       "github.com/pkg/errors"
        "github.com/spf13/cobra"
 
        "github.com/apache/camel-k/v2/pkg/cmd/local"
diff --git a/pkg/cmd/local_run.go b/pkg/cmd/local_run.go
index 02dc1ded4..ac572b752 100644
--- a/pkg/cmd/local_run.go
+++ b/pkg/cmd/local_run.go
@@ -18,6 +18,7 @@ limitations under the License.
 package cmd
 
 import (
+       "errors"
        "fmt"
        "os"
        "os/signal"
@@ -25,7 +26,7 @@ import (
 
        "github.com/apache/camel-k/v2/pkg/cmd/local"
        "github.com/apache/camel-k/v2/pkg/util"
-       "github.com/pkg/errors"
+
        "github.com/spf13/cobra"
 )
 
@@ -123,7 +124,7 @@ func (o *localRunCmdOptions) validate(args []string) error {
                if ok, err := util.DirectoryExists(o.IntegrationDirectory); err 
!= nil {
                        return err
                } else if !ok {
-                       return errors.Errorf("integration directory %q does not 
exist", o.IntegrationDirectory)
+                       return fmt.Errorf("integration directory %q does not 
exist", o.IntegrationDirectory)
                }
        }
 
diff --git a/pkg/cmd/modeline.go b/pkg/cmd/modeline.go
index 159847489..00a3585ca 100644
--- a/pkg/cmd/modeline.go
+++ b/pkg/cmd/modeline.go
@@ -19,6 +19,7 @@ package cmd
 
 import (
        "context"
+       "errors"
        "fmt"
        "path/filepath"
        "strings"
@@ -26,7 +27,7 @@ import (
        "github.com/apache/camel-k/v2/pkg/cmd/source"
        "github.com/apache/camel-k/v2/pkg/util"
        "github.com/apache/camel-k/v2/pkg/util/modeline"
-       "github.com/pkg/errors"
+
        "github.com/spf13/cobra"
        "github.com/spf13/pflag"
 )
@@ -129,7 +130,7 @@ func createKamelWithModelineCommand(ctx context.Context, 
args []string) (*cobra.
 
        opts, err := extractModelineOptions(ctx, files, rootCmd)
        if err != nil {
-               return rootCmd, nil, errors.Wrap(err, "cannot read sources")
+               return rootCmd, nil, fmt.Errorf("cannot read sources: %w", err)
        }
 
        // Extract list of property/trait names already specified by the user.
@@ -196,7 +197,7 @@ func extractModelineOptions(ctx context.Context, sources 
[]string, cmd *cobra.Co
 
        resolvedSources, err := source.Resolve(ctx, sources, false, cmd)
        if err != nil {
-               return opts, errors.Wrap(err, "failed to resolve sources")
+               return opts, fmt.Errorf("failed to resolve sources: %w", err)
        }
 
        for _, resolvedSource := range resolvedSources {
@@ -219,7 +220,7 @@ func extractModelineOptions(ctx context.Context, sources 
[]string, cmd *cobra.Co
 func extractModelineOptionsFromSource(resolvedSource source.Source) 
([]modeline.Option, error) {
        ops, err := modeline.Parse(resolvedSource.Name, resolvedSource.Content)
        if err != nil {
-               return ops, errors.Wrapf(err, "cannot process file %s", 
resolvedSource.Location)
+               return ops, fmt.Errorf("cannot process file %s: %w", 
resolvedSource.Location, err)
        }
        for i, o := range ops {
                if disallowedOptions[o.Name] {
diff --git a/pkg/cmd/operator/operator.go b/pkg/cmd/operator/operator.go
index b1f1623c4..fff5a04aa 100644
--- a/pkg/cmd/operator/operator.go
+++ b/pkg/cmd/operator/operator.go
@@ -29,7 +29,6 @@ import (
        "strings"
        "time"
 
-       "github.com/pkg/errors"
        "k8s.io/klog/v2"
 
        "go.uber.org/automaxprocs/maxprocs"
@@ -271,7 +270,7 @@ func findOrCreateIntegrationPlatform(ctx context.Context, c 
client.Client, opera
 
                // Make sure that IntegrationPlatform installed in operator 
namespace can be seen by others
                if err := install.IntegrationPlatformViewerRole(ctx, c, 
operatorNamespace); err != nil && !k8serrors.IsAlreadyExists(err) {
-                       return errors.Wrap(err, "Error while installing global 
IntegrationPlatform viewer role")
+                       return fmt.Errorf("error while installing global 
IntegrationPlatform viewer role: %w", err)
                }
        } else {
                return err
diff --git a/pkg/cmd/promote.go b/pkg/cmd/promote.go
index 6a0e238e4..a20731217 100644
--- a/pkg/cmd/promote.go
+++ b/pkg/cmd/promote.go
@@ -19,13 +19,12 @@ package cmd
 
 import (
        "context"
+       "errors"
        "fmt"
        "reflect"
        "regexp"
        "strings"
 
-       "github.com/pkg/errors"
-
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait"
        "github.com/apache/camel-k/v2/pkg/client"
@@ -87,41 +86,41 @@ func (o *promoteCmdOptions) run(cmd *cobra.Command, args 
[]string) error {
        name := args[0]
        c, err := o.GetCmdClient()
        if err != nil {
-               return errors.Wrap(err, "could not retrieve cluster client")
+               return fmt.Errorf("could not retrieve cluster client: %w", err)
        }
        opSource, err := operatorInfo(o.Context, c, o.Namespace)
        if err != nil {
-               return errors.Wrap(err, "could not retrieve info for Camel K 
operator source")
+               return fmt.Errorf("could not retrieve info for Camel K operator 
source: %w", err)
        }
        opDest, err := operatorInfo(o.Context, c, o.To)
        if err != nil {
-               return errors.Wrap(err, "could not retrieve info for Camel K 
operator destination")
+               return fmt.Errorf("could not retrieve info for Camel K operator 
destination: %w", err)
        }
 
        err = checkOpsCompatibility(cmd, opSource, opDest)
        if err != nil {
-               return errors.Wrap(err, "could not verify operators 
compatibility")
+               return fmt.Errorf("could not verify operators compatibility: 
%w", err)
        }
        promotePipe := false
        var sourceIntegration *v1.Integration
        // We first look if a Pipe with the name exists
        sourcePipe, err := o.getPipe(c, name)
        if err != nil && !k8serrors.IsNotFound(err) {
-               return errors.Wrap(err, "problems looking for Pipe "+name)
+               return fmt.Errorf("problems looking for Pipe "+name+": %w", err)
        }
        if sourcePipe != nil {
                promotePipe = true
        }
        sourceIntegration, err = o.getIntegration(c, name)
        if err != nil {
-               return errors.Wrap(err, "could not get Integration "+name)
+               return fmt.Errorf("could not get Integration "+name+": %w", err)
        }
        if sourceIntegration.Status.Phase != v1.IntegrationPhaseRunning {
                return fmt.Errorf("could not promote an Integration in %s 
status", sourceIntegration.Status.Phase)
        }
        err = o.validateDestResources(c, sourceIntegration)
        if err != nil {
-               return errors.Wrap(err, "could not validate destination 
resources")
+               return fmt.Errorf("could not validate destination resources: 
%w", err)
        }
 
        // Pipe promotion
diff --git a/pkg/cmd/rebuild.go b/pkg/cmd/rebuild.go
index 5b30d158d..d249982b1 100644
--- a/pkg/cmd/rebuild.go
+++ b/pkg/cmd/rebuild.go
@@ -18,9 +18,9 @@ limitations under the License.
 package cmd
 
 import (
+       "errors"
        "fmt"
 
-       "github.com/pkg/errors"
        "github.com/spf13/cobra"
 
        k8sclient "sigs.k8s.io/controller-runtime/pkg/client"
@@ -94,7 +94,7 @@ func (o *rebuildCmdOptions) run(cmd *cobra.Command, args 
[]string) error {
 func (o *rebuildCmdOptions) listAllIntegrations(c client.Client) 
([]v1.Integration, error) {
        list := v1.NewIntegrationList()
        if err := c.List(o.Context, &list, k8sclient.InNamespace(o.Namespace)); 
err != nil {
-               return nil, errors.Wrap(err, fmt.Sprintf("could not retrieve 
integrations from namespace %s", o.Namespace))
+               return nil, fmt.Errorf("could not retrieve integrations from 
namespace %s: %w", o.Namespace, err)
        }
        return list.Items, nil
 }
@@ -108,7 +108,7 @@ func (o *rebuildCmdOptions) getIntegrations(c 
client.Client, names []string) ([]
                        Namespace: o.Namespace,
                }
                if err := c.Get(o.Context, key, &it); err != nil {
-                       return nil, errors.Wrap(err, fmt.Sprintf("could not 
find integration %s in namespace %s", it.Name, o.Namespace))
+                       return nil, fmt.Errorf("could not find integration %s 
in namespace %s: %w", it.Name, o.Namespace, err)
                }
                ints = append(ints, it)
        }
@@ -120,7 +120,7 @@ func (o *rebuildCmdOptions) rebuildIntegrations(c 
k8sclient.StatusClient, integr
                it := i
                it.Status = v1.IntegrationStatus{}
                if err := c.Status().Update(o.Context, &it); err != nil {
-                       return errors.Wrap(err, fmt.Sprintf("could not rebuild 
integration %s in namespace %s", it.Name, o.Namespace))
+                       return fmt.Errorf("could not rebuild integration %s in 
namespace %s: %w", it.Name, o.Namespace, err)
                }
        }
        return nil
diff --git a/pkg/cmd/reset.go b/pkg/cmd/reset.go
index 8f08dd0ad..f09062622 100644
--- a/pkg/cmd/reset.go
+++ b/pkg/cmd/reset.go
@@ -18,12 +18,13 @@ limitations under the License.
 package cmd
 
 import (
+       "errors"
        "fmt"
 
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1"
        "github.com/apache/camel-k/v2/pkg/client"
-       "github.com/pkg/errors"
+
        "github.com/spf13/cobra"
        "k8s.io/apimachinery/pkg/runtime/schema"
        k8sclient "sigs.k8s.io/controller-runtime/pkg/client"
@@ -104,7 +105,7 @@ func (o *resetCmdOptions) reset(cmd *cobra.Command, _ 
[]string) {
 func (o *resetCmdOptions) deleteAllIntegrations(c client.Client) (int, error) {
        list := v1.NewIntegrationList()
        if err := c.List(o.Context, &list, k8sclient.InNamespace(o.Namespace)); 
err != nil {
-               return 0, errors.Wrap(err, fmt.Sprintf("could not retrieve 
integrations from namespace %s", o.Namespace))
+               return 0, fmt.Errorf("could not retrieve integrations from 
namespace %s: %w", o.Namespace, err)
        }
        for _, i := range list.Items {
                it := i
@@ -113,7 +114,7 @@ func (o *resetCmdOptions) deleteAllIntegrations(c 
client.Client) (int, error) {
                        continue
                }
                if err := c.Delete(o.Context, &it); err != nil {
-                       return 0, errors.Wrap(err, fmt.Sprintf("could not 
delete integration %s from namespace %s", it.Name, it.Namespace))
+                       return 0, fmt.Errorf("could not delete integration %s 
from namespace %s: %w", it.Name, it.Namespace, err)
                }
        }
        return len(list.Items), nil
@@ -122,12 +123,12 @@ func (o *resetCmdOptions) deleteAllIntegrations(c 
client.Client) (int, error) {
 func (o *resetCmdOptions) deleteAllIntegrationKits(c client.Client) (int, 
error) {
        list := v1.NewIntegrationKitList()
        if err := c.List(o.Context, &list, k8sclient.InNamespace(o.Namespace)); 
err != nil {
-               return 0, errors.Wrap(err, fmt.Sprintf("could not retrieve 
integration Kits from namespace %s", o.Namespace))
+               return 0, fmt.Errorf("could not retrieve integration Kits from 
namespace %s: %w", o.Namespace, err)
        }
        for _, i := range list.Items {
                kit := i
                if err := c.Delete(o.Context, &kit); err != nil {
-                       return 0, errors.Wrap(err, fmt.Sprintf("could not 
delete integration kit %s from namespace %s", kit.Name, kit.Namespace))
+                       return 0, fmt.Errorf("could not delete integration kit 
%s from namespace %s: %w", kit.Name, kit.Namespace, err)
                }
        }
        return len(list.Items), nil
@@ -136,12 +137,12 @@ func (o *resetCmdOptions) deleteAllIntegrationKits(c 
client.Client) (int, error)
 func (o *resetCmdOptions) deleteAllPipes(c client.Client) (int, error) {
        list := v1.NewPipeList()
        if err := c.List(o.Context, &list, k8sclient.InNamespace(o.Namespace)); 
err != nil {
-               return 0, errors.Wrap(err, fmt.Sprintf("could not retrieve 
Pipes from namespace %s", o.Namespace))
+               return 0, fmt.Errorf("could not retrieve Pipes from namespace 
%s: %w", o.Namespace, err)
        }
        for _, i := range list.Items {
                klb := i
                if err := c.Delete(o.Context, &klb); err != nil {
-                       return 0, errors.Wrap(err, fmt.Sprintf("could not 
delete Pipe %s from namespace %s", klb.Name, klb.Namespace))
+                       return 0, fmt.Errorf("could not delete Pipe %s from 
namespace %s: %w", klb.Name, klb.Namespace, err)
                }
        }
        return len(list.Items), nil
@@ -151,12 +152,12 @@ func (o *resetCmdOptions) deleteAllPipes(c client.Client) 
(int, error) {
 func (o *resetCmdOptions) deleteAllKameletBindings(c client.Client) (int, 
error) {
        list := v1alpha1.NewKameletBindingList()
        if err := c.List(o.Context, &list, k8sclient.InNamespace(o.Namespace)); 
err != nil {
-               return 0, errors.Wrap(err, fmt.Sprintf("could not retrieve 
KameletBindings from namespace %s", o.Namespace))
+               return 0, fmt.Errorf("could not retrieve KameletBindings from 
namespace %s: %w", o.Namespace, err)
        }
        for _, i := range list.Items {
                klb := i
                if err := c.Delete(o.Context, &klb); err != nil {
-                       return 0, errors.Wrap(err, fmt.Sprintf("could not 
delete KameletBinding %s from namespace %s", klb.Name, klb.Namespace))
+                       return 0, fmt.Errorf("could not delete KameletBinding 
%s from namespace %s: %w", klb.Name, klb.Namespace, err)
                }
        }
        return len(list.Items), nil
@@ -165,7 +166,7 @@ func (o *resetCmdOptions) deleteAllKameletBindings(c 
client.Client) (int, error)
 func (o *resetCmdOptions) resetIntegrationPlatform(c client.Client) error {
        list := v1.NewIntegrationPlatformList()
        if err := c.List(o.Context, &list, k8sclient.InNamespace(o.Namespace)); 
err != nil {
-               return errors.Wrap(err, fmt.Sprintf("could not retrieve 
integration platform from namespace %s", o.Namespace))
+               return fmt.Errorf("could not retrieve integration platform from 
namespace %s: %w", o.Namespace, err)
        }
        if len(list.Items) > 1 {
                return fmt.Errorf("expected 1 integration platform in the 
namespace, found: %d", len(list.Items))
diff --git a/pkg/cmd/root.go b/pkg/cmd/root.go
index 7bf9aa3d1..47ff24d08 100644
--- a/pkg/cmd/root.go
+++ b/pkg/cmd/root.go
@@ -19,11 +19,11 @@ package cmd
 
 import (
        "context"
+       "errors"
        "fmt"
        "os"
        "strings"
 
-       "github.com/pkg/errors"
        "github.com/spf13/cobra"
        "github.com/spf13/viper"
        "golang.org/x/term"
@@ -180,14 +180,14 @@ func (command *RootCmdOptions) preRun(cmd *cobra.Command, 
_ []string) error {
        if !isOfflineCommand(cmd) {
                c, err := command.GetCmdClient()
                if err != nil {
-                       return errors.Wrap(err, "cannot get command client")
+                       return fmt.Errorf("cannot get command client: %w", err)
                }
                if command.Namespace == "" {
                        current := 
viper.GetString("kamel.config.default-namespace")
                        if current == "" {
                                defaultNS, err := 
c.GetCurrentNamespace(command.KubeConfig)
                                if err != nil {
-                                       return errors.Wrap(err, "cannot get 
current namespace")
+                                       return fmt.Errorf("cannot get current 
namespace: %w", err)
                                }
                                current = defaultNS
                        }
diff --git a/pkg/cmd/run.go b/pkg/cmd/run.go
index 2911e87c2..228d1dde3 100644
--- a/pkg/cmd/run.go
+++ b/pkg/cmd/run.go
@@ -20,6 +20,7 @@ package cmd
 import (
        "archive/zip"
        "context"
+       "errors"
 
        // this is needed to generate an SHA1 sum for Jars
        // #nosec G501
@@ -44,7 +45,7 @@ import (
 
        spectrum "github.com/container-tools/spectrum/pkg/builder"
        "github.com/magiconair/properties"
-       "github.com/pkg/errors"
+
        "github.com/spf13/cobra"
        "github.com/spf13/pflag"
 
@@ -242,7 +243,7 @@ func (o *runCmdOptions) validateArgs(cmd *cobra.Command, 
args []string) error {
        }
 
        if _, err := source.Resolve(context.Background(), args, false, cmd); 
err != nil {
-               return errors.Wrap(err, "One of the provided sources is not 
reachable")
+               return fmt.Errorf("one of the provided sources is not 
reachable: %w", err)
        }
 
        return nil
@@ -812,7 +813,7 @@ func (o *runCmdOptions) applyDependencies(cmd 
*cobra.Command, c client.Client, i
                                }
                        }
                        if err := o.uploadDependency(platform, item, name, cmd, 
it); err != nil {
-                               return errors.Wrap(err, fmt.Sprintf("Error 
trying to upload %s to the Image Registry.", item))
+                               return fmt.Errorf("error trying to upload %s to 
the Image Registry.: %w", item, err)
                        }
                } else {
                        if catalog == nil {
@@ -1001,7 +1002,7 @@ func (o *runCmdOptions) uploadDependency(platform 
*v1.IntegrationPlatform, item
                        query := item[idx+1:]
                        options, err := url.ParseQuery(query)
                        if err != nil {
-                               return errors.Wrap(err, fmt.Sprintf("invalid 
http dependency options %s", query))
+                               return fmt.Errorf("invalid http dependency 
options %s: %w", query, err)
                        }
                        o.RegistryOptions = options
                        depURL = item[:idx]
@@ -1009,9 +1010,9 @@ func (o *runCmdOptions) uploadDependency(platform 
*v1.IntegrationPlatform, item
 
                uri, err := url.Parse(depURL)
                if err != nil {
-                       return errors.Wrap(err, fmt.Sprintf("invalid http 
dependency url %s", depURL))
+                       return fmt.Errorf("invalid http dependency url %s: %w", 
depURL, err)
                } else if localPath, err = downloadDependency(o.Context, *uri); 
err != nil {
-                       return errors.Wrap(err, fmt.Sprintf("could not download 
http dependency %s", depURL))
+                       return fmt.Errorf("could not download http dependency 
%s: %w", depURL, err)
                }
                // Remove the temporary file
                defer os.Remove(localPath)
diff --git a/pkg/cmd/run_test.go b/pkg/cmd/run_test.go
index f31330f7f..219b2f7a2 100644
--- a/pkg/cmd/run_test.go
+++ b/pkg/cmd/run_test.go
@@ -524,7 +524,7 @@ func TestRunValidateArgs(t *testing.T) {
        args = []string{"missing_file"}
        err = runCmdOptions.validateArgs(rootCmd, args)
        assert.NotNil(t, err)
-       assert.Equal(t, "One of the provided sources is not reachable: missing 
file or unsupported scheme in missing_file", err.Error())
+       assert.Equal(t, "one of the provided sources is not reachable: missing 
file or unsupported scheme in missing_file", err.Error())
 }
 
 func TestResolvePodTemplate(t *testing.T) {
diff --git a/pkg/cmd/source/source.go b/pkg/cmd/source/source.go
index 78737a9f7..0ec53c491 100644
--- a/pkg/cmd/source/source.go
+++ b/pkg/cmd/source/source.go
@@ -32,7 +32,6 @@ import (
        "golang.org/x/oauth2"
 
        "github.com/google/go-github/v32/github"
-       "github.com/pkg/errors"
 )
 
 // Source represents the source file of an Integration.
@@ -202,9 +201,9 @@ func resolveGist(ctx context.Context, location string, 
compress bool, cmd *cobra
 // resolveLocal resolves a source from the local file system.
 func resolveLocal(location string, compress bool) (Source, error) {
        if _, err := os.Stat(location); err != nil && os.IsNotExist(err) {
-               return Source{}, errors.Wrapf(err, "file %s does not exist", 
location)
+               return Source{}, fmt.Errorf("file %s does not exist: %w", 
location, err)
        } else if err != nil {
-               return Source{}, errors.Wrapf(err, "error while accessing file 
%s", location)
+               return Source{}, fmt.Errorf("error while accessing file %s: 
%w", location, err)
        }
 
        answer, err := newSource(location, compress, func() ([]byte, error) {
diff --git a/pkg/cmd/source/util.go b/pkg/cmd/source/util.go
index 3ad2dc9ed..85e96a984 100644
--- a/pkg/cmd/source/util.go
+++ b/pkg/cmd/source/util.go
@@ -23,8 +23,6 @@ import (
        "os"
        "runtime"
        "strings"
-
-       "github.com/pkg/errors"
 )
 
 const (
@@ -52,7 +50,7 @@ func IsLocalAndFileExists(uri string) (bool, error) {
                }
 
                // If it is a different error (ie, permission denied) we should 
report it back
-               return false, errors.Wrap(err, fmt.Sprintf("file system error 
while looking for %s", uri))
+               return false, fmt.Errorf("file system error while looking for 
%s: %w", uri, err)
        }
 
        return !info.IsDir(), nil
diff --git a/pkg/cmd/uninstall.go b/pkg/cmd/uninstall.go
index c96d041e8..12fcfba7b 100644
--- a/pkg/cmd/uninstall.go
+++ b/pkg/cmd/uninstall.go
@@ -19,10 +19,10 @@ package cmd
 
 import (
        "context"
+       "errors"
        "fmt"
        "time"
 
-       "github.com/pkg/errors"
        "github.com/spf13/cobra"
        "github.com/spf13/viper"
 
@@ -137,7 +137,7 @@ func (o *uninstallCmdOptions) uninstall(cmd *cobra.Command, 
_ []string) error {
        if o.OlmEnabled {
                var err error
                if uninstallViaOLM, err = olm.IsAPIAvailable(o.Context, c, 
o.Namespace); err != nil {
-                       return errors.Wrap(err, "error while checking OLM 
availability. Run with '--olm=false' to skip this check")
+                       return fmt.Errorf("error while checking OLM 
availability. Run with '--olm=false' to skip this check: %w", err)
                }
 
                if uninstallViaOLM {
@@ -169,7 +169,7 @@ func (o *uninstallCmdOptions) uninstall(cmd *cobra.Command, 
_ []string) error {
                                defer cancel()
                                err := watch.WaitPodToTerminate(tctx, c, pod)
                                if err != nil {
-                                       return errors.Wrap(err, "error while 
waiting the operator pod to terminate gracefully")
+                                       return fmt.Errorf("error while waiting 
the operator pod to terminate gracefully: %w", err)
                                }
                        }
                }
diff --git a/pkg/controller/build/build_controller.go 
b/pkg/controller/build/build_controller.go
index ba294e6e2..1c08e8a95 100644
--- a/pkg/controller/build/build_controller.go
+++ b/pkg/controller/build/build_controller.go
@@ -21,7 +21,7 @@ import (
        "context"
        "time"
 
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/runtime"
        "k8s.io/apimachinery/pkg/runtime/schema"
        "k8s.io/client-go/tools/record"
@@ -121,7 +121,7 @@ func (r *reconcileBuild) Reconcile(ctx context.Context, 
request reconcile.Reques
        var instance v1.Build
 
        if err := r.client.Get(ctx, request.NamespacedName, &instance); err != 
nil {
-               if errors.IsNotFound(err) {
+               if k8serrors.IsNotFound(err) {
                        // Request object not found, could have been deleted 
after reconcile request.
                        // Owned objects are automatically garbage collected. 
For additional cleanup logic use finalizers.
                        // Return and don't requeue
diff --git a/pkg/controller/build/build_pod.go 
b/pkg/controller/build/build_pod.go
index 7095f9881..fe51dcde8 100644
--- a/pkg/controller/build/build_pod.go
+++ b/pkg/controller/build/build_pod.go
@@ -19,14 +19,13 @@ package build
 
 import (
        "context"
+       "errors"
        "fmt"
        "os"
        "path/filepath"
        "strconv"
        "strings"
 
-       "github.com/pkg/errors"
-
        corev1 "k8s.io/api/core/v1"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
diff --git a/pkg/controller/build/initialize_pod.go 
b/pkg/controller/build/initialize_pod.go
index f8b0a8896..a7b5ad405 100644
--- a/pkg/controller/build/initialize_pod.go
+++ b/pkg/controller/build/initialize_pod.go
@@ -19,11 +19,10 @@ package build
 
 import (
        "context"
+       "fmt"
 
        ctrl "sigs.k8s.io/controller-runtime/pkg/client"
 
-       "github.com/pkg/errors"
-
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
@@ -51,7 +50,7 @@ func (action *initializePodAction) CanHandle(build *v1.Build) 
bool {
 // Handle handles the builds.
 func (action *initializePodAction) Handle(ctx context.Context, build 
*v1.Build) (*v1.Build, error) {
        if err := deleteBuilderPod(ctx, action.client, build); err != nil {
-               return nil, errors.Wrap(err, "cannot delete build pod")
+               return nil, fmt.Errorf("cannot delete build pod: %w", err)
        }
 
        pod, err := getBuilderPod(ctx, action.reader, build)
diff --git a/pkg/controller/build/monitor_pod.go 
b/pkg/controller/build/monitor_pod.go
index c9b7be754..687bfb3ca 100644
--- a/pkg/controller/build/monitor_pod.go
+++ b/pkg/controller/build/monitor_pod.go
@@ -20,6 +20,7 @@ package build
 import (
        "context"
        "encoding/json"
+       "fmt"
        "os"
        "time"
 
@@ -32,8 +33,6 @@ import (
        ctrl "sigs.k8s.io/controller-runtime/pkg/client"
        "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
 
-       "github.com/pkg/errors"
-
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/platform"
        "github.com/apache/camel-k/v2/pkg/util/kubernetes"
@@ -92,7 +91,7 @@ func (action *monitorPodAction) Handle(ctx context.Context, 
build *v1.Build) (*v
                        }
 
                        if err = action.client.Create(ctx, pod); err != nil {
-                               return nil, errors.Wrap(err, "cannot create 
build pod")
+                               return nil, fmt.Errorf("cannot create build 
pod: %w", err)
                        }
 
                case v1.BuildPhaseRunning:
diff --git a/pkg/controller/catalog/catalog_controller.go 
b/pkg/controller/catalog/catalog_controller.go
index 8dc5e74d5..8ff7073c5 100644
--- a/pkg/controller/catalog/catalog_controller.go
+++ b/pkg/controller/catalog/catalog_controller.go
@@ -22,7 +22,7 @@ import (
        goruntime "runtime"
        "time"
 
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/runtime"
        "k8s.io/apimachinery/pkg/runtime/schema"
        "k8s.io/client-go/tools/record"
@@ -126,7 +126,7 @@ func (r *reconcileCatalog) Reconcile(ctx context.Context, 
request reconcile.Requ
        var instance v1.CamelCatalog
 
        if err := r.client.Get(ctx, request.NamespacedName, &instance); err != 
nil {
-               if errors.IsNotFound(err) {
+               if k8serrors.IsNotFound(err) {
                        // Request object not found, could have been deleted 
after reconcile request.
                        // Owned objects are automatically garbage collected. 
For additional cleanup
                        // logic use finalizers.
diff --git a/pkg/controller/integration/build_kit.go 
b/pkg/controller/integration/build_kit.go
index 8a291f7bc..ee84fb36c 100644
--- a/pkg/controller/integration/build_kit.go
+++ b/pkg/controller/integration/build_kit.go
@@ -19,8 +19,7 @@ package integration
 
 import (
        "context"
-
-       "github.com/pkg/errors"
+       "fmt"
 
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/trait"
@@ -69,15 +68,17 @@ func (action *buildKitAction) Handle(ctx context.Context, 
integration *v1.Integr
                kit, err := kubernetes.GetIntegrationKit(ctx, action.client,
                        integration.Status.IntegrationKit.Name, 
integration.Status.IntegrationKit.Namespace)
                if err != nil {
-                       return nil, errors.Wrapf(err, "unable to find 
integration kit %s/%s, %s",
-                               integration.Status.IntegrationKit.Namespace, 
integration.Status.IntegrationKit.Name, err)
+                       return nil, fmt.Errorf("unable to find integration kit 
%s/%s, %s: %w",
+                               integration.Status.IntegrationKit.Namespace, 
integration.Status.IntegrationKit.Name, err, err)
+
                }
 
                if kit.Labels[v1.IntegrationKitTypeLabel] == 
v1.IntegrationKitTypePlatform {
                        match, err := integrationMatches(integration, kit)
                        if err != nil {
-                               return nil, errors.Wrapf(err, "unable to match 
any integration kit with integration %s/%s",
-                                       integration.Namespace, integration.Name)
+                               return nil, fmt.Errorf("unable to match any 
integration kit with integration %s/%s: %w",
+                                       integration.Namespace, 
integration.Name, err)
+
                        } else if !match {
                                // We need to re-generate a kit, or search for 
a new one that
                                // matches the integration, so let's remove the 
association
@@ -113,8 +114,9 @@ func (action *buildKitAction) Handle(ctx context.Context, 
integration *v1.Integr
        action.L.Debug("No kit specified in integration status so looking up", 
"integration", integration.Name, "namespace", integration.Namespace)
        existingKits, err := lookupKitsForIntegration(ctx, action.client, 
integration)
        if err != nil {
-               return nil, errors.Wrapf(err, "failed to lookup kits for 
integration %s/%s",
-                       integration.Namespace, integration.Name)
+               return nil, fmt.Errorf("failed to lookup kits for integration 
%s/%s: %w",
+                       integration.Namespace, integration.Name, err)
+
        }
 
        action.L.Debug("Applying traits to integration",
@@ -122,8 +124,9 @@ func (action *buildKitAction) Handle(ctx context.Context, 
integration *v1.Integr
                "namespace", integration.Namespace)
        env, err := trait.Apply(ctx, action.client, integration, nil)
        if err != nil {
-               return nil, errors.Wrapf(err, "failed to apply traits to 
integration %s/%s",
-                       integration.Namespace, integration.Name)
+               return nil, fmt.Errorf("failed to apply traits to integration 
%s/%s: %w",
+                       integration.Namespace, integration.Name, err)
+
        }
 
        action.L.Debug("Searching integration kits to assign to integration", 
"integration",
@@ -139,9 +142,9 @@ kits:
                        action.L.Debug("Comparing existing kit with 
environment", "env kit", kit.Name, "existing kit", k.Name)
                        match, err := kitMatches(&kit, k)
                        if err != nil {
-                               return nil, errors.Wrapf(err,
-                                       "error occurred matches integration 
kits with environment for integration %s/%s",
-                                       integration.Namespace, integration.Name)
+                               return nil, fmt.Errorf("error occurred matches 
integration kits with environment for integration %s/%s: %w",
+                                       integration.Namespace, 
integration.Name, err)
+
                        }
                        if match {
                                if integrationKit == nil ||
@@ -162,8 +165,9 @@ kits:
                        "namespace", integration.Namespace,
                        "integration kit", kit.Name)
                if err := action.client.Create(ctx, &kit); err != nil {
-                       return nil, errors.Wrapf(err, "failed to create new 
integration kit for integration %s/%s",
-                               integration.Namespace, integration.Name)
+                       return nil, fmt.Errorf("failed to create new 
integration kit for integration %s/%s: %w",
+                               integration.Namespace, integration.Name, err)
+
                }
                if integrationKit == nil {
                        integrationKit = &kit
diff --git a/pkg/controller/integration/integration_controller.go 
b/pkg/controller/integration/integration_controller.go
index 6b4f16042..ae862fd2b 100644
--- a/pkg/controller/integration/integration_controller.go
+++ b/pkg/controller/integration/integration_controller.go
@@ -23,8 +23,6 @@ import (
        "reflect"
        "time"
 
-       "github.com/pkg/errors"
-
        appsv1 "k8s.io/api/apps/v1"
        batchv1 "k8s.io/api/batch/v1"
        corev1 "k8s.io/api/core/v1"
@@ -64,7 +62,7 @@ func Add(ctx context.Context, mgr manager.Manager, c 
client.Client) error {
                })
 
        if err != nil {
-               return errors.Wrapf(err, "unable to set up field indexer for 
status.phase")
+               return fmt.Errorf("unable to set up field indexer for 
status.phase: %w", err)
        }
 
        return add(ctx, mgr, c, newReconciler(mgr, c))
diff --git a/pkg/controller/integration/kits.go 
b/pkg/controller/integration/kits.go
index 8c8cebd1e..8dbc7337f 100644
--- a/pkg/controller/integration/kits.go
+++ b/pkg/controller/integration/kits.go
@@ -22,7 +22,7 @@ import (
        "fmt"
        "reflect"
 
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/labels"
        "k8s.io/apimachinery/pkg/selection"
 
@@ -38,7 +38,7 @@ import (
 
 func lookupKitsForIntegration(ctx context.Context, c ctrl.Reader, integration 
*v1.Integration, options ...ctrl.ListOption) ([]v1.IntegrationKit, error) {
        pl, err := platform.GetForResource(ctx, c, integration)
-       if err != nil && !errors.IsNotFound(err) {
+       if err != nil && !k8serrors.IsNotFound(err) {
                return nil, err
        }
 
diff --git a/pkg/controller/integrationkit/build.go 
b/pkg/controller/integrationkit/build.go
index c33deb920..6d553c671 100644
--- a/pkg/controller/integrationkit/build.go
+++ b/pkg/controller/integrationkit/build.go
@@ -19,12 +19,12 @@ package integrationkit
 
 import (
        "context"
+       "errors"
        "fmt"
        "strings"
        "time"
 
        "github.com/apache/camel-k/v2/pkg/util/defaults"
-       "github.com/pkg/errors"
 
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -120,7 +120,7 @@ func (action *buildAction) handleBuildSubmitted(ctx 
context.Context, kit *v1.Int
                        if pvc, err := 
kubernetes.LookupPersistentVolumeClaim(env.Ctx, env.Client, 
builderPodNamespace, defaults.DefaultPVC); pvc != nil || err != nil {
                                err = 
platform.CreateBuilderServiceAccount(env.Ctx, env.Client, env.Platform)
                                if err != nil {
-                                       return nil, errors.Wrap(err, "Error 
while creating Camel K Builder service account")
+                                       return nil, fmt.Errorf("error while 
creating Camel K Builder service account: %w", err)
                                }
                        } else {
                                // Fallback to Routine strategy
@@ -157,12 +157,12 @@ func (action *buildAction) handleBuildSubmitted(ctx 
context.Context, kit *v1.Int
 
                err = action.client.Delete(ctx, build)
                if err != nil && !k8serrors.IsNotFound(err) {
-                       return nil, errors.Wrap(err, "cannot delete build")
+                       return nil, fmt.Errorf("cannot delete build: %w", err)
                }
 
                err = action.client.Create(ctx, build)
                if err != nil {
-                       return nil, errors.Wrap(err, "cannot create build")
+                       return nil, fmt.Errorf("cannot create build: %w", err)
                }
        }
 
diff --git a/pkg/controller/integrationkit/initialize.go 
b/pkg/controller/integrationkit/initialize.go
index 8f4f3e49a..2e6b95b13 100644
--- a/pkg/controller/integrationkit/initialize.go
+++ b/pkg/controller/integrationkit/initialize.go
@@ -26,7 +26,7 @@ import (
        "github.com/apache/camel-k/v2/pkg/trait"
        "github.com/apache/camel-k/v2/pkg/util/defaults"
        "github.com/apache/camel-k/v2/pkg/util/kubernetes"
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
 )
 
 // NewInitializeAction creates a new initialization handling action for the 
kit.
@@ -65,7 +65,7 @@ func (action *initializeAction) Handle(ctx context.Context, 
kit *v1.IntegrationK
                )
 
                if err != nil {
-                       if errors.IsNotFound(err) {
+                       if k8serrors.IsNotFound(err) {
                                // If the catalog is not available, likely it 
was required to be created
                                // by Integration trait, so we'll need to wait 
for it the be available
                                kit.Status.Phase = 
v1.IntegrationKitPhaseWaitingForCatalog
diff --git a/pkg/controller/integrationkit/integrationkit_controller.go 
b/pkg/controller/integrationkit/integrationkit_controller.go
index 71d917301..348645605 100644
--- a/pkg/controller/integrationkit/integrationkit_controller.go
+++ b/pkg/controller/integrationkit/integrationkit_controller.go
@@ -22,7 +22,7 @@ import (
        "fmt"
        "time"
 
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/runtime"
        "k8s.io/apimachinery/pkg/runtime/schema"
        "k8s.io/apimachinery/pkg/types"
@@ -208,7 +208,7 @@ func (r *reconcileIntegrationKit) Reconcile(ctx 
context.Context, request reconci
 
        // Fetch the IntegrationKit instance
        if err := r.client.Get(ctx, request.NamespacedName, &instance); err != 
nil {
-               if errors.IsNotFound(err) {
+               if k8serrors.IsNotFound(err) {
                        // Request object not found, could have been deleted 
after reconcile request.
                        // Owned objects are automatically garbage collected. 
For additional cleanup logic use finalizers.
                        // Return and don't requeue
diff --git 
a/pkg/controller/integrationplatform/integrationplatform_controller.go 
b/pkg/controller/integrationplatform/integrationplatform_controller.go
index 7d00cc431..9990abd1d 100644
--- a/pkg/controller/integrationplatform/integrationplatform_controller.go
+++ b/pkg/controller/integrationplatform/integrationplatform_controller.go
@@ -21,7 +21,7 @@ import (
        "context"
        "time"
 
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/runtime"
        "k8s.io/apimachinery/pkg/runtime/schema"
        "k8s.io/client-go/tools/record"
@@ -135,7 +135,7 @@ func (r *reconcileIntegrationPlatform) Reconcile(ctx 
context.Context, request re
        var instance v1.IntegrationPlatform
 
        if err := r.client.Get(ctx, request.NamespacedName, &instance); err != 
nil {
-               if errors.IsNotFound(err) {
+               if k8serrors.IsNotFound(err) {
                        // Request object not found, could have been deleted 
after reconcile request.
                        // Owned objects are automatically garbage collected. 
For additional cleanup
                        // logic use finalizers.
diff --git a/pkg/controller/integrationplatform/kaniko_cache.go 
b/pkg/controller/integrationplatform/kaniko_cache.go
index 4b08d3b79..f82ef1d52 100644
--- a/pkg/controller/integrationplatform/kaniko_cache.go
+++ b/pkg/controller/integrationplatform/kaniko_cache.go
@@ -21,8 +21,6 @@ import (
        "context"
        "fmt"
 
-       "github.com/pkg/errors"
-
        corev1 "k8s.io/api/core/v1"
        apierrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -110,12 +108,12 @@ func createKanikoCacheWarmerPod(ctx context.Context, 
client client.Client, platf
 
        err := client.Delete(ctx, &pod)
        if err != nil && !apierrors.IsNotFound(err) {
-               return errors.Wrap(err, "cannot delete Kaniko warmer pod")
+               return fmt.Errorf("cannot delete Kaniko warmer pod: %w", err)
        }
 
        err = client.Create(ctx, &pod)
        if err != nil {
-               return errors.Wrap(err, "cannot create Kaniko warmer pod")
+               return fmt.Errorf("cannot create Kaniko warmer pod: %w", err)
        }
 
        return nil
diff --git a/pkg/controller/kamelet/kamelet_controller.go 
b/pkg/controller/kamelet/kamelet_controller.go
index d4f0fa560..bd6e12d87 100644
--- a/pkg/controller/kamelet/kamelet_controller.go
+++ b/pkg/controller/kamelet/kamelet_controller.go
@@ -22,7 +22,7 @@ import (
        goruntime "runtime"
        "time"
 
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/runtime"
        "k8s.io/apimachinery/pkg/runtime/schema"
        "k8s.io/client-go/tools/record"
@@ -127,7 +127,7 @@ func (r *reconcileKamelet) Reconcile(ctx context.Context, 
request reconcile.Requ
        var instance v1.Kamelet
 
        if err := r.client.Get(ctx, request.NamespacedName, &instance); err != 
nil {
-               if errors.IsNotFound(err) {
+               if k8serrors.IsNotFound(err) {
                        // Request object not found, could have been deleted 
after reconcile request.
                        // Owned objects are automatically garbage collected. 
For additional cleanup
                        // logic use finalizers.
diff --git a/pkg/controller/kameletbinding/error_handler.go 
b/pkg/controller/kameletbinding/error_handler.go
index 2c1ee036a..603b8af7a 100644
--- a/pkg/controller/kameletbinding/error_handler.go
+++ b/pkg/controller/kameletbinding/error_handler.go
@@ -19,11 +19,11 @@ package kameletbinding
 
 import (
        "encoding/json"
+       "errors"
        "fmt"
 
        "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1"
        "github.com/apache/camel-k/v2/pkg/util/bindings"
-       "github.com/pkg/errors"
 )
 
 func maybeErrorHandler(errHandlConf *v1alpha1.ErrorHandlerSpec, bindingContext 
bindings.V1alpha1BindingContext) (*bindings.Binding, error) {
@@ -31,13 +31,13 @@ func maybeErrorHandler(errHandlConf 
*v1alpha1.ErrorHandlerSpec, bindingContext b
        if errHandlConf != nil {
                errorHandlerSpec, err := 
parseErrorHandler(errHandlConf.RawMessage)
                if err != nil {
-                       return nil, errors.Wrap(err, "could not parse error 
handler")
+                       return nil, fmt.Errorf("could not parse error handler: 
%w", err)
                }
                // We need to get the translated URI from any referenced 
resource (ie, kamelets)
                if errorHandlerSpec.Type() == v1alpha1.ErrorHandlerTypeSink {
                        errorHandlerBinding, err = 
bindings.TranslateV1alpha1(bindingContext, 
bindings.V1alpha1EndpointContext{Type: v1alpha1.EndpointTypeErrorHandler}, 
*errorHandlerSpec.Endpoint())
                        if err != nil {
-                               return nil, errors.Wrap(err, "could not 
determine error handler URI")
+                               return nil, fmt.Errorf("could not determine 
error handler URI: %w", err)
                        }
                } else {
                        // Create a new binding otherwise in order to store 
error handler application properties
@@ -48,7 +48,7 @@ func maybeErrorHandler(errHandlConf 
*v1alpha1.ErrorHandlerSpec, bindingContext b
 
                err = setErrorHandlerConfiguration(errorHandlerBinding, 
errorHandlerSpec)
                if err != nil {
-                       return nil, errors.Wrap(err, "could not set integration 
error handler")
+                       return nil, fmt.Errorf("could not set integration error 
handler: %w", err)
                }
 
                return errorHandlerBinding, nil
@@ -63,7 +63,7 @@ func parseErrorHandler(rawMessage v1alpha1.RawMessage) 
(v1alpha1.ErrorHandler, e
                return nil, err
        }
        if len(properties) > 1 {
-               return nil, errors.Errorf("You must provide just 1 error 
handler, provided %d", len(properties))
+               return nil, fmt.Errorf("you must provide just 1 error handler, 
provided %d", len(properties))
        }
 
        for errHandlType, errHandlValue := range properties {
@@ -76,7 +76,7 @@ func parseErrorHandler(rawMessage v1alpha1.RawMessage) 
(v1alpha1.ErrorHandler, e
                case v1alpha1.ErrorHandlerTypeSink:
                        dst = new(v1alpha1.ErrorHandlerSink)
                default:
-                       return nil, errors.Errorf("Unknown error handler type 
%s", errHandlType)
+                       return nil, fmt.Errorf("unknown error handler type %s", 
errHandlType)
                }
 
                if err = json.Unmarshal(errHandlValue, dst); err != nil {
@@ -89,7 +89,7 @@ func parseErrorHandler(rawMessage v1alpha1.RawMessage) 
(v1alpha1.ErrorHandler, e
                return dst, nil
        }
 
-       return nil, errors.New("You must provide any supported error handler")
+       return nil, errors.New("you must provide any supported error handler")
 }
 
 func setErrorHandlerConfiguration(errorHandlerBinding *bindings.Binding, 
errorHandler v1alpha1.ErrorHandler) error {
diff --git a/pkg/controller/kameletbinding/initialize.go 
b/pkg/controller/kameletbinding/initialize.go
index 35afba27f..0e4afa700 100644
--- a/pkg/controller/kameletbinding/initialize.go
+++ b/pkg/controller/kameletbinding/initialize.go
@@ -19,6 +19,7 @@ package kameletbinding
 
 import (
        "context"
+       "fmt"
        "strings"
 
        v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1"
@@ -27,7 +28,7 @@ import (
        "github.com/apache/camel-k/v2/pkg/platform"
        "github.com/apache/camel-k/v2/pkg/util/kubernetes"
        "github.com/apache/camel-k/v2/pkg/util/patch"
-       "github.com/pkg/errors"
+
        corev1 "k8s.io/api/core/v1"
        "k8s.io/apimachinery/pkg/types"
        "sigs.k8s.io/controller-runtime/pkg/client"
@@ -60,7 +61,7 @@ func (action *initializeAction) Handle(ctx context.Context, 
binding *v1alpha1.Ka
        }
 
        if _, err := kubernetes.ReplaceResource(ctx, action.client, it); err != 
nil {
-               return nil, errors.Wrap(err, "could not create integration for 
KameletBinding")
+               return nil, fmt.Errorf("could not create integration for 
KameletBinding: %w", err)
        }
 
        // propagate Kamelet icon (best effort)
diff --git a/pkg/controller/kameletbinding/integration.go 
b/pkg/controller/kameletbinding/integration.go
index 1d4fdc796..04720c25f 100644
--- a/pkg/controller/kameletbinding/integration.go
+++ b/pkg/controller/kameletbinding/integration.go
@@ -20,10 +20,9 @@ package kameletbinding
 import (
        "context"
        "encoding/json"
+       "fmt"
        "sort"
 
-       "github.com/pkg/errors"
-
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
@@ -106,16 +105,16 @@ func CreateIntegrationFor(ctx context.Context, c 
client.Client, binding *v1alpha
 
        from, err := bindings.TranslateV1alpha1(bindingContext, 
endpointTypeSourceContext, binding.Spec.Source)
        if err != nil {
-               return nil, errors.Wrap(err, "could not determine source URI")
+               return nil, fmt.Errorf("could not determine source URI: %w", 
err)
        }
        to, err := bindings.TranslateV1alpha1(bindingContext, 
endpointTypeSinkContext, binding.Spec.Sink)
        if err != nil {
-               return nil, errors.Wrap(err, "could not determine sink URI")
+               return nil, fmt.Errorf("could not determine sink URI: %w", err)
        }
        // error handler is optional
        errorHandler, err := maybeErrorHandler(binding.Spec.ErrorHandler, 
bindingContext)
        if err != nil {
-               return nil, errors.Wrap(err, "could not determine error 
handler")
+               return nil, fmt.Errorf("could not determine error handler: %w", 
err)
        }
 
        steps := make([]*bindings.Binding, 0, len(binding.Spec.Steps))
@@ -126,20 +125,20 @@ func CreateIntegrationFor(ctx context.Context, c 
client.Client, binding *v1alpha
                        Position: &position,
                }, step)
                if err != nil {
-                       return nil, errors.Wrapf(err, "could not determine URI 
for step %d", idx)
+                       return nil, fmt.Errorf("could not determine URI for 
step %d: %w", idx, err)
                }
                steps = append(steps, stepKameletBinding)
        }
 
        if to.Step == nil && to.URI == "" {
-               return nil, errors.Errorf("illegal step definition for sink 
step: either Step or URI should be provided")
+               return nil, fmt.Errorf("illegal step definition for sink step: 
either Step or URI should be provided")
        }
        if from.URI == "" {
-               return nil, errors.Errorf("illegal step definition for source 
step: URI should be provided")
+               return nil, fmt.Errorf("illegal step definition for source 
step: URI should be provided")
        }
        for index, step := range steps {
                if step.Step == nil && step.URI == "" {
-                       return nil, errors.Errorf("illegal step definition for 
step %d: either Step or URI should be provided", index)
+                       return nil, fmt.Errorf("illegal step definition for 
step %d: either Step or URI should be provided", index)
                }
        }
 
@@ -239,7 +238,7 @@ func determineProfile(ctx context.Context, c client.Client, 
binding *v1alpha1.Ka
        }
        pl, err := platform.GetForResource(ctx, c, binding)
        if err != nil && !k8serrors.IsNotFound(err) {
-               return "", errors.Wrap(err, "error while retrieving the 
integration platform")
+               return "", fmt.Errorf("error while retrieving the integration 
platform: %w", err)
        }
        if pl != nil {
                if pl.Status.Profile != "" {
diff --git a/pkg/controller/kameletbinding/kameletbinding_controller.go 
b/pkg/controller/kameletbinding/kameletbinding_controller.go
index 0553b4d92..0461f6166 100644
--- a/pkg/controller/kameletbinding/kameletbinding_controller.go
+++ b/pkg/controller/kameletbinding/kameletbinding_controller.go
@@ -20,7 +20,7 @@ package kameletbinding
 import (
        "context"
 
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/runtime"
        "k8s.io/apimachinery/pkg/runtime/schema"
        "k8s.io/client-go/tools/record"
@@ -157,7 +157,7 @@ func (r *ReconcileKameletBinding) Reconcile(ctx 
context.Context, request reconci
        var instance v1alpha1.KameletBinding
 
        if err := r.client.Get(ctx, request.NamespacedName, &instance); err != 
nil {
-               if errors.IsNotFound(err) {
+               if k8serrors.IsNotFound(err) {
                        // Request object not found, could have been deleted 
after reconcile request.
                        // Owned objects are automatically garbage collected. 
For additional cleanup
                        // logic use finalizers.
diff --git a/pkg/controller/kameletbinding/monitor.go 
b/pkg/controller/kameletbinding/monitor.go
index 8c8656316..2c23d062a 100644
--- a/pkg/controller/kameletbinding/monitor.go
+++ b/pkg/controller/kameletbinding/monitor.go
@@ -21,8 +21,6 @@ import (
        "context"
        "fmt"
 
-       "github.com/pkg/errors"
-
        corev1 "k8s.io/api/core/v1"
        "k8s.io/apimachinery/pkg/api/equality"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
@@ -72,7 +70,7 @@ func (action *monitorAction) Handle(ctx context.Context, 
binding *v1alpha1.Kamel
                )
                return target, nil
        } else if err != nil {
-               return nil, errors.Wrapf(err, "could not load integration for 
Binding %q", binding.Name)
+               return nil, fmt.Errorf("could not load integration for Binding 
%q: %w", binding.Name, err)
        }
 
        operatorIDChanged := v1.GetOperatorIDAnnotation(binding) != "" &&
diff --git a/pkg/controller/pipe/error_handler.go 
b/pkg/controller/pipe/error_handler.go
index 865b8d1fd..fd00c85bc 100644
--- a/pkg/controller/pipe/error_handler.go
+++ b/pkg/controller/pipe/error_handler.go
@@ -19,11 +19,11 @@ package pipe
 
 import (
        "encoding/json"
+       "errors"
        "fmt"
 
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/util/bindings"
-       "github.com/pkg/errors"
 )
 
 func maybeErrorHandler(errHandlConf *v1.ErrorHandlerSpec, bindingContext 
bindings.BindingContext) (*bindings.Binding, error) {
@@ -31,13 +31,13 @@ func maybeErrorHandler(errHandlConf *v1.ErrorHandlerSpec, 
bindingContext binding
        if errHandlConf != nil {
                errorHandlerSpec, err := 
parseErrorHandler(errHandlConf.RawMessage)
                if err != nil {
-                       return nil, errors.Wrap(err, "could not parse error 
handler")
+                       return nil, fmt.Errorf("could not parse error handler: 
%w", err)
                }
                // We need to get the translated URI from any referenced 
resource (ie, kamelets)
                if errorHandlerSpec.Type() == v1.ErrorHandlerTypeSink {
                        errorHandlerBinding, err = 
bindings.Translate(bindingContext, bindings.EndpointContext{Type: 
v1.EndpointTypeErrorHandler}, *errorHandlerSpec.Endpoint())
                        if err != nil {
-                               return nil, errors.Wrap(err, "could not 
determine error handler URI")
+                               return nil, fmt.Errorf("could not determine 
error handler URI: %w", err)
                        }
                } else {
                        // Create a new binding otherwise in order to store 
error handler application properties
@@ -48,7 +48,7 @@ func maybeErrorHandler(errHandlConf *v1.ErrorHandlerSpec, 
bindingContext binding
 
                err = setErrorHandlerConfiguration(errorHandlerBinding, 
errorHandlerSpec)
                if err != nil {
-                       return nil, errors.Wrap(err, "could not set integration 
error handler")
+                       return nil, fmt.Errorf("could not set integration error 
handler: %w", err)
                }
 
                return errorHandlerBinding, nil
@@ -63,7 +63,7 @@ func parseErrorHandler(rawMessage v1.RawMessage) 
(v1.ErrorHandler, error) {
                return nil, err
        }
        if len(properties) > 1 {
-               return nil, errors.Errorf("You must provide just 1 error 
handler, provided %d", len(properties))
+               return nil, fmt.Errorf("you must provide just 1 error handler, 
provided %d", len(properties))
        }
 
        for errHandlType, errHandlValue := range properties {
@@ -76,7 +76,7 @@ func parseErrorHandler(rawMessage v1.RawMessage) 
(v1.ErrorHandler, error) {
                case v1.ErrorHandlerTypeSink:
                        dst = new(v1.ErrorHandlerSink)
                default:
-                       return nil, errors.Errorf("Unknown error handler type 
%s", errHandlType)
+                       return nil, fmt.Errorf("unknown error handler type %s", 
errHandlType)
                }
 
                if err = json.Unmarshal(errHandlValue, dst); err != nil {
@@ -89,7 +89,7 @@ func parseErrorHandler(rawMessage v1.RawMessage) 
(v1.ErrorHandler, error) {
                return dst, nil
        }
 
-       return nil, errors.New("You must provide any supported error handler")
+       return nil, errors.New("you must provide any supported error handler")
 }
 
 func setErrorHandlerConfiguration(errorHandlerBinding *bindings.Binding, 
errorHandler v1.ErrorHandler) error {
diff --git a/pkg/controller/pipe/initialize.go 
b/pkg/controller/pipe/initialize.go
index 8fb5a870b..79ad4f2a4 100644
--- a/pkg/controller/pipe/initialize.go
+++ b/pkg/controller/pipe/initialize.go
@@ -19,6 +19,7 @@ package pipe
 
 import (
        "context"
+       "fmt"
        "strings"
 
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
@@ -27,7 +28,7 @@ import (
        "github.com/apache/camel-k/v2/pkg/platform"
        "github.com/apache/camel-k/v2/pkg/util/kubernetes"
        "github.com/apache/camel-k/v2/pkg/util/patch"
-       "github.com/pkg/errors"
+
        corev1 "k8s.io/api/core/v1"
        "k8s.io/apimachinery/pkg/types"
        "sigs.k8s.io/controller-runtime/pkg/client"
@@ -60,7 +61,7 @@ func (action *initializeAction) Handle(ctx context.Context, 
binding *v1.Pipe) (*
        }
 
        if _, err := kubernetes.ReplaceResource(ctx, action.client, it); err != 
nil {
-               return nil, errors.Wrap(err, "could not create integration 
forPipe")
+               return nil, fmt.Errorf("could not create integration forPipe: 
%w", err)
        }
 
        // propagate Kamelet icon (best effort)
diff --git a/pkg/controller/pipe/integration.go 
b/pkg/controller/pipe/integration.go
index 770c573e4..9d21e1c41 100644
--- a/pkg/controller/pipe/integration.go
+++ b/pkg/controller/pipe/integration.go
@@ -20,10 +20,9 @@ package pipe
 import (
        "context"
        "encoding/json"
+       "fmt"
        "sort"
 
-       "github.com/pkg/errors"
-
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
@@ -106,16 +105,16 @@ func CreateIntegrationFor(ctx context.Context, c 
client.Client, binding *v1.Pipe
 
        from, err := bindings.Translate(bindingContext, 
endpointTypeSourceContext, binding.Spec.Source)
        if err != nil {
-               return nil, errors.Wrap(err, "could not determine source URI")
+               return nil, fmt.Errorf("could not determine source URI: %w", 
err)
        }
        to, err := bindings.Translate(bindingContext, endpointTypeSinkContext, 
binding.Spec.Sink)
        if err != nil {
-               return nil, errors.Wrap(err, "could not determine sink URI")
+               return nil, fmt.Errorf("could not determine sink URI: %w", err)
        }
        // error handler is optional
        errorHandler, err := maybeErrorHandler(binding.Spec.ErrorHandler, 
bindingContext)
        if err != nil {
-               return nil, errors.Wrap(err, "could not determine error 
handler")
+               return nil, fmt.Errorf("could not determine error handler: %w", 
err)
        }
 
        steps := make([]*bindings.Binding, 0, len(binding.Spec.Steps))
@@ -126,20 +125,20 @@ func CreateIntegrationFor(ctx context.Context, c 
client.Client, binding *v1.Pipe
                        Position: &position,
                }, step)
                if err != nil {
-                       return nil, errors.Wrapf(err, "could not determine URI 
for step %d", idx)
+                       return nil, fmt.Errorf("could not determine URI for 
step %d: %w", idx, err)
                }
                steps = append(steps, stepBinding)
        }
 
        if to.Step == nil && to.URI == "" {
-               return nil, errors.Errorf("illegal step definition for sink 
step: either Step or URI should be provided")
+               return nil, fmt.Errorf("illegal step definition for sink step: 
either Step or URI should be provided")
        }
        if from.URI == "" {
-               return nil, errors.Errorf("illegal step definition for source 
step: URI should be provided")
+               return nil, fmt.Errorf("illegal step definition for source 
step: URI should be provided")
        }
        for index, step := range steps {
                if step.Step == nil && step.URI == "" {
-                       return nil, errors.Errorf("illegal step definition for 
step %d: either Step or URI should be provided", index)
+                       return nil, fmt.Errorf("illegal step definition for 
step %d: either Step or URI should be provided", index)
                }
        }
 
@@ -239,7 +238,7 @@ func determineProfile(ctx context.Context, c client.Client, 
binding *v1.Pipe) (v
        }
        pl, err := platform.GetForResource(ctx, c, binding)
        if err != nil && !k8serrors.IsNotFound(err) {
-               return "", errors.Wrap(err, "error while retrieving the 
integration platform")
+               return "", fmt.Errorf("error while retrieving the integration 
platform: %w", err)
        }
        if pl != nil {
                if pl.Status.Profile != "" {
diff --git a/pkg/controller/pipe/monitor.go b/pkg/controller/pipe/monitor.go
index 58f0f231e..a2bff2456 100644
--- a/pkg/controller/pipe/monitor.go
+++ b/pkg/controller/pipe/monitor.go
@@ -21,8 +21,6 @@ import (
        "context"
        "fmt"
 
-       "github.com/pkg/errors"
-
        corev1 "k8s.io/api/core/v1"
        "k8s.io/apimachinery/pkg/api/equality"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
@@ -71,7 +69,7 @@ func (action *monitorAction) Handle(ctx context.Context, 
binding *v1.Pipe) (*v1.
                )
                return target, nil
        } else if err != nil {
-               return nil, errors.Wrapf(err, "could not load integration for 
Pipe %q", binding.Name)
+               return nil, fmt.Errorf("could not load integration for Pipe %q: 
%w", binding.Name, err)
        }
 
        operatorIDChanged := v1.GetOperatorIDAnnotation(binding) != "" &&
diff --git a/pkg/controller/pipe/pipe_controller.go 
b/pkg/controller/pipe/pipe_controller.go
index 741dd48a1..2111a7d33 100644
--- a/pkg/controller/pipe/pipe_controller.go
+++ b/pkg/controller/pipe/pipe_controller.go
@@ -20,7 +20,7 @@ package pipe
 import (
        "context"
 
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/runtime"
        "k8s.io/apimachinery/pkg/runtime/schema"
        "k8s.io/client-go/tools/record"
@@ -157,7 +157,7 @@ func (r *ReconcilePipe) Reconcile(ctx context.Context, 
request reconcile.Request
        var instance v1.Pipe
 
        if err := r.client.Get(ctx, request.NamespacedName, &instance); err != 
nil {
-               if errors.IsNotFound(err) {
+               if k8serrors.IsNotFound(err) {
                        // Request object not found, could have been deleted 
after reconcile request.
                        // Owned objects are automatically garbage collected. 
For additional cleanup
                        // logic use finalizers.
diff --git a/pkg/install/cluster.go b/pkg/install/cluster.go
index 2d2b3858d..945c554f2 100644
--- a/pkg/install/cluster.go
+++ b/pkg/install/cluster.go
@@ -35,7 +35,7 @@ import (
        "github.com/apache/camel-k/v2/pkg/resources"
        "github.com/apache/camel-k/v2/pkg/util/knative"
        "github.com/apache/camel-k/v2/pkg/util/kubernetes"
-       pkgerr "github.com/pkg/errors"
+
        ctrl "sigs.k8s.io/controller-runtime/pkg/client"
 )
 
@@ -291,42 +291,42 @@ func WaitForAllCrdInstallation(ctx context.Context, 
clientProvider client.Provid
 
 func areAllCrdInstalled(c client.Client) (int, error) {
        if ok, err := isCrdInstalled(c, "IntegrationPlatform", "v1"); err != 
nil {
-               return 1, pkgerr.Wrap(err, "Error installing 
IntegrationPlatform CRDs")
+               return 1, fmt.Errorf("error installing IntegrationPlatform 
CRDs: %w", err)
        } else if !ok {
                return 1, nil
        }
        if ok, err := isCrdInstalled(c, "IntegrationKit", "v1"); err != nil {
-               return 2, pkgerr.Wrap(err, "Error installing IntegrationKit 
CRDs")
+               return 2, fmt.Errorf("error installing IntegrationKit CRDs: 
%w", err)
        } else if !ok {
                return 2, nil
        }
        if ok, err := isCrdInstalled(c, "Integration", "v1"); err != nil {
-               return 3, pkgerr.Wrap(err, "Error installing Integration CRDs")
+               return 3, fmt.Errorf("error installing Integration CRDs: %w", 
err)
        } else if !ok {
                return 3, nil
        }
        if ok, err := isCrdInstalled(c, "CamelCatalog", "v1"); err != nil {
-               return 4, pkgerr.Wrap(err, "Error installing CamelCatalog CRDs")
+               return 4, fmt.Errorf("error installing CamelCatalog CRDs: %w", 
err)
        } else if !ok {
                return 4, nil
        }
        if ok, err := isCrdInstalled(c, "Build", "v1"); err != nil {
-               return 5, pkgerr.Wrap(err, "Error installing Build CRDs")
+               return 5, fmt.Errorf("error installing Build CRDs: %w", err)
        } else if !ok {
                return 5, nil
        }
        if ok, err := isCrdInstalled(c, "Kamelet", "v1"); err != nil {
-               return 6, pkgerr.Wrap(err, "Error installing Kamelet CRDs")
+               return 6, fmt.Errorf("error installing Kamelet CRDs: %w", err)
        } else if !ok {
                return 6, nil
        }
        if ok, err := isCrdInstalled(c, "KameletBinding", "v1alpha1"); err != 
nil {
-               return 7, pkgerr.Wrap(err, "Error installing KameletBindings 
CRDs")
+               return 7, fmt.Errorf("error installing KameletBindings CRDs: 
%w", err)
        } else if !ok {
                return 7, nil
        }
        if ok, err := isCrdInstalled(c, "Pipe", "v1"); err != nil {
-               return 8, pkgerr.Wrap(err, "Error installing Pipe CRDs")
+               return 8, fmt.Errorf("error installing Pipe CRDs: %w", err)
        } else if !ok {
                return 8, nil
        }
diff --git a/pkg/install/kamelets.go b/pkg/install/kamelets.go
index cf8207eb2..1a7d41ddf 100644
--- a/pkg/install/kamelets.go
+++ b/pkg/install/kamelets.go
@@ -30,7 +30,6 @@ import (
        "sync"
        "sync/atomic"
 
-       gerrors "github.com/pkg/errors"
        "golang.org/x/sync/errgroup"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/runtime"
@@ -104,7 +103,7 @@ func KameletCatalog(ctx context.Context, c client.Client, 
namespace string) erro
                                                err = nil
                                        } else {
                                                // Unexpected error occurred
-                                               err = gerrors.Wrap(err, 
"Unexpected error occurred whilst validating kamelet")
+                                               err = fmt.Errorf("unexpected 
error occurred whilst validating kamelet: %w", err)
                                                log.Error(err, "Error occurred 
whilst loading kamelets")
                                        }
                                } else {
diff --git a/pkg/install/openshift.go b/pkg/install/openshift.go
index 2acb69f7c..202d8d207 100644
--- a/pkg/install/openshift.go
+++ b/pkg/install/openshift.go
@@ -24,7 +24,7 @@ import (
 
        "github.com/Masterminds/semver"
 
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        "k8s.io/apimachinery/pkg/types"
 
@@ -80,7 +80,7 @@ func OpenShiftConsoleDownloadLink(ctx context.Context, c 
client.Client) error {
        existing := &console.ConsoleCLIDownload{}
        err = c.Get(ctx, types.NamespacedName{Name: KamelCLIDownloadName}, 
existing)
        if err != nil {
-               if errors.IsNotFound(err) {
+               if k8serrors.IsNotFound(err) {
                        existing = nil
                } else {
                        return err
@@ -104,7 +104,7 @@ func OpenShiftConsoleDownloadLink(ctx context.Context, c 
client.Client) error {
                        // Else delete the older version
                        err = c.Delete(ctx, existing)
                        if err != nil {
-                               if errors.IsForbidden(err) {
+                               if k8serrors.IsForbidden(err) {
                                        // Let's just skip the 
ConsoleCLIDownload resource creation
                                        return nil
                                }
diff --git a/pkg/install/operator.go b/pkg/install/operator.go
index 96adaf885..d3d78c27c 100644
--- a/pkg/install/operator.go
+++ b/pkg/install/operator.go
@@ -19,10 +19,10 @@ package install
 
 import (
        "context"
+       "errors"
        "fmt"
        "strings"
 
-       "github.com/pkg/errors"
        "github.com/spf13/cobra"
 
        appsv1 "k8s.io/api/apps/v1"
@@ -355,7 +355,8 @@ func OperatorOrCollect(ctx context.Context, cmd 
*cobra.Command, c client.Client,
                        switch {
                        case k8serrors.IsForbidden(err):
                                fmt.Fprintln(cmd.ErrOrStderr(), "Warning: the 
creation of monitoring resources is not allowed. Try installing as 
cluster-admin to allow the creation of monitoring resources.")
-                       case meta.IsNoMatchError(errors.Cause(err)):
+                               // TU to check ?
+                       case meta.IsNoMatchError(errors.Unwrap(err)):
                                fmt.Fprintln(cmd.ErrOrStderr(), "Warning: the 
creation of the monitoring resources failed: ", err)
                        default:
                                return err
@@ -415,7 +416,7 @@ func installNamespacedRoleBinding(ctx context.Context, c 
client.Client, collecti
                return err
        }
        if yaml == "" {
-               return errors.Errorf("resource file %v not found", path)
+               return fmt.Errorf("resource file %v not found", path)
        }
        obj, err := kubernetes.LoadResourceFromYaml(c.GetScheme(), yaml)
        if err != nil {
@@ -466,7 +467,7 @@ func installClusterRoleBinding(ctx context.Context, c 
client.Client, collection
 
                existing = nil
                if content == "" {
-                       return errors.Errorf("resource file %v not found", path)
+                       return fmt.Errorf("resource file %v not found", path)
                }
 
                obj, err := kubernetes.LoadResourceFromYaml(c.GetScheme(), 
content)
diff --git a/pkg/kamelet/initialize.go b/pkg/kamelet/initialize.go
index 20481b71c..cce099784 100644
--- a/pkg/kamelet/initialize.go
+++ b/pkg/kamelet/initialize.go
@@ -25,7 +25,6 @@ import (
 
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 
-       "github.com/pkg/errors"
        corev1 "k8s.io/api/core/v1"
 )
 
@@ -88,7 +87,7 @@ func recomputeProperties(kamelet *v1.Kamelet) error {
                        d := 
json.NewDecoder(bytes.NewReader(v.Default.RawMessage))
                        d.UseNumber()
                        if err := d.Decode(&val); err != nil {
-                               return errors.Wrapf(err, "cannot decode default 
value for property %q", k)
+                               return fmt.Errorf("cannot decode default value 
for property %q: %w", k, err)
                        }
                        defValue = fmt.Sprintf("%v", val)
                }
diff --git a/pkg/platform/defaults.go b/pkg/platform/defaults.go
index 8dbf8a29d..19c237b63 100644
--- a/pkg/platform/defaults.go
+++ b/pkg/platform/defaults.go
@@ -19,12 +19,11 @@ package platform
 
 import (
        "context"
+       "fmt"
        "runtime"
        "strings"
        "time"
 
-       "github.com/pkg/errors"
-
        corev1 "k8s.io/api/core/v1"
        rbacv1 "k8s.io/api/rbac/v1"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
@@ -94,7 +93,7 @@ func ConfigureDefaults(ctx context.Context, c client.Client, 
p *v1.IntegrationPl
 
        if p.Status.Build.BuildStrategy == v1.BuildStrategyPod {
                if err := CreateBuilderServiceAccount(ctx, c, p); err != nil {
-                       return errors.Wrap(err, "cannot ensure service account 
is present")
+                       return fmt.Errorf("cannot ensure service account is 
present: %w", err)
                }
        }
 
diff --git a/pkg/resources/resources_support.go 
b/pkg/resources/resources_support.go
index b8c17aac8..6ce80297b 100644
--- a/pkg/resources/resources_support.go
+++ b/pkg/resources/resources_support.go
@@ -19,6 +19,7 @@ package resources
 
 import (
        "bytes"
+       "fmt"
        "io"
        "net/http"
        "os"
@@ -28,14 +29,12 @@ import (
        "text/template"
 
        "github.com/apache/camel-k/v2/pkg/util"
-
-       "github.com/pkg/errors"
 )
 
-//
-//go:generate go run ../../cmd/util/vfs-gen resources config
 //
 // ResourceAsString returns the named resource content as string.
+//
+//go:generate go run ../../cmd/util/vfs-gen resources config
 func ResourceAsString(name string) (string, error) {
        data, err := Resource(name)
        return string(data), err
@@ -51,13 +50,13 @@ func Resource(name string) ([]byte, error) {
 
        file, err := openAsset(name)
        if err != nil {
-               return nil, errors.Wrapf(err, "cannot access resource file %s", 
name)
+               return nil, fmt.Errorf("cannot access resource file %s: %w", 
name, err)
        }
 
        data, err := io.ReadAll(file)
        if err != nil {
                _ = file.Close()
-               return nil, errors.Wrapf(err, "cannot access resource file %s", 
name)
+               return nil, fmt.Errorf("cannot access resource file %s: %w", 
name, err)
        }
 
        return data, file.Close()
@@ -124,7 +123,7 @@ func Resources(dirName string) ([]string, error) {
                        return nil, nil
                }
 
-               return nil, errors.Wrapf(err, "error while listing resource 
files %s", dirName)
+               return nil, fmt.Errorf("error while listing resource files %s: 
%w", dirName, err)
        }
 
        info, err := dir.Stat()
@@ -133,13 +132,13 @@ func Resources(dirName string) ([]string, error) {
        }
        if !info.IsDir() {
                util.CloseQuietly(dir)
-               return nil, errors.Wrapf(err, "location %s is not a directory", 
dirName)
+               return nil, fmt.Errorf("location %s is not a directory: %w", 
dirName, err)
        }
 
        files, err := dir.Readdir(-1)
        if err != nil {
                util.CloseQuietly(dir)
-               return nil, errors.Wrapf(err, "error while listing files on 
directory %s", dirName)
+               return nil, fmt.Errorf("error while listing files on directory 
%s: %w", dirName, err)
        }
 
        var res []string
diff --git a/pkg/trait/camel.go b/pkg/trait/camel.go
index 83ca30532..8974b7879 100644
--- a/pkg/trait/camel.go
+++ b/pkg/trait/camel.go
@@ -19,12 +19,11 @@ package trait
 
 import (
        "context"
+       "errors"
        "fmt"
        "strconv"
        "strings"
 
-       "github.com/pkg/errors"
-
        corev1 "k8s.io/api/core/v1"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -149,13 +148,14 @@ func (t *camelTrait) loadOrCreateCatalog(e *Environment, 
runtimeVersion string)
                                        catalog, err = camel.LoadCatalog(e.Ctx, 
e.Client, ns, runtime)
                                        if err != nil {
                                                // unexpected error
-                                               return errors.Wrapf(err, 
"catalog %q already exists but unable to load", catalogName)
+                                               return fmt.Errorf("catalog %q 
already exists but unable to load: %w", catalogName, err)
                                        }
                                } else {
-                                       return errors.Wrapf(err, "unable to 
create catalog runtime=%s, provider=%s, name=%s",
+                                       return fmt.Errorf("unable to create 
catalog runtime=%s, provider=%s, name=%s: %w",
                                                runtime.Version,
                                                runtime.Provider,
-                                               catalogName)
+                                               catalogName, err)
+
                                }
                        }
                }
diff --git a/pkg/trait/gc.go b/pkg/trait/gc.go
index fef7fdee4..3beeb88d9 100644
--- a/pkg/trait/gc.go
+++ b/pkg/trait/gc.go
@@ -19,12 +19,12 @@ package trait
 
 import (
        "context"
+       "fmt"
        "strconv"
        "strings"
        "sync"
        "time"
 
-       "github.com/pkg/errors"
        "golang.org/x/time/rate"
 
        authorization "k8s.io/api/authorization/v1"
@@ -101,13 +101,13 @@ func (t *gcTrait) Apply(e *Environment) error {
 func (t *gcTrait) garbageCollectResources(e *Environment) error {
        deletableGVKs, err := t.getDeletableTypes(e)
        if err != nil {
-               return errors.Wrap(err, "cannot discover GVK types")
+               return fmt.Errorf("cannot discover GVK types: %w", err)
        }
 
        integration, _ := labels.NewRequirement(v1.IntegrationLabel, 
selection.Equals, []string{e.Integration.Name})
        generation, err := labels.NewRequirement("camel.apache.org/generation", 
selection.LessThan, []string{strconv.FormatInt(e.Integration.GetGeneration(), 
10)})
        if err != nil {
-               return errors.Wrap(err, "cannot determine generation 
requirement")
+               return fmt.Errorf("cannot determine generation requirement: 
%w", err)
        }
        selector := labels.NewSelector().
                Add(*integration).
@@ -130,7 +130,7 @@ func (t *gcTrait) deleteEachOf(ctx context.Context, 
deletableGVKs map[schema.Gro
                }
                if err := t.Client.List(ctx, &resources, options...); err != 
nil {
                        if !k8serrors.IsNotFound(err) {
-                               return errors.Wrap(err, "cannot list child 
resources")
+                               return fmt.Errorf("cannot list child resources: 
%w", err)
                        }
                        continue
                }
diff --git a/pkg/trait/init.go b/pkg/trait/init.go
index 7d52210f8..d941af7c1 100644
--- a/pkg/trait/init.go
+++ b/pkg/trait/init.go
@@ -18,10 +18,9 @@ limitations under the License.
 package trait
 
 import (
+       "errors"
        "sort"
 
-       "github.com/pkg/errors"
-
        "k8s.io/utils/pointer"
 
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
diff --git a/pkg/trait/jvm.go b/pkg/trait/jvm.go
index cc78c1f1c..d7d50f7b3 100644
--- a/pkg/trait/jvm.go
+++ b/pkg/trait/jvm.go
@@ -24,7 +24,6 @@ import (
        "sort"
        "strings"
 
-       "github.com/pkg/errors"
        "github.com/scylladb/go-set/strset"
 
        infp "gopkg.in/inf.v0"
@@ -87,7 +86,7 @@ func (t *jvmTrait) Apply(e *Environment) error {
                ns := e.Integration.GetIntegrationKitNamespace(e.Platform)
                k := v1.NewIntegrationKit(ns, name)
                if err := t.Client.Get(e.Ctx, ctrl.ObjectKeyFromObject(k), k); 
err != nil {
-                       return errors.Wrapf(err, "unable to find integration 
kit %s/%s, %s", ns, name, err)
+                       return fmt.Errorf("unable to find integration kit 
%s/%s, %s: %w", ns, name, err, err)
                }
                kit = k
        }
diff --git a/pkg/trait/knative.go b/pkg/trait/knative.go
index 1579c0a1b..4a06f4430 100644
--- a/pkg/trait/knative.go
+++ b/pkg/trait/knative.go
@@ -24,8 +24,6 @@ import (
        "sort"
        "strings"
 
-       "github.com/pkg/errors"
-
        corev1 "k8s.io/api/core/v1"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/runtime"
@@ -217,7 +215,7 @@ func (t *knativeTrait) Apply(e *Environment) error {
 
                conf, err := env.Serialize()
                if err != nil {
-                       return errors.Wrap(err, "unable to fetch environment 
configuration")
+                       return fmt.Errorf("unable to fetch environment 
configuration: %w", err)
                }
 
                envvar.SetVal(&e.EnvVars, "CAMEL_KNATIVE_CONFIGURATION", conf)
@@ -556,16 +554,16 @@ func (t *knativeTrait) withServiceDo(
                } else {
                        actualRef, err = 
knativeutil.GetAddressableReference(e.Ctx, t.Client, possibleRefs, 
e.Integration.Namespace, ref.Name)
                        if err != nil && k8serrors.IsNotFound(err) {
-                               return errors.Errorf("cannot find %s", 
serviceType.ResourceDescription(ref.Name))
+                               return fmt.Errorf("cannot find %s", 
serviceType.ResourceDescription(ref.Name))
                        } else if err != nil {
-                               return errors.Wrapf(err, "error looking up %s", 
serviceType.ResourceDescription(ref.Name))
+                               return fmt.Errorf("error looking up %s: %w", 
serviceType.ResourceDescription(ref.Name), err)
                        }
                }
 
                urlProvider := func() (*url.URL, error) {
                        targetURL, err := knativeutil.GetSinkURL(e.Ctx, 
t.Client, actualRef, e.Integration.Namespace)
                        if err != nil {
-                               return nil, errors.Wrapf(err, "cannot determine 
address of %s", serviceType.ResourceDescription(ref.Name))
+                               return nil, fmt.Errorf("cannot determine 
address of %s: %w", serviceType.ResourceDescription(ref.Name), err)
                        }
                        t.L.Infof("Found URL for %s: %s", 
serviceType.ResourceDescription(ref.Name), targetURL.String())
                        return targetURL, nil
@@ -573,7 +571,7 @@ func (t *knativeTrait) withServiceDo(
 
                err = gen(actualRef, serviceURI, urlProvider)
                if err != nil {
-                       return errors.Wrapf(err, "unexpected error while 
executing handler for %s", serviceType.ResourceDescription(ref.Name))
+                       return fmt.Errorf("unexpected error while executing 
handler for %s: %w", serviceType.ResourceDescription(ref.Name), err)
                }
        }
        return nil
diff --git a/pkg/trait/openapi.go b/pkg/trait/openapi.go
index 558c77684..09a478066 100644
--- a/pkg/trait/openapi.go
+++ b/pkg/trait/openapi.go
@@ -19,14 +19,13 @@ package trait
 
 import (
        "context"
+       "errors"
        "fmt"
        "os"
        "path/filepath"
        "strconv"
        "strings"
 
-       "github.com/pkg/errors"
-
        corev1 "k8s.io/api/core/v1"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -132,7 +131,7 @@ func (t *openAPITrait) generateFromDataSpecs(e 
*Environment, tmpDir string, spec
                generatedSourceName := strings.TrimSuffix(resource.Name, 
filepath.Ext(resource.Name)) + ".xml"
                // Generate configmap or reuse existing one
                if err := t.generateOpenAPIConfigMap(e, resource, tmpDir, 
generatedContentName); err != nil {
-                       return nil, errors.Wrapf(err, "cannot generate 
configmap for openapi resource %s", resource.Name)
+                       return nil, fmt.Errorf("cannot generate configmap for 
openapi resource %s: %w", resource.Name, err)
                }
                if e.Integration.Status.GeneratedSources != nil {
                        // Filter out the previously generated source
diff --git a/pkg/trait/pull_secret.go b/pkg/trait/pull_secret.go
index be4f6e426..640d9a341 100644
--- a/pkg/trait/pull_secret.go
+++ b/pkg/trait/pull_secret.go
@@ -20,8 +20,6 @@ package trait
 import (
        "fmt"
 
-       "github.com/pkg/errors"
-
        corev1 "k8s.io/api/core/v1"
        rbacv1 "k8s.io/api/rbac/v1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -110,7 +108,7 @@ func (t *pullSecretTrait) delegateImagePuller(e 
*Environment) error {
        // (different from the integration namespace when delegation is 
enabled).
        rb := t.newImagePullerRoleBinding(e)
        if _, err := kubernetes.ReplaceResource(e.Ctx, e.Client, rb); err != 
nil {
-               return errors.Wrap(err, "error during the creation of the 
system:image-puller delegating role binding")
+               return fmt.Errorf("error during the creation of the 
system:image-puller delegating role binding: %w", err)
        }
        return nil
 }
diff --git a/pkg/trait/trait.go b/pkg/trait/trait.go
index 3c484d710..ec4a9ca3c 100644
--- a/pkg/trait/trait.go
+++ b/pkg/trait/trait.go
@@ -19,8 +19,8 @@ package trait
 
 import (
        "context"
-
-       "github.com/pkg/errors"
+       "errors"
+       "fmt"
 
        corev1 "k8s.io/api/core/v1"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
@@ -46,7 +46,7 @@ func Apply(ctx context.Context, c client.Client, integration 
*v1.Integration, ki
 
        environment, err := newEnvironment(ctx, c, integration, kit)
        if err != nil {
-               return nil, errors.Wrap(err, "error creating trait environment")
+               return nil, fmt.Errorf("error creating trait environment: %w", 
err)
        }
 
        catalog := NewCatalog(c)
@@ -56,14 +56,14 @@ func Apply(ctx context.Context, c client.Client, 
integration *v1.Integration, ki
 
        // invoke the trait framework to determine the needed resources
        if err := catalog.apply(environment); err != nil {
-               return nil, errors.Wrap(err, "error during trait customization")
+               return nil, fmt.Errorf("error during trait customization: %w", 
err)
        }
 
        // execute post actions registered by traits
        for _, postAction := range environment.PostActions {
                err := postAction(environment)
                if err != nil {
-                       return nil, errors.Wrap(err, "error executing post 
actions")
+                       return nil, fmt.Errorf("error executing post actions: 
%w", err)
                }
        }
 
diff --git a/pkg/trait/trait_catalog.go b/pkg/trait/trait_catalog.go
index ec36f8eea..0c9697337 100644
--- a/pkg/trait/trait_catalog.go
+++ b/pkg/trait/trait_catalog.go
@@ -18,12 +18,13 @@ limitations under the License.
 package trait
 
 import (
+       "errors"
+       "fmt"
        "reflect"
        "sort"
        "strings"
 
        "github.com/fatih/structs"
-       "github.com/pkg/errors"
 
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/client"
@@ -119,7 +120,7 @@ func (c *Catalog) apply(environment *Environment) error {
                        for _, processor := range 
environment.PostStepProcessors {
                                err := processor(environment)
                                if err != nil {
-                                       return errors.Wrap(err, "error 
executing post step action")
+                                       return fmt.Errorf("error executing post 
step action: %w", err)
                                }
                        }
                }
@@ -138,7 +139,7 @@ func (c *Catalog) apply(environment *Environment) error {
        for _, processor := range environment.PostProcessors {
                err := processor(environment)
                if err != nil {
-                       return errors.Wrap(err, "error executing post 
processor")
+                       return fmt.Errorf("error executing post processor: %w", 
err)
                }
        }
 
diff --git a/pkg/trait/trait_configure.go b/pkg/trait/trait_configure.go
index bc7b7284b..12091fb12 100644
--- a/pkg/trait/trait_configure.go
+++ b/pkg/trait/trait_configure.go
@@ -19,12 +19,12 @@ package trait
 
 import (
        "encoding/json"
+       "errors"
        "fmt"
        "reflect"
        "strings"
 
        "github.com/mitchellh/mapstructure"
-       "github.com/pkg/errors"
 
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/util"
@@ -170,7 +170,7 @@ func configureTrait(id string, config 
map[string]interface{}, trait interface{})
                        if v, ok := data.(string); ok && strings.HasPrefix(v, 
"[") && strings.HasSuffix(v, "]") {
                                var value interface{}
                                if err := json.Unmarshal([]byte(v), &value); 
err != nil {
-                                       return nil, errors.Wrap(err, "could not 
decode JSON array for configuring trait property")
+                                       return nil, fmt.Errorf("could not 
decode JSON array for configuring trait property: %w", err)
                                }
                                return value, nil
                        }
@@ -189,7 +189,7 @@ func configureTrait(id string, config 
map[string]interface{}, trait interface{})
                },
        )
        if err != nil {
-               return errors.Wrapf(err, "error while decoding trait 
configuration %q", id)
+               return fmt.Errorf("error while decoding trait configuration %q: 
%w", id, err)
        }
 
        return decoder.Decode(config)
diff --git a/pkg/trait/trait_types.go b/pkg/trait/trait_types.go
index bb318270a..8a58e2105 100644
--- a/pkg/trait/trait_types.go
+++ b/pkg/trait/trait_types.go
@@ -25,8 +25,6 @@ import (
        "sort"
        "strings"
 
-       "github.com/pkg/errors"
-
        appsv1 "k8s.io/api/apps/v1"
        batchv1 "k8s.io/api/batch/v1"
        corev1 "k8s.io/api/core/v1"
@@ -377,7 +375,7 @@ func (e *Environment) computeApplicationProperties() 
(*corev1.ConfigMap, error)
        // application properties
        applicationProperties, err := 
property.EncodePropertyFile(e.ApplicationProperties)
        if err != nil {
-               return nil, errors.Wrapf(err, "could not compute application 
properties")
+               return nil, fmt.Errorf("could not compute application 
properties: %w", err)
        }
 
        if applicationProperties != "" {
diff --git a/pkg/trait/util.go b/pkg/trait/util.go
index 444179d57..0de30bf82 100644
--- a/pkg/trait/util.go
+++ b/pkg/trait/util.go
@@ -20,13 +20,13 @@ package trait
 import (
        "context"
        "encoding/json"
+       "errors"
        "fmt"
        "reflect"
        "regexp"
        "sort"
        "strings"
 
-       "github.com/pkg/errors"
        "github.com/scylladb/go-set/strset"
 
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -312,7 +312,7 @@ func MigrateLegacyConfiguration(trait 
map[string]interface{}) error {
                }
                delete(trait, "configuration")
        } else {
-               return errors.Errorf(`unexpected type for "configuration" 
field: %v`, reflect.TypeOf(trait["configuration"]))
+               return fmt.Errorf(`unexpected type for "configuration" field: 
%v`, reflect.TypeOf(trait["configuration"]))
        }
 
        return nil
diff --git a/pkg/util/command.go b/pkg/util/command.go
index 37d3262de..d132194a2 100644
--- a/pkg/util/command.go
+++ b/pkg/util/command.go
@@ -24,7 +24,6 @@ import (
        "io"
        "os/exec"
 
-       "github.com/pkg/errors"
        "golang.org/x/sync/errgroup"
 )
 
@@ -49,7 +48,7 @@ func RunAndLog(ctx context.Context, cmd *exec.Cmd, stdOutF 
func(string) string,
                scanOutMsg = scan(stdOut, stdOutF)
                scanErrMsg = scan(stdErr, stdErrF)
 
-               return errors.Wrapf(err, formatErr(scanOutMsg, scanErrMsg))
+               return fmt.Errorf(formatErr(scanOutMsg, scanErrMsg)+": %w", err)
        }
        g, _ := errgroup.WithContext(ctx)
        g.Go(func() error {
@@ -61,10 +60,10 @@ func RunAndLog(ctx context.Context, cmd *exec.Cmd, stdOutF 
func(string) string,
                return nil
        })
        if err = g.Wait(); err != nil {
-               return errors.Wrapf(err, formatErr(scanOutMsg, scanErrMsg))
+               return fmt.Errorf(formatErr(scanOutMsg, scanErrMsg)+": %w", err)
        }
        if err = cmd.Wait(); err != nil {
-               return errors.Wrapf(err, formatErr(scanOutMsg, scanErrMsg))
+               return fmt.Errorf(formatErr(scanOutMsg, scanErrMsg)+": %w", err)
        }
 
        return nil
diff --git a/pkg/util/docker/docker.go b/pkg/util/docker/docker.go
index ef212a5a4..f4eb5e39c 100644
--- a/pkg/util/docker/docker.go
+++ b/pkg/util/docker/docker.go
@@ -18,13 +18,13 @@ limitations under the License.
 package docker
 
 import (
+       "errors"
        "os/exec"
        "path/filepath"
        "strings"
 
        "github.com/apache/camel-k/v2/pkg/util"
        "github.com/apache/camel-k/v2/pkg/util/defaults"
-       "github.com/pkg/errors"
 )
 
 // CreateBaseImageDockerFile --.
diff --git a/pkg/util/kubernetes/discovery.go b/pkg/util/kubernetes/discovery.go
index 38a0cadb1..2b0d47fad 100644
--- a/pkg/util/kubernetes/discovery.go
+++ b/pkg/util/kubernetes/discovery.go
@@ -18,14 +18,14 @@ limitations under the License.
 package kubernetes
 
 import (
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/client-go/kubernetes"
 )
 
 func IsAPIResourceInstalled(c kubernetes.Interface, groupVersion string, kind 
string) (bool, error) {
        resources, err := 
c.Discovery().ServerResourcesForGroupVersion(groupVersion)
        if err != nil {
-               if errors.IsNotFound(err) {
+               if k8serrors.IsNotFound(err) {
                        return false, nil
                }
                return false, err
diff --git a/pkg/util/kubernetes/log/pod_scraper.go 
b/pkg/util/kubernetes/log/pod_scraper.go
index 96b63495c..765b62df8 100644
--- a/pkg/util/kubernetes/log/pod_scraper.go
+++ b/pkg/util/kubernetes/log/pod_scraper.go
@@ -20,13 +20,14 @@ package log
 import (
        "bufio"
        "context"
+       "errors"
        "io"
        "time"
 
        "go.uber.org/multierr"
 
        klog "github.com/apache/camel-k/v2/pkg/util/log"
-       "github.com/pkg/errors"
+
        corev1 "k8s.io/api/core/v1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
diff --git a/pkg/util/kubernetes/replace.go b/pkg/util/kubernetes/replace.go
index 25a0868a2..2f0ee67bb 100644
--- a/pkg/util/kubernetes/replace.go
+++ b/pkg/util/kubernetes/replace.go
@@ -21,8 +21,6 @@ import (
        "context"
        "fmt"
 
-       "github.com/pkg/errors"
-
        corev1 "k8s.io/api/core/v1"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/apimachinery/pkg/runtime"
@@ -58,7 +56,7 @@ func ReplaceResource(ctx context.Context, c client.Client, 
res ctrl.Object) (boo
                err = c.Update(ctx, res)
        }
        if err != nil {
-               return replaced, errors.Wrap(err, "could not create or replace 
"+findResourceDetails(res))
+               return replaced, fmt.Errorf("could not create or replace 
"+findResourceDetails(res)+": %w", err)
        }
        return replaced, nil
 }
diff --git a/pkg/util/kubernetes/resolver.go b/pkg/util/kubernetes/resolver.go
index 3ca99dd28..a6d47be14 100644
--- a/pkg/util/kubernetes/resolver.go
+++ b/pkg/util/kubernetes/resolver.go
@@ -23,7 +23,7 @@ import (
 
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/util/gzip"
-       "github.com/pkg/errors"
+
        corev1 "k8s.io/api/core/v1"
        controller "sigs.k8s.io/controller-runtime/pkg/client"
 )
@@ -85,7 +85,7 @@ func Resolve(data *v1.DataSpec, mapLookup func(string) 
(*corev1.ConfigMap, error
                var uncompressed []byte
                var err error
                if uncompressed, err = gzip.UncompressBase64(cnt); err != nil {
-                       return errors.Wrap(err, "error while uncompressing 
data")
+                       return fmt.Errorf("error while uncompressing data: %w", 
err)
                }
                data.Compression = false
                data.Content = string(uncompressed)
diff --git a/pkg/util/maven/maven_command.go b/pkg/util/maven/maven_command.go
index da2473b31..49b49d6db 100644
--- a/pkg/util/maven/maven_command.go
+++ b/pkg/util/maven/maven_command.go
@@ -19,6 +19,7 @@ package maven
 
 import (
        "context"
+       "errors"
        "fmt"
        "io"
        "os"
@@ -29,8 +30,6 @@ import (
        "strconv"
        "strings"
 
-       "github.com/pkg/errors"
-
        "github.com/apache/camel-k/v2/pkg/util"
        "github.com/apache/camel-k/v2/pkg/util/log"
 )
diff --git a/pkg/util/olm/operator.go b/pkg/util/olm/operator.go
index a58c73f6d..4b3d9102d 100644
--- a/pkg/util/olm/operator.go
+++ b/pkg/util/olm/operator.go
@@ -22,8 +22,6 @@ import (
        "fmt"
        "strings"
 
-       "github.com/pkg/errors"
-
        v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        "k8s.io/kubectl/pkg/cmd/set/env"
 
@@ -182,19 +180,19 @@ func Install(ctx context.Context, client client.Client, 
namespace string, global
        // Additional configuration
        err = maybeSetTolerations(&sub, tolerations)
        if err != nil {
-               return false, errors.Wrap(err, "could not set tolerations")
+               return false, fmt.Errorf("could not set tolerations: %w", err)
        }
        err = maybeSetNodeSelectors(&sub, nodeSelectors)
        if err != nil {
-               return false, errors.Wrap(err, "could not set node selectors")
+               return false, fmt.Errorf("could not set node selectors: %w", 
err)
        }
        err = maybeSetResourcesRequirements(&sub, resourcesRequirements)
        if err != nil {
-               return false, errors.Wrap(err, "could not set resources 
requirements")
+               return false, fmt.Errorf("could not set resources requirements: 
%w", err)
        }
        err = maybeSetEnvVars(&sub, envVars)
        if err != nil {
-               return false, errors.Wrap(err, "could not set environment 
variables")
+               return false, fmt.Errorf("could not set environment variables: 
%w", err)
        }
 
        if collection != nil {
@@ -221,9 +219,10 @@ func Install(ctx context.Context, client client.Client, 
namespace string, global
                        if collection != nil {
                                collection.Add(group)
                        } else if err := client.Create(ctx, group); err != nil {
-                               return false, errors.Wrap(err, 
fmt.Sprintf("namespace %s has no operator group defined and "+
+                               return false, fmt.Errorf("namespace %s has no 
operator group defined and "+
                                        "current user is not able to create it. 
"+
-                                       "Make sure you have the right roles to 
install operators from OLM", namespace))
+                                       "Make sure you have the right roles to 
install operators from OLM"+": %w", namespace, err)
+
                        }
                }
        }
diff --git a/pkg/util/openshift/openshift.go b/pkg/util/openshift/openshift.go
index 66da20603..da3f78f6f 100644
--- a/pkg/util/openshift/openshift.go
+++ b/pkg/util/openshift/openshift.go
@@ -18,14 +18,14 @@ limitations under the License.
 package openshift
 
 import (
-       "k8s.io/apimachinery/pkg/api/errors"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        "k8s.io/client-go/kubernetes"
 )
 
 // IsOpenShift returns true if we are connected to a OpenShift cluster.
 func IsOpenShift(client kubernetes.Interface) (bool, error) {
        _, err := 
client.Discovery().ServerResourcesForGroupVersion("image.openshift.io/v1")
-       if err != nil && errors.IsNotFound(err) {
+       if err != nil && k8serrors.IsNotFound(err) {
                return false, nil
        } else if err != nil {
                return false, err
diff --git a/pkg/util/property/property.go b/pkg/util/property/property.go
index 87fcc1abf..a41fd0c76 100644
--- a/pkg/util/property/property.go
+++ b/pkg/util/property/property.go
@@ -19,10 +19,10 @@ package property
 
 import (
        "bytes"
+       "fmt"
        "strings"
 
        "github.com/magiconair/properties"
-       "github.com/pkg/errors"
 )
 
 // EncodePropertyFileEntry converts the given key/value pair into a 
.properties file entry.
@@ -48,7 +48,7 @@ func EncodePropertyFile(sourceProperties map[string]string) 
(string, error) {
        buf := new(bytes.Buffer)
        _, err := props.Write(buf, properties.UTF8)
        if err != nil {
-               return "", errors.Wrapf(err, "could not compute application 
properties")
+               return "", fmt.Errorf("could not compute application 
properties: %w", err)
        }
        return buf.String(), nil
 }
diff --git a/pkg/util/reference/reference.go b/pkg/util/reference/reference.go
index d3f506f1e..39b5e87fc 100644
--- a/pkg/util/reference/reference.go
+++ b/pkg/util/reference/reference.go
@@ -18,6 +18,7 @@ limitations under the License.
 package reference
 
 import (
+       "errors"
        "fmt"
        "net/url"
        "regexp"
@@ -25,7 +26,7 @@ import (
        "unicode"
 
        v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
-       "github.com/pkg/errors"
+
        corev1 "k8s.io/api/core/v1"
        eventingv1 "knative.dev/eventing/pkg/apis/eventing/v1"
        messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
@@ -105,11 +106,11 @@ func (c *Converter) PropertiesFromString(str string) 
(map[string]string, error)
                        }
                        k, errkey := url.QueryUnescape(kv[0])
                        if errkey != nil {
-                               return nil, errors.Wrapf(errkey, "cannot 
unescape key %q", kv[0])
+                               return nil, fmt.Errorf("cannot unescape key %q: 
%w", kv[0], errkey)
                        }
                        v, errval := url.QueryUnescape(kv[1])
                        if errval != nil {
-                               return nil, errors.Wrapf(errval, "cannot 
unescape value %q", kv[1])
+                               return nil, fmt.Errorf("cannot unescape value 
%q: %w", kv[1], errval)
                        }
                        res[k] = v
                }
diff --git a/pkg/util/util.go b/pkg/util/util.go
index 28de402f3..e0bede95f 100644
--- a/pkg/util/util.go
+++ b/pkg/util/util.go
@@ -21,6 +21,7 @@ import (
        "bytes"
        "encoding/json"
        "encoding/xml"
+       "errors"
        "fmt"
        "io"
        "io/fs"
@@ -38,7 +39,6 @@ import (
 
        yaml2 "gopkg.in/yaml.v2"
 
-       "github.com/pkg/errors"
        "github.com/scylladb/go-set/strset"
 )
 
@@ -490,7 +490,7 @@ func MapToYAML(src map[string]interface{}) ([]byte, error) {
 func WriteToFile(filePath string, fileContents string) error {
        err := os.WriteFile(filePath, []byte(fileContents), 0o400)
        if err != nil {
-               return errors.Errorf("error writing file: %v", filePath)
+               return fmt.Errorf("error writing file: %v", filePath)
        }
 
        return nil
@@ -499,11 +499,11 @@ func WriteToFile(filePath string, fileContents string) 
error {
 func GetEnvironmentVariable(variable string) (string, error) {
        value, isPresent := os.LookupEnv(variable)
        if !isPresent {
-               return "", errors.Errorf("environment variable %v does not 
exist", variable)
+               return "", fmt.Errorf("environment variable %v does not exist", 
variable)
        }
 
        if value == "" {
-               return "", errors.Errorf("environment variable %v is not set", 
variable)
+               return "", fmt.Errorf("environment variable %v is not set", 
variable)
        }
 
        return value, nil
@@ -615,18 +615,18 @@ func WriteFileWithContent(filePath string, content 
[]byte) error {
        // Create dir if not present
        err := os.MkdirAll(fileDir, 0o700)
        if err != nil {
-               return errors.Wrap(err, "could not create dir for file 
"+filePath)
+               return fmt.Errorf("could not create dir for file "+filePath+": 
%w", err)
        }
 
        // Create file
        file, err := os.Create(filePath)
        if err != nil {
-               return errors.Wrap(err, "could not create file "+filePath)
+               return fmt.Errorf("could not create file "+filePath+": %w", err)
        }
 
        _, err = file.Write(content)
        if err != nil {
-               err = errors.Wrap(err, "could not write to file "+filePath)
+               err = fmt.Errorf("could not write to file "+filePath+": %w", 
err)
        }
 
        return Close(err, file)
@@ -713,7 +713,7 @@ func NavigateConfigTree(current interface{}, nodes 
[]string) (interface{}, error
                }
                pos, err := strconv.Atoi(nodes[0][1 : len(nodes[0])-1])
                if err != nil {
-                       return nil, errors.Wrapf(err, "value %q inside brackets 
is not numeric", nodes[0])
+                       return nil, fmt.Errorf("value %q inside brackets is not 
numeric: %w", nodes[0], err)
                }
                var next interface{}
                if len(*c) > pos && (*c)[pos] != nil {

Reply via email to