mirror of
https://github.com/philippemerle/KubeDiagrams.git
synced 2026-05-18 09:46:33 +00:00
Add support for Cronjob resources
This commit is contained in:
10
README.md
10
README.md
@@ -62,11 +62,12 @@ options:
|
||||
|
||||
### Kubernetes resources
|
||||
|
||||
Supported `kind`/`apiVersion` resource types are 26 ones:
|
||||
Supported `kind`/`apiVersion` resource types are 27 ones:
|
||||
* ClusterRole/rbac.authorization.k8s.io/v1
|
||||
* ClusterRoleBinding/rbac.authorization.k8s.io/v1
|
||||
* CustomResourceDefinition/apiextensions.k8s.io/v1
|
||||
* ConfigMap/v1
|
||||
* CronJob/batch/v1
|
||||
* CustomResourceDefinition/apiextensions.k8s.io/v1
|
||||
* DaemonSet/apps/v1
|
||||
* Deployment/apps/v1
|
||||
* Group/rbac.authorization.k8s.io/v1
|
||||
@@ -94,7 +95,7 @@ Supported `kind`/`apiVersion` resource types are 26 ones:
|
||||
|
||||
**Note**: The mapping for any Kubernetes custom resources can be also defined into **KubeDiagrams** configuration files as illustrated in [examples/k0s/KubeDiagrams.yml](examples/k0s/KubeDiagrams.yml#L10).
|
||||
|
||||
Currently, unsupported `kind`/`apiGroup` resource types are 33 ones:
|
||||
Currently, unsupported `kind`/`apiGroup` resource types are 32 ones:
|
||||
* Binding/
|
||||
* ComponentStatus/
|
||||
* Endpoints/
|
||||
@@ -112,7 +113,6 @@ Currently, unsupported `kind`/`apiGroup` resource types are 33 ones:
|
||||
* SelfSubjectAccessReview/authorization.k8s.io
|
||||
* SelfSubjectRulesReview/authorization.k8s.io
|
||||
* SubjectAccessReview/authorization.k8s.io
|
||||
* CronJob/batch
|
||||
* CertificateSigningRequest/certificates.k8s.io
|
||||
* Lease/coordination.k8s.io
|
||||
* EndpointSlice/discovery.k8s.io
|
||||
@@ -150,5 +150,5 @@ This project is licensed under the GPL-3.0 license - see the [LICENSE](LICENSE)
|
||||
## Todo List
|
||||
|
||||
* Add more examples
|
||||
* Add missed Kubernetes resource types as at least CronJob, Endpoint, LimitRange, NetworkPolicy, and ResourceQuota
|
||||
* Add missed Kubernetes resource types as at least Endpoint, LimitRange, NetworkPolicy, and ResourceQuota
|
||||
* Make `nodes/*/edges` more declarative
|
||||
|
||||
@@ -285,6 +285,17 @@ class EdgesContext(list):
|
||||
"REFERENCE"
|
||||
])
|
||||
|
||||
def add_owned_resources(self):
|
||||
uid = query_path(self.resource, "metadata.uid")
|
||||
for _, resource in resource_cluster.clusters["Namespace: %s" % self.namespace].resources.items():
|
||||
for ownerReference in query_path(resource, "metadata.ownerReferences", []):
|
||||
if ownerReference.get("uid") == uid:
|
||||
print(f"{resource['metadata']['name']}/{resource['metadata']['namespace']}/{resource['kind']}/{resource['apiVersion']}")
|
||||
self.append([
|
||||
f"{resource['metadata']['name']}/{resource['metadata']['namespace']}/{resource['kind']}/{resource['apiVersion']}",
|
||||
"OWNER"
|
||||
])
|
||||
|
||||
# Parse arguments
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="kube-diagrams",
|
||||
@@ -408,6 +419,7 @@ with Diagram("", filename=args.output, show=False, direction="TB", outformat=arg
|
||||
print("Edges script:\n", code_to_exec)
|
||||
print("Resource:")
|
||||
pprint(resource)
|
||||
raise
|
||||
# generate diagram edges
|
||||
for edge in edges:
|
||||
edge_rid = edge[0]
|
||||
|
||||
@@ -10,6 +10,9 @@ edges:
|
||||
xlabel: controller
|
||||
color: black
|
||||
style: dotted
|
||||
OWNER:
|
||||
color: black
|
||||
style: dotted
|
||||
DEPENDENCE:
|
||||
color: darkgrey
|
||||
UNDEFINED:
|
||||
@@ -38,14 +41,19 @@ nodes:
|
||||
edges: |
|
||||
edges.add_role("roleRef")
|
||||
edges.add_subjects()
|
||||
CustomResourceDefinition/apiextensions.k8s.io/v1:
|
||||
scope: Cluster
|
||||
diagram_node_classname: diagrams.k8s.others.CRD
|
||||
# no edges
|
||||
ConfigMap/v1:
|
||||
scope: Namespaced
|
||||
diagram_node_classname: diagrams.k8s.podconfig.CM
|
||||
# no edges
|
||||
CronJob/batch/v1:
|
||||
scope: Namespaced
|
||||
diagram_node_classname: diagrams.k8s.compute.Cronjob
|
||||
edges: |
|
||||
edges.add_owned_resources()
|
||||
CustomResourceDefinition/apiextensions.k8s.io/v1:
|
||||
scope: Cluster
|
||||
diagram_node_classname: diagrams.k8s.others.CRD
|
||||
# no edges
|
||||
DaemonSet/apps/v1:
|
||||
scope: Namespaced
|
||||
diagram_node_classname: diagrams.k8s.compute.DS
|
||||
|
||||
Reference in New Issue
Block a user