From ae61943ac87c05fde109f41b3cb795ae115a1b75 Mon Sep 17 00:00:00 2001 From: Bastian Krol Date: Wed, 15 May 2024 06:40:24 +0200 Subject: [PATCH] chore: fix all linting issues --- cmd/main.go | 11 ++++++++-- internal/controller/dash0_controller.go | 3 ++- internal/webhook/dash0_webhook.go | 9 +++------ internal/webhook/webhook_suite_test.go | 3 ++- test/e2e/e2e_test.go | 27 ++++++++++++++++++++----- test/utils/matchers.go | 6 ++++-- test/utils/webhook_test_utils.go | 8 +++++++- 7 files changed, 49 insertions(+), 18 deletions(-) diff --git a/cmd/main.go b/cmd/main.go index 43dd941b..c643dcc4 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -83,7 +83,14 @@ func main() { TLSOpts: tlsOpts, }) - if err := startOperatorManager(metricsAddr, secureMetrics, tlsOpts, webhookServer, probeAddr, enableLeaderElection); err != nil { + if err := startOperatorManager( + metricsAddr, + secureMetrics, + tlsOpts, + webhookServer, + probeAddr, + enableLeaderElection, + ); err != nil { setupLog.Error(err, "The Dash0 operator manager process failed to start.") os.Exit(1) } @@ -135,7 +142,7 @@ func startOperatorManager( if os.Getenv("ENABLE_WEBHOOKS") != "false" { if err = (&dash0webhook.WebhookHandler{ - EventRecorder: mgr.GetEventRecorderFor(fmt.Sprintf("dash0-webhook")), + EventRecorder: mgr.GetEventRecorderFor("dash0-webhook"), }).SetupWebhookWithManager(mgr); err != nil { return fmt.Errorf("unable to create the Dash0 webhook: %w", err) } diff --git a/internal/controller/dash0_controller.go b/internal/controller/dash0_controller.go index 402a0a94..2e1516e2 100644 --- a/internal/controller/dash0_controller.go +++ b/internal/controller/dash0_controller.go @@ -5,6 +5,7 @@ package controller import ( "context" + appsv1 "k8s.io/api/apps/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" @@ -60,7 +61,7 @@ func (r *Dash0Reconciler) SetupWithManager(mgr ctrl.Manager) error { func (r *Dash0Reconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { log := log.FromContext(ctx).WithValues("namespace", req.NamespacedName.Namespace, "name", req.NamespacedName.Name) - // Check wheter the Dash0 custom resource exists. + // Check whether the Dash0 custom resource exists. dash0CustomResource := &operatorv1alpha1.Dash0{} err := r.Get(ctx, req.NamespacedName, dash0CustomResource) if err != nil { diff --git a/internal/webhook/dash0_webhook.go b/internal/webhook/dash0_webhook.go index 6408c7f8..2ca45203 100644 --- a/internal/webhook/dash0_webhook.go +++ b/internal/webhook/dash0_webhook.go @@ -85,9 +85,7 @@ func (wh *WebhookHandler) Handle(ctx context.Context, request admission.Request) deploymentSpecTemplate := &deployment.Spec.Template originalSpec := deploymentSpecTemplate.Spec.DeepCopy() - if err := wh.modifyPodSpec(&deploymentSpecTemplate.Spec); err != nil { - return admission.Errored(http.StatusInternalServerError, fmt.Errorf("injecting into pod spec failed: %w", err)) - } + wh.modifyPodSpec(&deploymentSpecTemplate.Spec) if reflect.DeepEqual(originalSpec, &deploymentSpecTemplate.Spec) { return admission.Allowed("no changes") } @@ -103,14 +101,13 @@ func (wh *WebhookHandler) Handle(ctx context.Context, request admission.Request) } } -func (wh *WebhookHandler) modifyPodSpec(podSpec *corev1.PodSpec) error { +func (wh *WebhookHandler) modifyPodSpec(podSpec *corev1.PodSpec) { wh.addInstrumentationVolume(podSpec) wh.addInitContainer(podSpec) - for idx, _ := range podSpec.Containers { + for idx := range podSpec.Containers { container := &podSpec.Containers[idx] wh.instrumentContainer(container) } - return nil } func (wh *WebhookHandler) addInstrumentationVolume(podSpec *corev1.PodSpec) { diff --git a/internal/webhook/webhook_suite_test.go b/internal/webhook/webhook_suite_test.go index 0506de67..2f6e0eab 100644 --- a/internal/webhook/webhook_suite_test.go +++ b/internal/webhook/webhook_suite_test.go @@ -7,7 +7,7 @@ import ( "context" "crypto/tls" "fmt" - corev1 "k8s.io/api/core/v1" + "net" "path/filepath" "runtime" @@ -20,6 +20,7 @@ import ( operatorv1alpha1 "github.com/dash0hq/dash0-operator/api/v1alpha1" admissionv1 "k8s.io/api/admission/v1" + corev1 "k8s.io/api/core/v1" apimachineryruntime "k8s.io/apimachinery/pkg/runtime" clientgoscheme "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/rest" diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index 51d0e748..8aaed3b5 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -4,6 +4,7 @@ package e2e import ( + "errors" "fmt" "io" "os" @@ -37,7 +38,11 @@ var _ = Describe("controller", Ordered, func() { fmt.Fprintf(GinkgoWriter, "workingDir: %s\n", workingDir) By("Reading current imagePullPolicy") - yqOutput, err := utils.Run(exec.Command("yq", "e", "select(documentIndex == 1) | .spec.template.spec.containers[] | select(.name == \"manager\") | .imagePullPolicy", managerYaml)) + yqOutput, err := utils.Run(exec.Command( + "yq", + "e", + "select(documentIndex == 1) | .spec.template.spec.containers[] | select(.name == \"manager\") | .imagePullPolicy", + managerYaml)) ExpectWithOffset(1, err).NotTo(HaveOccurred()) originalImagePullPolicy := strings.TrimSpace(string(yqOutput)) fmt.Fprintf(GinkgoWriter, "original imagePullPolicy: %s\n", originalImagePullPolicy) @@ -47,7 +52,14 @@ var _ = Describe("controller", Ordered, func() { ExpectWithOffset(1, err).NotTo(HaveOccurred()) managerYamlNeedsRevert = true By("temporarily changing imagePullPolicy to \"Never\"") - _, err = utils.Run(exec.Command("yq", "-i", "with(select(documentIndex == 1) | .spec.template.spec.containers[] | select(.name == \"manager\"); .imagePullPolicy |= \"Never\")", managerYaml)) + _, err = utils.Run(exec.Command( + "yq", + "-i", + "with(select(documentIndex == 1) | "+ + ".spec.template.spec.containers[] | "+ + "select(.name == \"manager\"); "+ + ".imagePullPolicy |= \"Never\")", + managerYaml)) ExpectWithOffset(1, err).NotTo(HaveOccurred()) } @@ -95,7 +107,7 @@ var _ = Describe("controller", Ordered, func() { if err != nil { fmt.Fprint(GinkgoWriter, err.Error()) } - fmt.Fprintf(GinkgoWriter, string(output)) + fmt.Fprint(GinkgoWriter, string(output)) }) Context("Operator", func() { @@ -117,6 +129,7 @@ var _ = Describe("controller", Ordered, func() { By("installing CRDs") cmd = exec.Command("make", "install") _, err = utils.Run(cmd) + ExpectWithOffset(1, err).NotTo(HaveOccurred()) fmt.Fprintf(GinkgoWriter, "time.Sleep(30 * time.Second)\n") time.Sleep(30 * time.Second) @@ -171,13 +184,17 @@ func copyFile(source string, destination string) error { if err != nil { return err } - defer src.Close() + defer func() { + err = errors.Join(err, src.Close()) + }() dst, err := os.Create(destination) if err != nil { return err } - defer dst.Close() + defer func() { + err = errors.Join(err, dst.Close()) + }() _, err = io.Copy(dst, src) return err } diff --git a/test/utils/matchers.go b/test/utils/matchers.go index 3f828e6e..a6209c6c 100644 --- a/test/utils/matchers.go +++ b/test/utils/matchers.go @@ -5,9 +5,9 @@ package utils import ( "fmt" - "github.com/onsi/gomega/format" "github.com/onsi/gomega" + "github.com/onsi/gomega/format" corev1 "k8s.io/api/core/v1" ) @@ -62,7 +62,9 @@ type MatchVolumeMountMatcher struct { func (matcher *MatchVolumeMountMatcher) Match(actual interface{}) (success bool, err error) { volumeMount, ok := actual.(corev1.VolumeMount) if !ok { - return false, fmt.Errorf("ContainsVolumeMount matcher requires a corev1.VolumeMount. Got:\n%s", format.Object(actual, 1)) + return false, fmt.Errorf( + "ContainsVolumeMount matcher requires a corev1.VolumeMount. Got:\n%s", + format.Object(actual, 1)) } return matcher.Name == volumeMount.Name && matcher.MountPath == volumeMount.MountPath, nil } diff --git a/test/utils/webhook_test_utils.go b/test/utils/webhook_test_utils.go index aa8d8446..bb111edf 100644 --- a/test/utils/webhook_test_utils.go +++ b/test/utils/webhook_test_utils.go @@ -5,6 +5,7 @@ package utils import ( "context" + . "github.com/onsi/gomega" appsv1 "k8s.io/api/apps/v1" @@ -36,7 +37,12 @@ func CreateDeployment(namespace string, name string) *appsv1.Deployment { return deployment } -func GetDeployment(ctx context.Context, k8sClient client.Client, namespace string, deploymentName string) *appsv1.Deployment { +func GetDeployment( + ctx context.Context, + k8sClient client.Client, + namespace string, + deploymentName string, +) *appsv1.Deployment { deployment := &appsv1.Deployment{} namespacedName := types.NamespacedName{ Namespace: namespace,