Files

133 lines
3.8 KiB
Plaintext

diagram:
clusters:
EMEA:
name: "K8s Cluster: EMEA"
graph_attr:
bgcolor: transparent
pencolor: black
style: dashed,rounded
clusters:
cert-manager:
name: "cert-manager"
type: diagrams.k8s.group.Namespace
graph_attr:
bgcolor: transparent
pencolor: black
style: dashed,rounded
clusters:
appcm:
name: ""
nodes:
cert-manager:
name: "Certificate Management"
type: diagrams.onprem.certificates.CertManager
minio-tls:
name: "minio-tls"
type: diagrams.k8s.group.Namespace
graph_attr:
bgcolor: transparent
pencolor: black
style: dashed,rounded
clusters:
appminio:
name: ""
nodes:
minio-tls:
name: "S3 Storage"
icon: icons/minio.png
nodes:
Admin:
name: Admin / DevOps
type: diagrams.azure.general.Supportrequests
Users:
name: Users
type: diagrams.azure.identity.Groups
PKI:
name: PKI
type: diagrams.aws.security.CertificateAuthority
edges:
- from: Admin
to: myapp-mgmt/myapp/Service/v1
xlabel: SSH
color: orange
- from: Users
to: myapp/myapp/Ingress/networking.k8s.io/v1
xlabel: HTTPS
color: "#00AB00"
- from: myapp/myapp/Ingress/networking.k8s.io/v1
to: EMEA.cert-manager.appcm.cert-manager
- from: EMEA.cert-manager.appcm.cert-manager
to: PKI
xlabel: HTTPS
color: "#00AB00"
- from: myapp-db/myapp/postgresql/acid.zalan.do/v1
to: EMEA.minio-tls.appminio.minio-tls
xlabel: HTTPS
color: "#00AB00"
- from: myapp/myapp/Deployment/apps/v1
to: myapp-db/myapp/postgresql/acid.zalan.do/v1
generate_diagram_in_cluster: EMEA
nodes:
CiliumNetworkPolicy/cilium.io/v2:
scope: Namespaced
custom_icon: icons/cilium.png
postgresql/acid.zalan.do/v1:
scope: Namespaced
diagram_node_classname: diagrams.onprem.database.Postgresql
edges: |
edges.add_edge_to(
"spec",
get_name(resource),
get_namespace(resource),
"ConfigMap",
"v1",
"REFERENCE"
)
# add edge from postgresql to MinIO ConfigMap
edges.add_edge_to(
"spec",
"minio",
get_namespace(resource),
"ConfigMap",
"v1",
"REFERENCE"
)
# add edge from postgresql to MinIO Secret
edges.add_edge_to(
"spec",
"minio",
get_namespace(resource),
"Secret",
"v1",
"REFERENCE"
)
Ingress/networking.k8s.io/v1:
scope: Namespaced
nodes: |
for idx, tls in enumerate(query_path(resource, "spec.tls", [])):
nodes.append({
"kind": "Secret",
"apiVersion": "v1",
"metadata": {
"name": tls.get("secretName"),
"namespace": get_namespace(resource),
"labels": {
**query_path(resource, "metadata.labels", {})
}
}
})
edges: |
edges.add_service("spec.defaultBackend.service.name")
for ridx, rule in enumerate(query_path(resource, "spec.rules", [])):
for pidx, path in enumerate(query_path(rule, "http.paths", [])):
edges.add_service(f"spec.rules[{ridx}].http.paths[{pidx}].backend.service.name", name=query_path(path, "backend.service.name"))
for idx, tls in enumerate(query_path(resource, "spec.tls", [])):
edges.add_edge_to(
f"spec.tls[{idx}]",
tls.get("secretName"),
get_namespace(resource),
"Secret",
"v1",
"REFERENCE"
)