From f19c2f08c36f0fa97da3fbe5028d89f0ac91eff4 Mon Sep 17 00:00:00 2001 From: RoyUP9 <87927115+RoyUP9@users.noreply.github.com> Date: Thu, 24 Feb 2022 18:44:14 +0200 Subject: [PATCH] Changed check server pod by label (#853) --- cli/cmd/checkRunner.go | 23 +++++++++-------------- shared/kubernetes/provider.go | 14 +++++++++----- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/cli/cmd/checkRunner.go b/cli/cmd/checkRunner.go index 7bf75d090..53a7872ba 100644 --- a/cli/cmd/checkRunner.go +++ b/cli/cmd/checkRunner.go @@ -193,26 +193,21 @@ func checkK8sResources(ctx context.Context, kubernetesProvider *kubernetes.Provi } func checkPodResourcesExist(ctx context.Context, kubernetesProvider *kubernetes.Provider) bool { - exist, err := kubernetesProvider.DoesPodExist(ctx, config.Config.MizuResourcesNamespace, kubernetes.ApiServerPodName) - tapResourcesExist := checkResourceExist(kubernetes.ApiServerPodName, "pod", exist, err) - - if !tapResourcesExist { + if pods, err := kubernetesProvider.ListPodsByAppLabel(ctx, config.Config.MizuResourcesNamespace, kubernetes.ApiServerPodName); err != nil { + logger.Log.Errorf("%v error checking if '%v' pod is running, err: %v", fmt.Sprintf(uiUtils.Red, "✗"), kubernetes.ApiServerPodName, err) return false - } - - if pod, err := kubernetesProvider.GetPod(ctx, config.Config.MizuResourcesNamespace, kubernetes.ApiServerPodName); err != nil { - logger.Log.Errorf("%v error checking if '%v' pod exists, err: %v", fmt.Sprintf(uiUtils.Red, "✗"), kubernetes.ApiServerPodName, err) + } else if len(pods) == 0 { + logger.Log.Errorf("%v '%v' pod doesn't exist", fmt.Sprintf(uiUtils.Red, "✗"), kubernetes.ApiServerPodName) return false - } else if kubernetes.IsPodRunning(pod) { - logger.Log.Infof("%v '%v' pod running", fmt.Sprintf(uiUtils.Green, "√"), kubernetes.ApiServerPodName) - } else { + } else if !kubernetes.IsPodRunning(&pods[0]) { logger.Log.Errorf("%v '%v' pod not running", fmt.Sprintf(uiUtils.Red, "✗"), kubernetes.ApiServerPodName) return false } - tapperRegex := regexp.MustCompile(fmt.Sprintf("^%s.*", kubernetes.TapperPodName)) - if pods, err := kubernetesProvider.ListAllPodsMatchingRegex(ctx, tapperRegex, []string{config.Config.MizuResourcesNamespace}); err != nil { - logger.Log.Errorf("%v error listing '%v' pods, err: %v", fmt.Sprintf(uiUtils.Red, "✗"), kubernetes.TapperPodName, err) + logger.Log.Infof("%v '%v' pod running", fmt.Sprintf(uiUtils.Green, "√"), kubernetes.ApiServerPodName) + + if pods, err := kubernetesProvider.ListPodsByAppLabel(ctx, config.Config.MizuResourcesNamespace, kubernetes.TapperPodName); err != nil { + logger.Log.Errorf("%v error checking if '%v' pods are running, err: %v", fmt.Sprintf(uiUtils.Red, "✗"), kubernetes.TapperPodName, err) return false } else { tappers := 0 diff --git a/shared/kubernetes/provider.go b/shared/kubernetes/provider.go index 0b16cb2a8..b4157d198 100644 --- a/shared/kubernetes/provider.go +++ b/shared/kubernetes/provider.go @@ -489,11 +489,6 @@ func (provider *Provider) DoesDeploymentExist(ctx context.Context, namespace str return provider.doesResourceExist(deploymentResource, err) } -func (provider *Provider) DoesPodExist(ctx context.Context, namespace string, name string) (bool, error) { - podResource, err := provider.clientSet.CoreV1().Pods(namespace).Get(ctx, name, metav1.GetOptions{}) - return provider.doesResourceExist(podResource, err) -} - func (provider *Provider) DoesServiceExist(ctx context.Context, namespace string, name string) (bool, error) { serviceResource, err := provider.clientSet.CoreV1().Services(namespace).Get(ctx, name, metav1.GetOptions{}) return provider.doesResourceExist(serviceResource, err) @@ -1043,6 +1038,15 @@ func (provider *Provider) ListAllRunningPodsMatchingRegex(ctx context.Context, r return matchingPods, nil } +func(provider *Provider) ListPodsByAppLabel(ctx context.Context, namespaces string, labelName string) ([]core.Pod, error) { + pods, err := provider.clientSet.CoreV1().Pods(namespaces).List(ctx, metav1.ListOptions{LabelSelector: fmt.Sprintf("app=%s", labelName)}) + if err != nil { + return nil, err + } + + return pods.Items, err +} + func (provider *Provider) ListAllNamespaces(ctx context.Context) ([]core.Namespace, error) { namespaces, err := provider.clientSet.CoreV1().Namespaces().List(ctx, metav1.ListOptions{}) if err != nil {