from diagrams import Cluster, Diagram from diagrams.generic.os import LinuxGeneral from diagrams.k8s.ecosystem import Helm from diagrams.k8s.infra import Node from diagrams.onprem.container import Docker from diagrams.onprem.gitops import ArgoCD graph_attr = { "pad": "0" } with Diagram("Provisioning flow", graph_attr=graph_attr, outformat="png", show=False): with Cluster("./metal"): pxe = Docker("PXE server") os = LinuxGeneral(f"Rocky Linux") cluster = Node("K3s") pxe >> os >> cluster with Cluster("./bootstrap"): argocd = ArgoCD("ArgoCD") cluster >> argocd with Cluster("./system"): system_charts = Helm("System charts") argocd >> system_charts with Cluster("./platform"): platform_charts = Helm("Platform charts") argocd >> platform_charts with Cluster("./apps"): app_charts = Helm("Application charts") argocd >> app_charts