diff --git a/bin/kube-diagrams b/bin/kube-diagrams index 42a1e78..8f34fd9 100755 --- a/bin/kube-diagrams +++ b/bin/kube-diagrams @@ -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( diff --git a/bin/kube-diagrams.yaml b/bin/kube-diagrams.yaml index 8055144..255cdd0 100644 --- a/bin/kube-diagrams.yaml +++ b/bin/kube-diagrams.yaml @@ -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