Files
tf_provider/docs/20_discovery/resource_graph.dot
T
2026-06-30 15:45:24 +04:00

38 lines
2.0 KiB
Plaintext

digraph Resources {
rankdir=LR;
node [shape=rectangle, style=filled, fillcolor="#EFEFEF", fontname="Helvetica"];
// Nodes: resource (type/name) with key params
Provider [label="provider: nubes\n(api_endpoint, api_token)", fillcolor="#E8F4FF"];
Organization [label="nubes_organization\n(id, display_name)"];
VDC [label="nubes_vdc\n(id, display_name, organization_uid, provider_vdc, network_pool)"];
Edge [label="nubes_edge\n(id, display_name, vdc_uid, external_network)"];
VApp [label="nubes_vapp\n(id, display_name, vdc_uid, edge_uid, vapp_name)"];
VM [label="nubes_vm_instance\n(id, display_name, vapp_uid, vm_name, user_public_key, ip_space_name, access_port_list, access_ip_list)"];
TLSKey [label="tls_private_key\n(private_key_pem, public_key_openssh)", fillcolor="#FFF4E8"];
LocalFile [label="local_sensitive_file\n(filename, content = tls_private_key.private_key_pem)"];
RemoteState [label="data.terraform_remote_state.vapp\n(outputs.vapp_id)", fillcolor="#F0FFF0"];
Consumer [label="consumer module\n(e.g. client_package_windows)\nuses access_ip_list"];
// Dependency edges (resource -> resource it depends on) with parameter labels
VDC -> Organization [label="organization_uid", fontsize=10];
Edge -> VDC [label="vdc_uid", fontsize=10];
VApp -> VDC [label="vdc_uid", fontsize=10];
VApp -> Edge [label="edge_uid", fontsize=10];
VM -> VApp [label="vapp_uid", fontsize=10];
VM -> TLSKey [label="user_public_key <- public_key_openssh", fontsize=10];
LocalFile -> TLSKey [label="content <- private_key_pem", fontsize=10];
Consumer -> VM [label="access_ip_list (jsondecode(...)[0])", fontsize=10];
VM -> RemoteState [label="vapp_uid = vapp.outputs.vapp_id (remote)", fontsize=10, style=dashed];
// Provider relations (dotted to many)
Provider -> VDC [style=dotted];
Provider -> Edge [style=dotted];
Provider -> VApp [style=dotted];
Provider -> VM [style=dotted];
Provider -> Organization [style=dotted];
// Visual tweaks
edge [fontname="Helvetica", fontsize=10];
}