diff --git a/.golangci.yaml b/.golangci.yaml index 798b1e394b..99f51500e5 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -9,7 +9,9 @@ run: linters: disable-all: true enable: + - depguard - errcheck + - errorlint - bodyclose - exportloopref - gosimple @@ -27,8 +29,16 @@ linters: - whitespace - gci -linter-settings: +linters-settings: + depguard: + rules: + # Name of a rule. + main: + deny: + - pkg: "github.com/pkg/errors" + desc: "Use 'errors' or 'fmt' instead of github.com/pkg/errors" gci: - - standard - - default - - prefix(github.com/openshift/cluster-monitoring-operator) + sections: + - standard + - default + - prefix(github.com/openshift/cluster-monitoring-operator) diff --git a/cmd/operator/main.go b/cmd/operator/main.go index e670fa8b88..fd4a8c5d08 100644 --- a/cmd/operator/main.go +++ b/cmd/operator/main.go @@ -25,13 +25,14 @@ import ( "strings" "syscall" - "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - "github.com/openshift/cluster-monitoring-operator/pkg/metrics" - cmo "github.com/openshift/cluster-monitoring-operator/pkg/operator" "golang.org/x/sync/errgroup" "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/client-go/tools/clientcmd" "k8s.io/klog/v2" + + "github.com/openshift/cluster-monitoring-operator/pkg/manifests" + "github.com/openshift/cluster-monitoring-operator/pkg/metrics" + cmo "github.com/openshift/cluster-monitoring-operator/pkg/operator" ) type images map[string]string diff --git a/go.mod b/go.mod index 9917c13353..146342bff6 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,6 @@ require ( github.com/openshift/api v0.0.0-20231109185848-6cd72e415ddb github.com/openshift/client-go v0.0.0-20230926161409-848405da69e1 github.com/openshift/library-go v0.0.0-20231128230659-785a9313da6c - github.com/pkg/errors v0.9.1 github.com/prometheus-operator/prometheus-operator v0.70.0 github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.70.0 github.com/prometheus-operator/prometheus-operator/pkg/client v0.70.0 @@ -107,6 +106,7 @@ require ( github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect + github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus-community/prom-label-proxy v0.7.0 // indirect github.com/prometheus/alertmanager v0.26.0 // indirect diff --git a/pkg/alert/relabel_controller.go b/pkg/alert/relabel_controller.go index 27a43ed258..000f4d7869 100644 --- a/pkg/alert/relabel_controller.go +++ b/pkg/alert/relabel_controller.go @@ -21,8 +21,6 @@ import ( "strings" osmv1 "github.com/openshift/api/monitoring/v1" - "github.com/openshift/cluster-monitoring-operator/pkg/client" - "github.com/prometheus/common/model" "github.com/prometheus/prometheus/model/relabel" "gopkg.in/yaml.v3" @@ -32,6 +30,8 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" "k8s.io/klog/v2" + + "github.com/openshift/cluster-monitoring-operator/pkg/client" ) const ( diff --git a/pkg/alert/rule_controller.go b/pkg/alert/rule_controller.go index 915ec501c7..2436b45979 100644 --- a/pkg/alert/rule_controller.go +++ b/pkg/alert/rule_controller.go @@ -22,8 +22,6 @@ import ( "time" osmv1 "github.com/openshift/api/monitoring/v1" - "github.com/openshift/cluster-monitoring-operator/pkg/client" - monv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -33,6 +31,8 @@ import ( "k8s.io/client-go/util/workqueue" "k8s.io/klog/v2" "k8s.io/utils/ptr" + + "github.com/openshift/cluster-monitoring-operator/pkg/client" ) const ( diff --git a/pkg/client/client.go b/pkg/client/client.go index 9877e3fdc8..9ef76bfe71 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -38,7 +38,6 @@ import ( openshiftsecurityclientset "github.com/openshift/client-go/security/clientset/versioned" "github.com/openshift/library-go/pkg/operator/events" "github.com/openshift/library-go/pkg/operator/resource/resourceapply" - monv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" monitoring "github.com/prometheus-operator/prometheus-operator/pkg/client/versioned" "golang.org/x/exp/slices" @@ -1102,8 +1101,8 @@ func (c *Client) CreateOrUpdateDeployment(ctx context.Context, dep *appsv1.Deplo err = c.UpdateDeployment(ctx, required) if err != nil { - uErr, ok := err.(*apierrors.StatusError) - if ok && uErr.ErrStatus.Code == 422 && uErr.ErrStatus.Reason == metav1.StatusReasonInvalid { + var statusErr *apierrors.StatusError + if errors.As(err, &statusErr) && statusErr.ErrStatus.Code == 422 && statusErr.ErrStatus.Reason == metav1.StatusReasonInvalid { // try to delete Deployment err = c.DeleteDeployment(ctx, existing) if err != nil { @@ -1379,8 +1378,8 @@ func (c *Client) CreateOrUpdateDaemonSet(ctx context.Context, ds *appsv1.DaemonS err = c.UpdateDaemonSet(ctx, required) if err != nil { - uErr, ok := err.(*apierrors.StatusError) - if ok && uErr.ErrStatus.Code == 422 && uErr.ErrStatus.Reason == metav1.StatusReasonInvalid { + var statusErr *apierrors.StatusError + if errors.As(err, &statusErr) && statusErr.ErrStatus.Code == 422 && statusErr.ErrStatus.Reason == metav1.StatusReasonInvalid { // try to delete DaemonSet err = c.DeleteDaemonSet(ctx, existing) if err != nil { @@ -1441,7 +1440,7 @@ func (c *Client) WaitForDaemonSetRollout(ctx context.Context, ds *appsv1.DaemonS maxUnavailable, intstrErr := intstr.GetScaledValueFromIntOrPercent(&maxUnavailableIntStr, int(want), true) if intstrErr != nil { - lastErr = fmt.Errorf("The daemonset has an invalid MaxUnavailable value: %v", intstrErr) + lastErr = fmt.Errorf("The daemonset has an invalid MaxUnavailable value: %w", intstrErr) return false, nil } @@ -1491,7 +1490,10 @@ func (c *Client) CreateOrUpdateSecret(ctx context.Context, s *v1.Secret) error { } } _, err = sClient.Update(ctx, required, metav1.UpdateOptions{}) - return fmt.Errorf("updating Secret object failed: %w", err) + if err != nil { + return fmt.Errorf("updating Secret object failed: %w", err) + } + return nil } // maybeHasServiceCAData checks if the passed Secret s has at least one owner reference that @@ -1523,7 +1525,10 @@ func (c *Client) CreateIfNotExistSecret(ctx context.Context, s *v1.Secret) error } return nil } - return fmt.Errorf("retrieving Secret object failed: %w", err) + if err != nil { + return fmt.Errorf("retrieving Secret object failed: %w", err) + } + return nil } func (c *Client) CreateOrUpdateConfigMapList(ctx context.Context, cml *v1.ConfigMapList) error { diff --git a/pkg/client/client_test.go b/pkg/client/client_test.go index 327ef2a4fc..3a0a5051ed 100644 --- a/pkg/client/client_test.go +++ b/pkg/client/client_test.go @@ -19,9 +19,14 @@ import ( "reflect" "testing" + routev1 "github.com/openshift/api/route/v1" secv1 "github.com/openshift/api/security/v1" + osrfake "github.com/openshift/client-go/route/clientset/versioned/fake" + ossfake "github.com/openshift/client-go/security/clientset/versioned/fake" "github.com/openshift/library-go/pkg/operator/events" "github.com/openshift/library-go/pkg/operator/resource/resourceapply" + monv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" + monfake "github.com/prometheus-operator/prometheus-operator/pkg/client/versioned/fake" admissionv1 "k8s.io/api/admissionregistration/v1" appsv1 "k8s.io/api/apps/v1" v1 "k8s.io/api/core/v1" @@ -29,17 +34,9 @@ import ( "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" - "k8s.io/utils/ptr" - - routev1 "github.com/openshift/api/route/v1" - - monv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/client-go/kubernetes/fake" - - osrfake "github.com/openshift/client-go/route/clientset/versioned/fake" - ossfake "github.com/openshift/client-go/security/clientset/versioned/fake" - monfake "github.com/prometheus-operator/prometheus-operator/pkg/client/versioned/fake" + "k8s.io/utils/ptr" ) const ( diff --git a/pkg/client/status_reporter.go b/pkg/client/status_reporter.go index df686ef36b..971aeabe21 100644 --- a/pkg/client/status_reporter.go +++ b/pkg/client/status_reporter.go @@ -20,10 +20,11 @@ import ( v1 "github.com/openshift/api/config/v1" clientv1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1" - cmostr "github.com/openshift/cluster-monitoring-operator/pkg/strings" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/klog/v2" + + cmostr "github.com/openshift/cluster-monitoring-operator/pkg/strings" ) const ( diff --git a/pkg/client/status_reporter_test.go b/pkg/client/status_reporter_test.go index 31dcfd17c1..a52ba25743 100644 --- a/pkg/client/status_reporter_test.go +++ b/pkg/client/status_reporter_test.go @@ -21,11 +21,10 @@ import ( "sort" "testing" - apierrors "k8s.io/apimachinery/pkg/api/errors" - v1 "github.com/openshift/api/config/v1" configv1 "github.com/openshift/client-go/config/applyconfigurations/config/v1" clientv1 "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/watch" diff --git a/pkg/manifests/apiserver_config_test.go b/pkg/manifests/apiserver_config_test.go index 17c671fe55..5121c49060 100644 --- a/pkg/manifests/apiserver_config_test.go +++ b/pkg/manifests/apiserver_config_test.go @@ -20,6 +20,7 @@ import ( "testing" configv1 "github.com/openshift/api/config/v1" + "github.com/openshift/cluster-monitoring-operator/pkg/manifests" ) diff --git a/pkg/manifests/config.go b/pkg/manifests/config.go index 0aee1c30e1..23375a7c32 100644 --- a/pkg/manifests/config.go +++ b/pkg/manifests/config.go @@ -24,14 +24,14 @@ import ( "strings" configv1 "github.com/openshift/api/config/v1" - "github.com/openshift/cluster-monitoring-operator/pkg/metrics" - poperator "github.com/prometheus-operator/prometheus-operator/pkg/operator" "golang.org/x/exp/slices" v1 "k8s.io/api/core/v1" k8syaml "k8s.io/apimachinery/pkg/util/yaml" auditv1 "k8s.io/apiserver/pkg/apis/audit/v1" "k8s.io/klog/v2" + + "github.com/openshift/cluster-monitoring-operator/pkg/metrics" ) const ( @@ -348,7 +348,7 @@ func (c *Config) LoadClusterID(load func() (*configv1.ClusterVersion, error)) er cv, err := load() if err != nil { - return fmt.Errorf("error loading cluster version: %v", err) + return fmt.Errorf("error loading cluster version: %w", err) } c.ClusterMonitoringConfiguration.TelemeterClientConfig.ClusterID = string(cv.Spec.ClusterID) @@ -362,7 +362,7 @@ func (c *Config) LoadToken(load func() (*v1.Secret, error)) error { secret, err := load() if err != nil { - return fmt.Errorf("error loading secret: %v", err) + return fmt.Errorf("error loading secret: %w", err) } if secret.Type != v1.SecretTypeDockerConfigJson { @@ -378,7 +378,7 @@ func (c *Config) LoadToken(load func() (*v1.Secret, error)) error { }{} if err := json.Unmarshal(secret.Data[v1.DockerConfigJsonKey], &ps); err != nil { - return fmt.Errorf("unmarshaling pull secret failed: %v", err) + return fmt.Errorf("unmarshaling pull secret failed: %w", err) } c.ClusterMonitoringConfiguration.TelemeterClientConfig.Token = ps.Auths.COC.Auth @@ -413,7 +413,7 @@ func (c *Config) LoadEnforcedBodySizeLimit(pcr PodCapacityReader, ctx context.Co if c.ClusterMonitoringConfiguration.PrometheusK8sConfig.EnforcedBodySizeLimit == automaticBodySizeLimit { podCapacity, err := pcr.PodCapacity(ctx) if err != nil { - return fmt.Errorf("error fetching pod capacity: %v", err) + return fmt.Errorf("error fetching pod capacity: %w", err) } c.ClusterMonitoringConfiguration.PrometheusK8sConfig.EnforcedBodySizeLimit = calculateBodySizeLimit(podCapacity) return nil @@ -424,7 +424,7 @@ func (c *Config) LoadEnforcedBodySizeLimit(pcr PodCapacityReader, ctx context.Co func (c *Config) Precheck() error { if c.ClusterMonitoringConfiguration.PrometheusK8sConfig.CollectionProfile != FullCollectionProfile && !c.TechPreview { - return errors.Wrap(ErrConfigValidation, "collectionProfiles is a TechPreview feature, to be able to use a profile different from the default (\"full\") please enable TechPreview") + return fmt.Errorf("collectionProfiles is a TechPreview feature, to be able to use a profile different from the default (\"full\") please enable TechPreview: %w", ErrConfigValidation) } // Validate the configured collection profile iff tech preview is enabled, even if the default profile is set. @@ -437,7 +437,7 @@ func (c *Config) Precheck() error { metrics.CollectionProfile.WithLabelValues(string(profile)).Set(v) } if !slices.Contains(SupportedCollectionProfiles, c.ClusterMonitoringConfiguration.PrometheusK8sConfig.CollectionProfile) { - return errors.Wrap(ErrConfigValidation, fmt.Sprintf(`%q is not supported, supported collection profiles are: %q`, c.ClusterMonitoringConfiguration.PrometheusK8sConfig.CollectionProfile, SupportedCollectionProfiles.String())) + return fmt.Errorf(`%q is not supported, supported collection profiles are: %q: %w`, c.ClusterMonitoringConfiguration.PrometheusK8sConfig.CollectionProfile, SupportedCollectionProfiles.String(), ErrConfigValidation) } } diff --git a/pkg/manifests/manifests.go b/pkg/manifests/manifests.go index ba788b1aa3..bfff331577 100644 --- a/pkg/manifests/manifests.go +++ b/pkg/manifests/manifests.go @@ -34,9 +34,7 @@ import ( consolev1 "github.com/openshift/api/console/v1" routev1 "github.com/openshift/api/route/v1" securityv1 "github.com/openshift/api/security/v1" - "github.com/openshift/cluster-monitoring-operator/pkg/promqlgen" "github.com/openshift/library-go/pkg/crypto" - monv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" "golang.org/x/exp/slices" yaml2 "gopkg.in/yaml.v2" @@ -51,6 +49,8 @@ import ( apiregistrationv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1" "k8s.io/utils/ptr" k8syaml "sigs.k8s.io/yaml" + + "github.com/openshift/cluster-monitoring-operator/pkg/promqlgen" ) const ( @@ -951,7 +951,7 @@ func (f *Factory) updateNodeExporterArgs(args []string) ([]string, error) { pattern, err := regexListToArg(f.config.ClusterMonitoringConfiguration.NodeExporterConfig.Collectors.Systemd.Units) if err != nil { - return nil, fmt.Errorf("systemd unit pattern valiation error: %s", err) + return nil, fmt.Errorf("systemd unit pattern valiation error: %w", err) } args = setArg(args, "--collector.systemd.unit-include=", pattern) } else { @@ -2585,11 +2585,9 @@ func (f *Factory) ControlPlaneKubeletMinimalServiceMonitor() (*monv1.ServiceMoni } func IsMissingPortInAddressError(err error) bool { - switch e := err.(type) { - case *net.AddrError: - if e.Err == "missing port in address" { - return true - } + var addrErr *net.AddrError + if errors.As(err, &addrErr) { + return addrErr.Err == "missing port in address" } return false } @@ -3194,7 +3192,7 @@ func (f *Factory) TelemeterClientSecret() (*v1.Secret, error) { salt, err := GeneratePassword(32) if err != nil { - return nil, fmt.Errorf("failed to generate Telemeter client salt: %v", err) + return nil, fmt.Errorf("failed to generate Telemeter client salt: %w", err) } s.Data["salt"] = []byte(salt) diff --git a/pkg/manifests/manifests_test.go b/pkg/manifests/manifests_test.go index d7d29e5e47..ba40b6f286 100644 --- a/pkg/manifests/manifests_test.go +++ b/pkg/manifests/manifests_test.go @@ -26,11 +26,9 @@ import ( "testing" "time" + configv1 "github.com/openshift/api/config/v1" "github.com/openshift/library-go/pkg/crypto" - monv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" - - configv1 "github.com/openshift/api/config/v1" v1 "k8s.io/api/core/v1" policyv1 "k8s.io/api/policy/v1" "k8s.io/apimachinery/pkg/api/resource" diff --git a/pkg/manifests/tls.go b/pkg/manifests/tls.go index 57b54e1502..7ecab853c3 100644 --- a/pkg/manifests/tls.go +++ b/pkg/manifests/tls.go @@ -23,7 +23,6 @@ import ( "time" "github.com/openshift/library-go/pkg/crypto" - v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/authentication/user" @@ -239,11 +238,11 @@ func RotateGRPCSecret(s *v1.Secret) error { func createCertificate(template, parent *x509.Certificate, pub, priv interface{}) (*x509.Certificate, error) { rawCert, err := x509.CreateCertificate(rand.Reader, template, parent, pub, priv) if err != nil { - return nil, fmt.Errorf("error creating certificate: %v", err) + return nil, fmt.Errorf("error creating certificate: %w", err) } parsedCerts, err := x509.ParseCertificates(rawCert) if err != nil { - return nil, fmt.Errorf("error parsing certificate: %v", err) + return nil, fmt.Errorf("error parsing certificate: %w", err) } return parsedCerts[0], nil } diff --git a/pkg/operator/operator.go b/pkg/operator/operator.go index dc5344832c..6a86902e19 100644 --- a/pkg/operator/operator.go +++ b/pkg/operator/operator.go @@ -26,15 +26,9 @@ import ( configv1 "github.com/openshift/api/config/v1" configv1client "github.com/openshift/client-go/config/clientset/versioned" configv1informers "github.com/openshift/client-go/config/informers/externalversions" - "github.com/openshift/cluster-monitoring-operator/pkg/alert" - "github.com/openshift/cluster-monitoring-operator/pkg/client" - "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - "github.com/openshift/cluster-monitoring-operator/pkg/metrics" - "github.com/openshift/cluster-monitoring-operator/pkg/tasks" "github.com/openshift/library-go/pkg/operator/configobserver/featuregates" "github.com/openshift/library-go/pkg/operator/csr" "github.com/openshift/library-go/pkg/operator/events" - certapiv1 "k8s.io/api/certificates/v1" v1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" @@ -48,6 +42,12 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" "k8s.io/klog/v2" + + "github.com/openshift/cluster-monitoring-operator/pkg/alert" + "github.com/openshift/cluster-monitoring-operator/pkg/client" + "github.com/openshift/cluster-monitoring-operator/pkg/manifests" + "github.com/openshift/cluster-monitoring-operator/pkg/metrics" + "github.com/openshift/cluster-monitoring-operator/pkg/tasks" ) // InfrastructureConfig stores information about the cluster infrastructure diff --git a/pkg/operator/operator_test.go b/pkg/operator/operator_test.go index 79f811a579..2bb994ca96 100644 --- a/pkg/operator/operator_test.go +++ b/pkg/operator/operator_test.go @@ -21,12 +21,12 @@ import ( "testing" configv1 "github.com/openshift/api/config/v1" + "github.com/stretchr/testify/require" + apiutilerrors "k8s.io/apimachinery/pkg/util/errors" + "github.com/openshift/cluster-monitoring-operator/pkg/client" "github.com/openshift/cluster-monitoring-operator/pkg/manifests" "github.com/openshift/cluster-monitoring-operator/pkg/tasks" - - "github.com/stretchr/testify/require" - apiutilerrors "k8s.io/apimachinery/pkg/util/errors" ) func TestNewInfrastructureConfig(t *testing.T) { diff --git a/pkg/tasks/alertmanager.go b/pkg/tasks/alertmanager.go index 668140a84d..8dbe0fcf01 100644 --- a/pkg/tasks/alertmanager.go +++ b/pkg/tasks/alertmanager.go @@ -18,10 +18,10 @@ import ( "context" "fmt" + "k8s.io/apimachinery/pkg/types" + "github.com/openshift/cluster-monitoring-operator/pkg/client" "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - - "k8s.io/apimachinery/pkg/types" ) type AlertmanagerTask struct { diff --git a/pkg/tasks/alertmanager_user_workload.go b/pkg/tasks/alertmanager_user_workload.go index 94d8fdada5..bc3df373a4 100644 --- a/pkg/tasks/alertmanager_user_workload.go +++ b/pkg/tasks/alertmanager_user_workload.go @@ -18,10 +18,10 @@ import ( "context" "fmt" + "k8s.io/apimachinery/pkg/types" + "github.com/openshift/cluster-monitoring-operator/pkg/client" "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - - "k8s.io/apimachinery/pkg/types" ) type AlertmanagerUserWorkloadTask struct { diff --git a/pkg/tasks/clustermonitoringoperator.go b/pkg/tasks/clustermonitoringoperator.go index b71cd5eb11..e52eb76697 100644 --- a/pkg/tasks/clustermonitoringoperator.go +++ b/pkg/tasks/clustermonitoringoperator.go @@ -18,12 +18,12 @@ import ( "context" "fmt" - "github.com/openshift/cluster-monitoring-operator/pkg/client" - "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - rbacv1 "k8s.io/api/rbac/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/klog/v2" + + "github.com/openshift/cluster-monitoring-operator/pkg/client" + "github.com/openshift/cluster-monitoring-operator/pkg/manifests" ) type ClusterMonitoringOperatorTask struct { diff --git a/pkg/tasks/configsharing.go b/pkg/tasks/configsharing.go index 7da88ebe8d..d91e5ca780 100644 --- a/pkg/tasks/configsharing.go +++ b/pkg/tasks/configsharing.go @@ -20,10 +20,10 @@ import ( "fmt" "net/url" + v1 "k8s.io/api/core/v1" + "github.com/openshift/cluster-monitoring-operator/pkg/client" "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - - v1 "k8s.io/api/core/v1" ) type ConfigSharingTask struct { diff --git a/pkg/tasks/helpers.go b/pkg/tasks/helpers.go index b807caa2ff..00766ced9c 100644 --- a/pkg/tasks/helpers.go +++ b/pkg/tasks/helpers.go @@ -20,11 +20,11 @@ import ( "fmt" "time" - "github.com/openshift/cluster-monitoring-operator/pkg/client" - "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/wait" + + "github.com/openshift/cluster-monitoring-operator/pkg/client" + "github.com/openshift/cluster-monitoring-operator/pkg/manifests" ) type caBundleSyncer struct { @@ -66,7 +66,7 @@ func (cbs *caBundleSyncer) syncTrustedCABundle(ctx context.Context, trustedCA *v }) if err != nil { if ctx.Err() != nil && lastErr != nil { - err = fmt.Errorf("%v: %v", err, lastErr) + err = fmt.Errorf("%w: %w", err, lastErr) } return nil, fmt.Errorf("waiting for config map key %q in %s/%s ConfigMap object failed: %w", manifests.TrustedCABundleKey, trustedCA.GetNamespace(), trustedCA.GetName(), err) } diff --git a/pkg/tasks/metrics_client_ca.go b/pkg/tasks/metrics_client_ca.go index 4b3b3a45d4..a39c4f1a02 100644 --- a/pkg/tasks/metrics_client_ca.go +++ b/pkg/tasks/metrics_client_ca.go @@ -4,10 +4,10 @@ import ( "context" "fmt" + v1 "k8s.io/api/core/v1" + "github.com/openshift/cluster-monitoring-operator/pkg/client" "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - - v1 "k8s.io/api/core/v1" ) type MetricsClientCATask struct { diff --git a/pkg/tasks/metricsserver.go b/pkg/tasks/metricsserver.go index 475826dc36..69cbb80509 100644 --- a/pkg/tasks/metricsserver.go +++ b/pkg/tasks/metricsserver.go @@ -4,11 +4,11 @@ import ( "context" "fmt" - "github.com/openshift/cluster-monitoring-operator/pkg/client" - "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - appsv1 "k8s.io/api/apps/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/openshift/cluster-monitoring-operator/pkg/client" + "github.com/openshift/cluster-monitoring-operator/pkg/manifests" ) type MetricsServerTask struct { diff --git a/pkg/tasks/monitoring_plugin.go b/pkg/tasks/monitoring_plugin.go index a36dd20bdf..acbf0e2f56 100644 --- a/pkg/tasks/monitoring_plugin.go +++ b/pkg/tasks/monitoring_plugin.go @@ -18,10 +18,10 @@ import ( "context" "fmt" + "k8s.io/klog/v2" + "github.com/openshift/cluster-monitoring-operator/pkg/client" "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - - "k8s.io/klog/v2" ) type MonitoringPluginTask struct { diff --git a/pkg/tasks/prometheus.go b/pkg/tasks/prometheus.go index b5f1d0130d..5aee35acf0 100644 --- a/pkg/tasks/prometheus.go +++ b/pkg/tasks/prometheus.go @@ -18,11 +18,11 @@ import ( "context" "fmt" - "github.com/openshift/cluster-monitoring-operator/pkg/client" - "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - apiutilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/klog/v2" + + "github.com/openshift/cluster-monitoring-operator/pkg/client" + "github.com/openshift/cluster-monitoring-operator/pkg/manifests" ) type PrometheusTask struct { diff --git a/pkg/tasks/prometheus_user_workload.go b/pkg/tasks/prometheus_user_workload.go index 0573bb83c6..a9ef4ba468 100644 --- a/pkg/tasks/prometheus_user_workload.go +++ b/pkg/tasks/prometheus_user_workload.go @@ -18,11 +18,11 @@ import ( "context" "fmt" - "github.com/openshift/cluster-monitoring-operator/pkg/client" - "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - "k8s.io/apimachinery/pkg/types" "k8s.io/klog/v2" + + "github.com/openshift/cluster-monitoring-operator/pkg/client" + "github.com/openshift/cluster-monitoring-operator/pkg/manifests" ) type PrometheusUserWorkloadTask struct { diff --git a/pkg/tasks/prometheus_validation.go b/pkg/tasks/prometheus_validation.go index 27361ea95e..c79961a176 100644 --- a/pkg/tasks/prometheus_validation.go +++ b/pkg/tasks/prometheus_validation.go @@ -17,10 +17,11 @@ package tasks import ( "context" - "github.com/openshift/cluster-monitoring-operator/pkg/client" - "github.com/openshift/cluster-monitoring-operator/pkg/manifests" "k8s.io/apimachinery/pkg/types" "k8s.io/klog/v2" + + "github.com/openshift/cluster-monitoring-operator/pkg/client" + "github.com/openshift/cluster-monitoring-operator/pkg/manifests" ) type PrometheusValidationTask struct { diff --git a/pkg/tasks/prometheusadapter.go b/pkg/tasks/prometheusadapter.go index 4b50cc488f..b33580cae6 100644 --- a/pkg/tasks/prometheusadapter.go +++ b/pkg/tasks/prometheusadapter.go @@ -4,11 +4,11 @@ import ( "context" "fmt" - "github.com/openshift/cluster-monitoring-operator/pkg/client" - "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" + + "github.com/openshift/cluster-monitoring-operator/pkg/client" + "github.com/openshift/cluster-monitoring-operator/pkg/manifests" ) type PrometheusAdapterTask struct { diff --git a/pkg/tasks/prometheusoperator.go b/pkg/tasks/prometheusoperator.go index 00873b86bc..4ecb05e078 100644 --- a/pkg/tasks/prometheusoperator.go +++ b/pkg/tasks/prometheusoperator.go @@ -120,7 +120,10 @@ func (t *PrometheusOperatorTask) Run(ctx context.Context) error { } err = t.client.CreateOrUpdateServiceMonitor(ctx, smpo) - return fmt.Errorf("reconciling Prometheus Operator ServiceMonitor failed: %w", err) + if err != nil { + return fmt.Errorf("reconciling Prometheus Operator ServiceMonitor failed: %w", err) + } + return nil } func (t *PrometheusOperatorTask) runAdmissionWebhook(ctx context.Context) error { diff --git a/pkg/tasks/prometheusoperator_user_workload.go b/pkg/tasks/prometheusoperator_user_workload.go index 715a531fe6..192f672475 100644 --- a/pkg/tasks/prometheusoperator_user_workload.go +++ b/pkg/tasks/prometheusoperator_user_workload.go @@ -137,7 +137,6 @@ func (t *PrometheusOperatorUserWorkloadTask) create(ctx context.Context) error { return fmt.Errorf("waiting for Prometheus Operator CRs to become available failed: %w", err) } - smpo, err := t.factory.PrometheusOperatorUserWorkloadServiceMonitor() if err != nil { return fmt.Errorf("initializing UserWorkload Prometheus Operator ServiceMonitor failed: %w", err) diff --git a/pkg/tasks/tasks.go b/pkg/tasks/tasks.go index 3a3af32d99..c19eda7902 100644 --- a/pkg/tasks/tasks.go +++ b/pkg/tasks/tasks.go @@ -19,9 +19,10 @@ import ( "fmt" "strings" - "github.com/openshift/cluster-monitoring-operator/pkg/client" "golang.org/x/sync/errgroup" "k8s.io/klog/v2" + + "github.com/openshift/cluster-monitoring-operator/pkg/client" ) // TaskRunner manages lists of task groups. Through the RunAll method task groups are diff --git a/pkg/tasks/telemeter.go b/pkg/tasks/telemeter.go index dc7abe41d0..c499faf6e8 100644 --- a/pkg/tasks/telemeter.go +++ b/pkg/tasks/telemeter.go @@ -18,10 +18,10 @@ import ( "context" "fmt" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "github.com/openshift/cluster-monitoring-operator/pkg/client" "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - - apierrors "k8s.io/apimachinery/pkg/api/errors" ) type TelemeterClientTask struct { diff --git a/pkg/tasks/thanos_querier.go b/pkg/tasks/thanos_querier.go index dfd94f3b15..8b1d834c8f 100644 --- a/pkg/tasks/thanos_querier.go +++ b/pkg/tasks/thanos_querier.go @@ -18,11 +18,11 @@ import ( "context" "fmt" - "github.com/openshift/cluster-monitoring-operator/pkg/client" - "github.com/openshift/cluster-monitoring-operator/pkg/manifests" - v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/openshift/cluster-monitoring-operator/pkg/client" + "github.com/openshift/cluster-monitoring-operator/pkg/manifests" ) type ThanosQuerierTask struct { diff --git a/test/e2e/framework/client.go b/test/e2e/framework/client.go index c846251eb8..e6c9fda31f 100644 --- a/test/e2e/framework/client.go +++ b/test/e2e/framework/client.go @@ -307,7 +307,7 @@ func GetFirstValueFromPromQuery(body []byte) (float64, error) { v, err := strconv.ParseFloat(value.Data().(string), 64) if err != nil { - return 0, fmt.Errorf("failed to parse query value: %v", err) + return 0, fmt.Errorf("failed to parse query value: %w", err) } return v, nil diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index ceb844edc7..14adfae71c 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -636,7 +636,7 @@ func Poll(interval, timeout time.Duration, f func() error) error { if err != nil { if wait.Interrupted(err) && lastErr != nil { - err = fmt.Errorf("%v: %v", err, lastErr) + err = fmt.Errorf("%w: %w", err, lastErr) } } diff --git a/test/e2e/main_test.go b/test/e2e/main_test.go index 39160ecc3e..e6713c73e4 100644 --- a/test/e2e/main_test.go +++ b/test/e2e/main_test.go @@ -115,7 +115,7 @@ func testMain(m *testing.M) error { return true, nil }) if err != nil { - return fmt.Errorf("wait for prometheus-k8s: %v: %w", loopErr, err) + return fmt.Errorf("wait for prometheus-k8s: %w: %w", loopErr, err) } if m.Run() != 0 { diff --git a/test/e2e/prometheusadapter_test.go b/test/e2e/prometheusadapter_test.go index 216779e36e..c87992a399 100644 --- a/test/e2e/prometheusadapter_test.go +++ b/test/e2e/prometheusadapter_test.go @@ -123,8 +123,8 @@ func TestPodMetricsPresence(t *testing.T) { ctx := context.Background() err := wait.Poll(time.Second, 5*time.Minute, func() (bool, error) { pods, err := f.KubeClient.CoreV1().Pods("").List(ctx, metav1.ListOptions{FieldSelector: "status.phase=Running"}) - lastErr = fmt.Errorf("getting pods list failed: %w", err) if err != nil { + lastErr = fmt.Errorf("getting pods list failed: %w", err) return false, nil } podMetrics, err := f.MetricsClient.MetricsV1beta1().PodMetricses("").List(ctx, metav1.ListOptions{}) diff --git a/test/e2e/user_workload_monitoring_test.go b/test/e2e/user_workload_monitoring_test.go index 13e45566f8..9dd1a8f22b 100644 --- a/test/e2e/user_workload_monitoring_test.go +++ b/test/e2e/user_workload_monitoring_test.go @@ -1348,7 +1348,7 @@ func assertGRPCTLSRotation(t *testing.T) { err = framework.Poll(time.Second, 5*time.Minute, func() error { s, err := f.KubeClient.CoreV1().Secrets(f.Ns).Get(ctx, "grpc-tls", metav1.GetOptions{}) if err != nil { - return fmt.Errorf("error loading grpc-tls secret: %v", err) + return fmt.Errorf("error loading grpc-tls secret: %w", err) } if _, ok := s.Annotations["monitoring.openshift.io/grpc-tls-forced-rotate"]; ok {