def test_build_graph_from_definitions(self):
        relative_file_path = "../checks/example_AllowedCapabilities/cronjob-PASSED.yaml"
        definitions = {}
        file = os.path.realpath(os.path.join(TEST_DIRNAME, relative_file_path))
        (definitions[relative_file_path], definitions_raw) = parse(file)
        resource = definitions[relative_file_path][0]

        graph_manager = KubernetesGraphManager(
            db_connector=NetworkxConnector())
        local_graph = graph_manager.build_graph_from_definitions(definitions)
        self.assertEqual(1, len(local_graph.vertices))
        self.assert_vertex(local_graph.vertices[0], resource)
Beispiel #2
0
 def __init__(self, args):
     graph_manager = KubernetesGraphManager(
         db_connector=NetworkxConnector())
     super().__init__(graph_manager,
                      "checkov/kubernetes/checks/graph_checks",
                      os.path.dirname(__file__) + "/test_checks",
                      'kubernetes', __file__, args)
Beispiel #3
0
    def test_build_graph_from_source_directory_no_rendering(self):
        root_dir = os.path.realpath(
            os.path.join(TEST_DIRNAME, "../runner/resources"))
        graph_manager = KubernetesGraphManager(
            db_connector=NetworkxConnector())
        local_graph, definitions = graph_manager.build_graph_from_source_directory(
            root_dir, render_variables=False)

        expected_resources_by_file = {
            os.path.join("/example.yaml"): ["Service.default.kafka-hs"],
            os.path.join("/example_multiple.yaml"):
            ["PodDisruptionBudget.a.a", "Service.default.a"]
        }
        self.assertEqual(3, len(local_graph.vertices))
        self.assertEqual(
            3, len(local_graph.vertices_by_block_type[BlockType.RESOURCE]))

        for v in local_graph.vertices:
            self.assertIn(v.name, expected_resources_by_file[v.path])
Beispiel #4
0
    def __init__(self,
                 graph_class=KubernetesLocalGraph,
                 db_connector=NetworkxConnector(),
                 source="Kubernetes",
                 graph_manager=None,
                 external_registries=None):
        self.external_registries = [] if external_registries is None else external_registries
        self.check_type = "kubernetes"
        self.graph_class = graph_class
        self.graph_manager = \
            graph_manager if graph_manager else KubernetesGraphManager(source=source, db_connector=db_connector)

        self.graph_registry = get_graph_checks_registry(self.check_type)
        self.definitions_raw = {}
Beispiel #5
0
    def __init__(
            self,
            graph_class: Type[LocalGraph] = KubernetesLocalGraph,
            db_connector: NetworkxConnector = NetworkxConnector(),
            source: str = "Kubernetes",
            graph_manager: Optional[GraphManager] = None,
            external_registries: Optional[List[BaseRegistry]] = None) -> None:
        self.external_registries = [] if external_registries is None else external_registries
        self.check_type = "kubernetes"
        self.graph_class = graph_class
        self.graph_manager = \
            graph_manager if graph_manager else KubernetesGraphManager(source=source, db_connector=db_connector)

        self.graph_registry = get_graph_checks_registry(self.check_type)
        self.definitions_raw = {}
Beispiel #6
0
 def __init__(self, args):
     graph_manager = KubernetesGraphManager(
         db_connector=NetworkxConnector())
     super().__init__(graph_manager, checks, 'kubernetes', __file__, args)