Add support for 'containers.env.valueFrom.configMapKeyRef

This commit is contained in:
Philippe Merle
2025-01-03 09:14:03 +01:00
parent f476ee9f1d
commit 17cafd821f
2 changed files with 14 additions and 6 deletions

View File

@@ -190,13 +190,21 @@ class EdgesContext(list):
add_volumes(volumes)
return
def add_containers_env_valueFrom_secretKeyRef(self, path):
def add_containers_env_valueFrom(self, path):
containers = query_path(self.resource, path)
if containers is None:
return
target_resources = set()
for container in containers:
for env in container.get("env", []):
configMapKeyRefName = query_path(env, "valueFrom.configMapKeyRef.name")
if configMapKeyRefName != None:
target_resources.add(
"%s/%s/ConfigMap/v1" % (
configMapKeyRefName,
self.namespace
)
)
secretKeyRefName = query_path(env, "valueFrom.secretKeyRef.name")
if secretKeyRefName != None:
target_resources.add(

View File

@@ -65,7 +65,7 @@ nodes:
edges.add_all_resources_matching_labels("Pod", "spec.selector.matchLabels")
edges.add_service_account("spec.template.spec.serviceAccountName")
edges.add_all_volume_resources("spec.template.spec.volumes")
edges.add_containers_env_valueFrom_secretKeyRef("spec.template.spec.containers")
edges.add_containers_env_valueFrom("spec.template.spec.containers")
Deployment/apps/v1:
scope: Namespaced
diagram_node_classname: diagrams.k8s.compute.Deploy
@@ -74,7 +74,7 @@ nodes:
edges.add_service_account("spec.template.spec.serviceAccountName")
edges.add_wait_for_services("spec.template.spec.initContainers")
edges.add_all_volume_resources("spec.template.spec.volumes")
edges.add_containers_env_valueFrom_secretKeyRef("spec.template.spec.containers")
edges.add_containers_env_valueFrom("spec.template.spec.containers")
Endpoints/v1:
scope: Namespaced
diagram_node_classname: diagrams.k8s.network.Endpoint
@@ -144,7 +144,7 @@ nodes:
edges.add_all_resources_matching_labels("Pod", "spec.selector.matchLabels")
edges.add_service_account("spec.template.spec.serviceAccountName")
edges.add_all_volume_resources("spec.template.spec.volumes")
edges.add_containers_env_valueFrom_secretKeyRef("spec.template.spec.containers")
edges.add_containers_env_valueFrom("spec.template.spec.containers")
Namespace/v1:
scope: Cluster
diagram_node_classname: diagrams.k8s.group.NS
@@ -185,7 +185,7 @@ nodes:
edges.add_service_account("spec.serviceAccountName")
edges.add_wait_for_services("spec.initContainers")
edges.add_all_volume_resources("spec.volumes")
edges.add_containers_env_valueFrom_secretKeyRef("spec.containers")
edges.add_containers_env_valueFrom("spec.containers")
nid = "%s/Node/v1" % (
query_path(resource, "spec.nodeName"),
)
@@ -208,7 +208,7 @@ nodes:
edges.add_service_account("spec.template.spec.serviceAccountName")
edges.add_wait_for_services("spec.template.spec.initContainers")
edges.add_all_volume_resources("spec.template.spec.volumes")
edges.add_containers_env_valueFrom_secretKeyRef("spec.template.spec.containers")
edges.add_containers_env_valueFrom("spec.template.spec.containers")
ResourceQuota/v1:
scope: Namespaced
diagram_node_classname: diagrams.k8s.clusterconfig.Quota