From b7760a7f4489cf0926033e7a6d6b991cddb8cfb4 Mon Sep 17 00:00:00 2001 From: "M. Mert Yildiran" Date: Sat, 26 Nov 2022 07:14:12 +0300 Subject: [PATCH] :art: Get the `front` pod and service names from constants --- cmd/common.go | 4 ++-- cmd/tapRunner.go | 8 ++++---- cmd/viewRunner.go | 2 +- kubernetes/consts.go | 3 +++ kubernetes/provider.go | 14 +++++++------- resources/createResources.go | 19 +++++++++++++++++-- 6 files changed, 34 insertions(+), 16 deletions(-) diff --git a/cmd/common.go b/cmd/common.go index 7e31ca93e..b4c3bda2a 100644 --- a/cmd/common.go +++ b/cmd/common.go @@ -49,8 +49,8 @@ func startProxyReportErrorIfAny(kubernetesProvider *kubernetes.Provider, ctx con provider = apiserver.NewProvider(kubernetes.GetLocalhostOnPort(srcPort), apiserver.DefaultRetries, apiserver.DefaultTimeout) if err := provider.TestConnection(healthCheck); err != nil { - log.Printf(uiUtils.Error, "Couldn't connect to [%s].") - // cancel() + log.Printf(uiUtils.Error, fmt.Sprintf("Couldn't connect to [%s].", serviceName)) + cancel() return } } diff --git a/cmd/tapRunner.go b/cmd/tapRunner.go index 8a296726b..290ff4fdf 100644 --- a/cmd/tapRunner.go +++ b/cmd/tapRunner.go @@ -300,7 +300,7 @@ func watchApiServerPod(ctx context.Context, kubernetesProvider *kubernetes.Provi } func watchFrontPod(ctx context.Context, kubernetesProvider *kubernetes.Provider, cancel context.CancelFunc) { - podExactRegex := regexp.MustCompile(fmt.Sprintf("^%s$", "front")) + podExactRegex := regexp.MustCompile(fmt.Sprintf("^%s$", kubernetes.FrontPodName)) podWatchHelper := kubernetes.NewPodWatchHelper(kubernetesProvider, podExactRegex) eventChan, errorChan := kubernetes.FilteredWatch(ctx, podWatchHelper, []string{config.Config.KubesharkResourcesNamespace}, podWatchHelper) isPodReady := false @@ -319,7 +319,7 @@ func watchFrontPod(ctx context.Context, kubernetesProvider *kubernetes.Provider, case kubernetes.EventAdded: log.Printf("Watching API Server pod loop, added") case kubernetes.EventDeleted: - log.Printf("%s removed", "front") + log.Printf("%s removed", kubernetes.FrontPodName) cancel() return case kubernetes.EventModified: @@ -420,7 +420,7 @@ func watchApiServerEvents(ctx context.Context, kubernetesProvider *kubernetes.Pr } func postApiServerStarted(ctx context.Context, kubernetesProvider *kubernetes.Provider, cancel context.CancelFunc) { - startProxyReportErrorIfAny(kubernetesProvider, ctx, cancel, "kubeshark-api-server", config.Config.Hub.PortForward.SrcPort, config.Config.Hub.PortForward.DstPort, "/echo") + startProxyReportErrorIfAny(kubernetesProvider, ctx, cancel, kubernetes.ApiServerServiceName, config.Config.Hub.PortForward.SrcPort, config.Config.Hub.PortForward.DstPort, "/echo") if err := startTapperSyncer(ctx, cancel, kubernetesProvider, state.targetNamespaces, state.startTime); err != nil { log.Printf(uiUtils.Error, fmt.Sprintf("Error starting kubeshark tapper syncer: %v", errormessage.FormatError(err))) @@ -432,7 +432,7 @@ func postApiServerStarted(ctx context.Context, kubernetesProvider *kubernetes.Pr } func postFrontStarted(ctx context.Context, kubernetesProvider *kubernetes.Provider, cancel context.CancelFunc) { - startProxyReportErrorIfAny(kubernetesProvider, ctx, cancel, "front", config.Config.Front.PortForward.SrcPort, config.Config.Front.PortForward.DstPort, "") + startProxyReportErrorIfAny(kubernetesProvider, ctx, cancel, kubernetes.FrontServiceName, config.Config.Front.PortForward.SrcPort, config.Config.Front.PortForward.DstPort, "") url := kubernetes.GetLocalhostOnPort(config.Config.Front.PortForward.SrcPort) log.Printf("Kubeshark is available at %s", url) diff --git a/cmd/viewRunner.go b/cmd/viewRunner.go index bad3576ac..c2c61b4bf 100644 --- a/cmd/viewRunner.go +++ b/cmd/viewRunner.go @@ -46,7 +46,7 @@ func runKubesharkView() { return } log.Printf("Establishing connection to k8s cluster...") - startProxyReportErrorIfAny(kubernetesProvider, ctx, cancel, "front", config.Config.Front.PortForward.SrcPort, config.Config.Front.PortForward.DstPort, "") + startProxyReportErrorIfAny(kubernetesProvider, ctx, cancel, kubernetes.FrontServiceName, config.Config.Front.PortForward.SrcPort, config.Config.Front.PortForward.DstPort, "") } apiServerProvider := apiserver.NewProvider(url, apiserver.DefaultRetries, apiserver.DefaultTimeout) diff --git a/kubernetes/consts.go b/kubernetes/consts.go index 420df2b5c..7487255d7 100644 --- a/kubernetes/consts.go +++ b/kubernetes/consts.go @@ -2,7 +2,10 @@ package kubernetes const ( KubesharkResourcesPrefix = "ks-" + FrontPodName = KubesharkResourcesPrefix + "front" + FrontServiceName = FrontPodName ApiServerPodName = KubesharkResourcesPrefix + "hub" + ApiServerServiceName = ApiServerPodName ClusterRoleBindingName = KubesharkResourcesPrefix + "cluster-role-binding" ClusterRoleName = KubesharkResourcesPrefix + "cluster-role" K8sAllNamespaces = "" diff --git a/kubernetes/provider.go b/kubernetes/provider.go index e6327dc5c..20164b23d 100644 --- a/kubernetes/provider.go +++ b/kubernetes/provider.go @@ -406,19 +406,19 @@ func (provider *Provider) BuildFrontPod(opts *ApiServerOptions, mountVolumeClaim cpuLimit, err := resource.ParseQuantity(opts.Resources.CpuLimit) if err != nil { - return nil, fmt.Errorf("invalid cpu limit for %s container", "front") + return nil, fmt.Errorf("invalid cpu limit for %s container", opts.PodName) } memLimit, err := resource.ParseQuantity(opts.Resources.MemoryLimit) if err != nil { - return nil, fmt.Errorf("invalid memory limit for %s container", "front") + return nil, fmt.Errorf("invalid memory limit for %s container", opts.PodName) } cpuRequests, err := resource.ParseQuantity(opts.Resources.CpuRequests) if err != nil { - return nil, fmt.Errorf("invalid cpu request for %s container", "front") + return nil, fmt.Errorf("invalid cpu request for %s container", opts.PodName) } memRequests, err := resource.ParseQuantity(opts.Resources.MemoryRequests) if err != nil { - return nil, fmt.Errorf("invalid memory request for %s container", "front") + return nil, fmt.Errorf("invalid memory request for %s container", opts.PodName) } volumeMounts := []core.VolumeMount{} @@ -426,7 +426,7 @@ func (provider *Provider) BuildFrontPod(opts *ApiServerOptions, mountVolumeClaim containers := []core.Container{ { - Name: "front", + Name: opts.PodName, Image: "kubeshark/front:latest", ImagePullPolicy: opts.ImagePullPolicy, VolumeMounts: volumeMounts, @@ -459,9 +459,9 @@ func (provider *Provider) BuildFrontPod(opts *ApiServerOptions, mountVolumeClaim pod := &core.Pod{ ObjectMeta: metav1.ObjectMeta{ - Name: "front", + Name: opts.PodName, Labels: map[string]string{ - "app": "front", + "app": opts.PodName, LabelManagedBy: provider.managedBy, LabelCreatedBy: provider.createdBy, }, diff --git a/resources/createResources.go b/resources/createResources.go index ec559d6f3..92d061499 100644 --- a/resources/createResources.go +++ b/resources/createResources.go @@ -53,11 +53,26 @@ func CreateTapKubesharkResources(ctx context.Context, kubernetesProvider *kubern Profiler: profiler, } + frontOpts := &kubernetes.ApiServerOptions{ + Namespace: kubesharkResourcesNamespace, + PodName: kubernetes.FrontPodName, + PodImage: agentImage, + KratosImage: "", + KetoImage: "", + ServiceAccountName: serviceAccountName, + IsNamespaceRestricted: isNsRestrictedMode, + MaxEntriesDBSizeBytes: maxEntriesDBSizeBytes, + Resources: apiServerResources, + ImagePullPolicy: imagePullPolicy, + LogLevel: logLevel, + Profiler: profiler, + } + if err := createKubesharkApiServerPod(ctx, kubernetesProvider, opts); err != nil { return kubesharkServiceAccountExists, err } - if err := createFrontPod(ctx, kubernetesProvider, opts); err != nil { + if err := createFrontPod(ctx, kubernetesProvider, frontOpts); err != nil { return kubesharkServiceAccountExists, err } @@ -66,7 +81,7 @@ func CreateTapKubesharkResources(ctx context.Context, kubernetesProvider *kubern return kubesharkServiceAccountExists, err } - _, err = kubernetesProvider.CreateService(ctx, kubesharkResourcesNamespace, "front", "front", 80, int32(config.Config.Front.PortForward.DstPort), int32(config.Config.Front.PortForward.SrcPort)) + _, err = kubernetesProvider.CreateService(ctx, kubesharkResourcesNamespace, kubernetes.FrontPodName, kubernetes.FrontPodName, 80, int32(config.Config.Front.PortForward.DstPort), int32(config.Config.Front.PortForward.SrcPort)) if err != nil { return kubesharkServiceAccountExists, err }