github.com/shashidharatd/test-infra@v0.0.0-20171006011030-71304e1ca560/docs/architecture.dot (about)

     1  # Update SVG with this command:
     2  # dot architecture.dot -Tsvg -oarchitecture.svg
     3  
     4  digraph G {
     5  	label="Last updated 2017-07-13"  # UPDATE WHEN CHANGED!
     6  
     7  	# external services
     8  	legend_ext, GCS, PubSub, GitHub, BigQuery [style=filled, fillcolor=gray, shape=square]
     9  
    10  	# things that host websites
    11  	legend_site, Triage, Mungegithub, Deck, Testgrid, Gubernator [shape=house, fillcolor=lightblue, style=filled]
    12  
    13  	# handy links!
    14  	Triage [href="https://go.k8s.io/triage"]
    15  	Gubernator [href="https://k8s-gubernator.appspot.com"]
    16  	Testgrid [href="https://testgrid.k8s.io"]
    17  	Deck [href="https://prow.k8s.io"]
    18  	Mungegithub [href="https://submit-queue.k8s.io"]
    19  	BigQuery [href="https://bigquery.cloud.google.com/table/k8s-gubernator:build.week"]
    20  
    21  	subgraph cluster_Prow {
    22  		label="Prow"
    23  		color=blue
    24  		Hook [label="Hook\nhandle GitHub events"]
    25  		Splice [label="Splice\nstart batch jobs"]
    26  		Deck [label="Deck\nfrontend"]
    27  		Plank [label="Plank\nProwJob controller"]
    28  		Tot [label="Tot\nvend build numbers"]
    29  		Sinker [label="Sinker\ndeletes old\npods/ProwJobs"]
    30  		Horologium [label="Horologium\ncreate periodic ProwJobs"]
    31  		Job
    32  		ApiServer [label="Kubernetes\nAPI Server" shape=septagon]
    33  	}
    34  
    35  	subgraph cluster_legend {
    36  		label="Legend"
    37  		rank=sink
    38  		legend_ext [label="External\nService"]
    39  		legend_site [label="Serves\nHTTP"]
    40  	}
    41  
    42  	# CONNECTIONS START HERE:
    43  	# graphviz's dot rendering engine generally tries to lay things out
    44  	# top to bottom, following edges. dir="back" is an orientation hint
    45  	# to the layout engine, to try to keep hierarchy in a sensible order.
    46  	# hack to get legend near the bottom
    47  	Testgrid -> legend_ext [style="invis"]
    48  
    49  	Kettle [label="Kettle\nget GCS results into BQ"]
    50  
    51  	GitHub -> Gubernator [label="PR events"]
    52  	GitHub -> Mungegithub [dir="both"]
    53  	Mungegithub -> Splice [dir="back", label="read\nqueue"]
    54  	GitHub -> Hook [label="events"]
    55  	Mungegithub -> Deck [label="read\nbatch\njobs"]
    56  	GCS -> Gubernator [dir="back"]
    57  	Job -> GCS [label="publish\nstarted.json, finished.json,\nbuild-log.txt, artifacts/"]
    58  
    59  	Plank -> GitHub [label="update PR status\ncomment failures"]
    60  
    61  	subgraph cluster_Prow {
    62  		Plank -> ApiServer
    63  		Plank -> Tot
    64  		Splice -> ApiServer
    65  		Deck -> ApiServer [label="read"]
    66  		Hook -> ApiServer [label="create ProwJob"]
    67  		ApiServer -> Job [label="start Pod"]
    68  		ApiServer -> Sinker [dir="back"]
    69  		ApiServer -> Horologium [dir="back"]
    70  	}
    71  
    72  	GCS -> PubSub
    73  	Kettle -> GCS [label="read"]
    74  	Kettle -> PubSub [label="read"]
    75  	Kettle -> BigQuery [label="write"]
    76  	BigQuery -> Triage [dir="back"]
    77  	GCS -> Testgrid [dir="back"]
    78  
    79  }