Improve diagram nodes clusters management

This commit is contained in:
Philippe Merle
2024-12-27 13:57:54 +01:00
parent d00b2117de
commit 3043f9edaa
2 changed files with 31 additions and 19 deletions

View File

@@ -309,25 +309,31 @@ with open(args.filename) as f:
cluster = resource_cluster.get_or_create_cluster("Namespace: %s" % name)
else:
cluster = resource_cluster
cluster.resources[rid] = resource
else: # scope = Namespaced
rid = name + "/" + get_namespace(resource) + "/" + get_type(resource)
resources[rid] = resource
cluster = resource_cluster.get_or_create_cluster("Namespace: %s" % get_namespace(resource))
def process_clusters(cluster, resource, clusters):
for cluster_config in clusters:
data = query_path(resource, cluster_config["path"])
if data != None:
cluster = cluster.get_or_create_cluster("%s: %s" % (cluster_config["label"], data))
def process_clusters(cluster, resource, clusters):
for cluster_config in clusters:
if "label" in cluster_config:
label = cluster_config["label"]
labels = query_path(resource, "metadata.labels")
if labels != None and label in labels:
cluster = cluster.get_or_create_cluster("%s: %s" % (
cluster_config["title"],
labels[label]
))
clusters.remove(cluster_config)
return process_clusters(cluster, resource, clusters)
return cluster
cluster = process_clusters(
cluster,
resource,
copy.deepcopy(config.get("clusters", []))
)
cluster.resources[rid] = resource
return cluster
cluster = process_clusters(
cluster,
resource,
copy.deepcopy(config.get("clusters", []))
)
cluster.resources[rid] = resource
if resource["kind"] == "List":
for r in resource["items"]:

View File

@@ -11,12 +11,18 @@ edges:
UNDEFINED:
color: red
clusters:
- label: K8s Application
path: metadata.labels.k8s-app
- label: Application
path: metadata.labels.app
- label: Microservice
path: metadata.labels.service
- label: app
title: Application
- label: service
title: Microservice
- label: app.kubernetes.io/instance
title: K8s Application
- label: k8s-app
title: K8s Application
- label: kubernetes.io/bootstrapping
title: K8s Bootstrapping
- label: tier
title: K8s Tier
nodes:
ClusterRole/rbac.authorization.k8s.io/v1:
scope: Cluster