mirror of
https://github.com/khuedoan/homelab.git
synced 2025-02-07 09:41:08 +07:00
Add diagram as code
This commit is contained in:
parent
8af0b77f46
commit
1dc6f8aad9
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,6 +2,7 @@ build/
|
||||
terraform-*-tmp-*/
|
||||
|
||||
*.iso
|
||||
*.jpg
|
||||
*.log
|
||||
.terraform*
|
||||
backend.tfvars
|
||||
|
40
docs/diagrams/provision.py
Normal file
40
docs/diagrams/provision.py
Normal file
@ -0,0 +1,40 @@
|
||||
from diagrams import Cluster, Diagram
|
||||
from diagrams.generic.os import LinuxGeneral
|
||||
from diagrams.k8s.ecosystem import Helm, Kustomize
|
||||
from diagrams.k8s.infra import Node
|
||||
from diagrams.onprem.client import Client
|
||||
from diagrams.onprem.compute import Server
|
||||
from diagrams.onprem.container import Docker
|
||||
from diagrams.onprem.gitops import ArgoCD
|
||||
from diagrams.onprem.iac import Ansible, Terraform
|
||||
|
||||
with Diagram("Provision (sperated by logical layers)", outformat="jpg"):
|
||||
controller = Client("Controller (PC or laptop)")
|
||||
bare_metal_machines = Server(f"Bare metal machine(s)")
|
||||
|
||||
with Cluster("./metal"):
|
||||
ansible = Ansible("Ansible")
|
||||
pxe = Docker("Ephemeral PXE server")
|
||||
os = LinuxGeneral(f"CoreOS")
|
||||
|
||||
controller >> ansible
|
||||
ansible >> pxe
|
||||
pxe >> os
|
||||
os >> bare_metal_machines
|
||||
|
||||
with Cluster("./infra"):
|
||||
terraform = Terraform("RKE")
|
||||
kubernetes_nodes = Node("Kuberentes node(s)")
|
||||
argocd = ArgoCD("ArgoCD")
|
||||
|
||||
controller >> terraform
|
||||
terraform >> kubernetes_nodes
|
||||
terraform >> argocd
|
||||
|
||||
with Cluster("./apps"):
|
||||
kustomize = Kustomize("Kustomize")
|
||||
charts = Helm("Helm charts")
|
||||
|
||||
controller >> kustomize
|
||||
kustomize >> argocd
|
||||
argocd >> charts
|
Loading…
Reference in New Issue
Block a user