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 }