summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--robusta_krr/core/abstract/formatters.py2
-rw-r--r--robusta_krr/core/abstract/strategies.py2
-rw-r--r--robusta_krr/core/integrations/kubernetes.py (renamed from robusta_krr/core/models/kubernetes.py)19
-rw-r--r--robusta_krr/core/integrations/prometheus.py (renamed from robusta_krr/core/prometheus.py)2
-rw-r--r--robusta_krr/core/models/result.py (renamed from robusta_krr/core/result.py)0
-rw-r--r--robusta_krr/core/runner.py6
-rw-r--r--robusta_krr/formatters/json.py2
-rw-r--r--robusta_krr/formatters/table.py2
-rw-r--r--robusta_krr/formatters/yaml.py2
9 files changed, 20 insertions, 17 deletions
diff --git a/robusta_krr/core/abstract/formatters.py b/robusta_krr/core/abstract/formatters.py
index 8487f7f..8316923 100644
--- a/robusta_krr/core/abstract/formatters.py
+++ b/robusta_krr/core/abstract/formatters.py
@@ -5,7 +5,7 @@ import os
from typing import TYPE_CHECKING, Any
if TYPE_CHECKING:
- from robusta_krr.core.result import Result
+ from robusta_krr.core.models.result import Result
DEFAULT_FORMATTERS_PATH = os.path.join(os.path.dirname(__file__), "formatters")
diff --git a/robusta_krr/core/abstract/strategies.py b/robusta_krr/core/abstract/strategies.py
index ebc23b4..51edf31 100644
--- a/robusta_krr/core/abstract/strategies.py
+++ b/robusta_krr/core/abstract/strategies.py
@@ -6,7 +6,7 @@ from typing import Generic, TypeVar
import pydantic as pd
-from robusta_krr.core.result import K8sObjectData, ResourceType
+from robusta_krr.core.models.result import K8sObjectData, ResourceType
class ResourceRecommendation(pd.BaseModel):
diff --git a/robusta_krr/core/models/kubernetes.py b/robusta_krr/core/integrations/kubernetes.py
index 2c2cbc2..10f85fd 100644
--- a/robusta_krr/core/models/kubernetes.py
+++ b/robusta_krr/core/integrations/kubernetes.py
@@ -6,6 +6,8 @@ from kubernetes.client.models import (
V1PodList,
V1DeploymentList,
V1StatefulSetList,
+ V1JobList,
+ V1DaemonSetList,
V1Deployment,
V1Container,
V1DaemonSet,
@@ -13,7 +15,7 @@ from kubernetes.client.models import (
)
from robusta_krr.core.models.objects import K8sObjectData
-from robusta_krr.core.result import ResourceAllocations
+from robusta_krr.core.models.result import ResourceAllocations
from robusta_krr.utils.configurable import Configurable
@@ -22,7 +24,8 @@ class ClusterLoader(Configurable):
super().__init__(*args, **kwargs)
self.cluster = cluster
- self.v1 = client.AppsV1Api(api_client=config.new_client_from_config(context=cluster))
+ self.apps = client.AppsV1Api(api_client=config.new_client_from_config(context=cluster))
+ self.batch = client.BatchV1Api(api_client=config.new_client_from_config(context=cluster))
async def list_scannable_objects(self) -> list[K8sObjectData]:
"""List all scannable objects.
@@ -38,7 +41,7 @@ class ClusterLoader(Configurable):
self._list_deployments(),
self._list_all_statefulsets(),
self._list_all_daemon_set(),
- # self._list_all_jobs(), # TODO: Add support for Jobs
+ self._list_all_jobs(),
)
except Exception as e:
self.error(f"Error trying to list pods in cluster {self.cluster}: {e}")
@@ -57,21 +60,21 @@ class ClusterLoader(Configurable):
)
async def _list_deployments(self) -> list[K8sObjectData]:
- ret: V1DeploymentList = await asyncio.to_thread(self.v1.list_deployment_for_all_namespaces, watch=False)
+ ret: V1DeploymentList = await asyncio.to_thread(self.apps.list_deployment_for_all_namespaces, watch=False)
return [
self.__build_obj(item, container) for item in ret.items for container in item.spec.template.spec.containers
]
async def _list_all_statefulsets(self) -> list[K8sObjectData]:
- ret: V1StatefulSetList = await asyncio.to_thread(self.v1.list_stateful_set_for_all_namespaces, watch=False)
+ ret: V1StatefulSetList = await asyncio.to_thread(self.apps.list_stateful_set_for_all_namespaces, watch=False)
return [
self.__build_obj(item, container) for item in ret.items for container in item.spec.template.spec.containers
]
async def _list_all_daemon_set(self) -> list[K8sObjectData]:
- ret: V1StatefulSetList = await asyncio.to_thread(self.v1.list_daemon_set_for_all_namespaces, watch=False)
+ ret: V1DaemonSetList = await asyncio.to_thread(self.apps.list_daemon_set_for_all_namespaces, watch=False)
return [
self.__build_obj(item, container) for item in ret.items for container in item.spec.template.spec.containers
@@ -80,7 +83,7 @@ class ClusterLoader(Configurable):
async def _list_all_jobs(self) -> list[K8sObjectData]:
"""Not working yet."""
- ret: V1StatefulSetList = await asyncio.to_thread(self.v1.list_, watch=False)
+ ret: V1JobList = await asyncio.to_thread(self.batch.list_job_for_all_namespaces, watch=False)
return [
self.__build_obj(item, container) for item in ret.items for container in item.spec.template.spec.containers
@@ -89,7 +92,7 @@ class ClusterLoader(Configurable):
async def _list_pods(self) -> list[K8sObjectData]:
"""For future use, not supported yet."""
- ret: V1PodList = await asyncio.to_thread(self.v1.list_pod_for_all_namespaces, watch=False)
+ ret: V1PodList = await asyncio.to_thread(self.apps.list_pod_for_all_namespaces, watch=False)
return [self.__build_obj(item, container) for item in ret.items for container in item.spec.containers]
diff --git a/robusta_krr/core/prometheus.py b/robusta_krr/core/integrations/prometheus.py
index d81aad4..64e2f08 100644
--- a/robusta_krr/core/prometheus.py
+++ b/robusta_krr/core/integrations/prometheus.py
@@ -3,7 +3,7 @@ import datetime
import random
from robusta_krr.core.models.objects import K8sObjectData
-from robusta_krr.core.result import ResourceType
+from robusta_krr.core.models.result import ResourceType
from robusta_krr.core.abstract.strategies import HistoryData
from robusta_krr.utils.configurable import Configurable
diff --git a/robusta_krr/core/result.py b/robusta_krr/core/models/result.py
index 89ba72b..89ba72b 100644
--- a/robusta_krr/core/result.py
+++ b/robusta_krr/core/models/result.py
diff --git a/robusta_krr/core/runner.py b/robusta_krr/core/runner.py
index 1029750..eb70f16 100644
--- a/robusta_krr/core/runner.py
+++ b/robusta_krr/core/runner.py
@@ -2,10 +2,10 @@ import asyncio
import itertools
from robusta_krr.core.models.config import Config
-from robusta_krr.core.models.kubernetes import KubernetesLoader
+from robusta_krr.core.integrations.kubernetes import KubernetesLoader
from robusta_krr.core.models.objects import K8sObjectData
-from robusta_krr.core.prometheus import PrometheusLoader
-from robusta_krr.core.result import ResourceAllocations, ResourceScan, ResourceType, Result
+from robusta_krr.core.integrations.prometheus import PrometheusLoader
+from robusta_krr.core.models.result import ResourceAllocations, ResourceScan, ResourceType, Result
from robusta_krr.core.abstract.strategies import ResourceRecommendation
from robusta_krr.utils.configurable import Configurable
from robusta_krr.utils.version import get_version
diff --git a/robusta_krr/formatters/json.py b/robusta_krr/formatters/json.py
index 650c292..2c3a51e 100644
--- a/robusta_krr/formatters/json.py
+++ b/robusta_krr/formatters/json.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from robusta_krr.core.abstract.formatters import BaseFormatter
-from robusta_krr.core.result import Result
+from robusta_krr.core.models.result import Result
class JSONFormatter(BaseFormatter):
diff --git a/robusta_krr/formatters/table.py b/robusta_krr/formatters/table.py
index 1f1439b..2fcd16f 100644
--- a/robusta_krr/formatters/table.py
+++ b/robusta_krr/formatters/table.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import itertools
from robusta_krr.core.abstract.formatters import BaseFormatter
-from robusta_krr.core.result import Result, ResourceType
+from robusta_krr.core.models.result import Result, ResourceType
from robusta_krr.utils import resource_units
from rich.table import Table
diff --git a/robusta_krr/formatters/yaml.py b/robusta_krr/formatters/yaml.py
index a493fa1..24be2d6 100644
--- a/robusta_krr/formatters/yaml.py
+++ b/robusta_krr/formatters/yaml.py
@@ -1,7 +1,7 @@
from __future__ import annotations
from robusta_krr.core.abstract.formatters import BaseFormatter
-from robusta_krr.core.result import Result
+from robusta_krr.core.models.result import Result
import yaml
import json