github.com/shashidharatd/test-infra@v0.0.0-20171006011030-71304e1ca560/docs/architecture.svg (about) 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 3 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 <!-- Generated by graphviz version 2.36.0 (20140111.2315) 5 --> 6 <!-- Title: G Pages: 1 --> 7 <svg width="985pt" height="963pt" 8 viewBox="0.00 0.00 985.00 963.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 9 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 959)"> 10 <title>G</title> 11 <polygon fill="white" stroke="none" points="-4,4 -4,-959 981,-959 981,4 -4,4"/> 12 <text text-anchor="middle" x="488.5" y="-7.8" font-family="Times,serif" font-size="14.00">Last updated 2017-07-13</text> 13 <g id="clust1" class="cluster"><title>cluster_Prow</title> 14 <polygon fill="none" stroke="blue" points="218,-406 218,-751 896,-751 896,-406 218,-406"/> 15 <text text-anchor="middle" x="557" y="-735.8" font-family="Times,serif" font-size="14.00">Prow</text> 16 </g> 17 <g id="clust2" class="cluster"><title>cluster_legend</title> 18 <polygon fill="none" stroke="black" points="219,-31 219,-136 407,-136 407,-31 219,-31"/> 19 <text text-anchor="middle" x="313" y="-120.8" font-family="Times,serif" font-size="14.00">Legend</text> 20 </g> 21 <!-- legend_ext --> 22 <g id="node1" class="node"><title>legend_ext</title> 23 <polygon fill="gray" stroke="black" points="398.5,-103 337.5,-103 337.5,-41 398.5,-41 398.5,-103"/> 24 <text text-anchor="middle" x="368" y="-75.8" font-family="Times,serif" font-size="14.00">External</text> 25 <text text-anchor="middle" x="368" y="-60.8" font-family="Times,serif" font-size="14.00">Service</text> 26 </g> 27 <!-- GCS --> 28 <g id="node2" class="node"><title>GCS</title> 29 <polygon fill="gray" stroke="black" points="389.25,-318.5 346.75,-318.5 346.75,-275.5 389.25,-275.5 389.25,-318.5"/> 30 <text text-anchor="middle" x="368" y="-293.3" font-family="Times,serif" font-size="14.00">GCS</text> 31 </g> 32 <!-- PubSub --> 33 <g id="node3" class="node"><title>PubSub</title> 34 <polygon fill="gray" stroke="black" points="267.25,-223.5 208.75,-223.5 208.75,-164.5 267.25,-164.5 267.25,-223.5"/> 35 <text text-anchor="middle" x="238" y="-190.3" font-family="Times,serif" font-size="14.00">PubSub</text> 36 </g> 37 <!-- GCS->PubSub --> 38 <g id="edge18" class="edge"><title>GCS->PubSub</title> 39 <path fill="none" stroke="black" d="M346.533,-279.322C327.18,-264.286 298.298,-241.847 275.193,-223.896"/> 40 <polygon fill="black" stroke="black" points="277.33,-221.124 267.286,-217.753 273.035,-226.652 277.33,-221.124"/> 41 </g> 42 <!-- Testgrid --> 43 <g id="node10" class="node"><title>Testgrid</title> 44 <g id="a_node10"><a xlink:href="https://testgrid.k8s.io" xlink:title="Testgrid"> 45 <polygon fill="lightblue" stroke="black" points="417.216,-199.562 368,-212 318.784,-199.562 318.83,-179.438 417.17,-179.438 417.216,-199.562"/> 46 <text text-anchor="middle" x="368" y="-190.3" font-family="Times,serif" font-size="14.00">Testgrid</text> 47 </a> 48 </g> 49 </g> 50 <!-- GCS->Testgrid --> 51 <g id="edge23" class="edge"><title>GCS->Testgrid</title> 52 <path fill="none" stroke="black" d="M368,-264.837C368,-247.51 368,-226.606 368,-212.21"/> 53 <polygon fill="black" stroke="black" points="364.5,-265.073 368,-275.073 371.5,-265.073 364.5,-265.073"/> 54 </g> 55 <!-- Gubernator --> 56 <g id="node11" class="node"><title>Gubernator</title> 57 <g id="a_node11"><a xlink:href="https://k8s-gubernator.appspot.com" xlink:title="Gubernator"> 58 <polygon fill="lightblue" stroke="black" points="772.494,-199.562 710,-212 647.506,-199.562 647.564,-179.438 772.436,-179.438 772.494,-199.562"/> 59 <text text-anchor="middle" x="710" y="-190.3" font-family="Times,serif" font-size="14.00">Gubernator</text> 60 </a> 61 </g> 62 </g> 63 <!-- GCS->Gubernator --> 64 <g id="edge7" class="edge"><title>GCS->Gubernator</title> 65 <path fill="none" stroke="black" d="M399.298,-286.757C463.299,-267.856 608.715,-224.912 675.407,-205.216"/> 66 <polygon fill="black" stroke="black" points="397.993,-283.493 389.394,-289.682 399.975,-290.206 397.993,-283.493"/> 67 </g> 68 <!-- GitHub --> 69 <g id="node4" class="node"><title>GitHub</title> 70 <polygon fill="gray" stroke="black" points="741.25,-954.5 684.75,-954.5 684.75,-897.5 741.25,-897.5 741.25,-954.5"/> 71 <text text-anchor="middle" x="713" y="-922.3" font-family="Times,serif" font-size="14.00">GitHub</text> 72 </g> 73 <!-- Mungegithub --> 74 <g id="node8" class="node"><title>Mungegithub</title> 75 <g id="a_node8"><a xlink:href="https://submit-queue.k8s.io" xlink:title="Mungegithub"> 76 <polygon fill="lightblue" stroke="black" points="681.956,-846.562 610,-859 538.044,-846.562 538.111,-826.438 681.889,-826.438 681.956,-846.562"/> 77 <text text-anchor="middle" x="610" y="-837.3" font-family="Times,serif" font-size="14.00">Mungegithub</text> 78 </a> 79 </g> 80 </g> 81 <!-- GitHub->Mungegithub --> 82 <g id="edge3" class="edge"><title>GitHub->Mungegithub</title> 83 <path fill="none" stroke="black" d="M676.641,-895.701C663.134,-884.817 648.102,-872.703 635.738,-862.74"/> 84 <polygon fill="black" stroke="black" points="674.599,-898.551 684.582,-902.1 678.992,-893.1 674.599,-898.551"/> 85 <polygon fill="black" stroke="black" points="637.639,-859.777 627.656,-856.228 633.246,-865.228 637.639,-859.777"/> 86 </g> 87 <!-- GitHub->Gubernator --> 88 <g id="edge2" class="edge"><title>GitHub->Gubernator</title> 89 <path fill="none" stroke="black" d="M741.622,-919.85C798.862,-908.732 922,-880.358 922,-842 922,-842 922,-842 922,-296 922,-232.665 843.929,-209.004 782.541,-200.19"/> 90 <polygon fill="black" stroke="black" points="782.834,-196.698 772.46,-198.852 781.913,-203.637 782.834,-196.698"/> 91 <text text-anchor="middle" x="949.5" y="-568.3" font-family="Times,serif" font-size="14.00">PR events</text> 92 </g> 93 <!-- Hook --> 94 <g id="node12" class="node"><title>Hook</title> 95 <ellipse fill="none" stroke="black" cx="793" cy="-687" rx="95.1892" ry="26.7407"/> 96 <text text-anchor="middle" x="793" y="-690.8" font-family="Times,serif" font-size="14.00">Hook</text> 97 <text text-anchor="middle" x="793" y="-675.8" font-family="Times,serif" font-size="14.00">handle GitHub events</text> 98 </g> 99 <!-- GitHub->Hook --> 100 <g id="edge5" class="edge"><title>GitHub->Hook</title> 101 <path fill="none" stroke="black" d="M722.334,-897.349C736.879,-854.258 764.945,-771.113 780.983,-723.599"/> 102 <polygon fill="black" stroke="black" points="784.332,-724.623 784.214,-714.029 777.699,-722.384 784.332,-724.623"/> 103 <text text-anchor="middle" x="764.5" y="-837.3" font-family="Times,serif" font-size="14.00">events</text> 104 </g> 105 <!-- BigQuery --> 106 <g id="node5" class="node"><title>BigQuery</title> 107 <g id="a_node5"><a xlink:href="https://bigquery.cloud.google.com/table/k8s-gubernator:build.week" xlink:title="BigQuery"> 108 <polygon fill="gray" stroke="black" points="140,-332 70,-332 70,-262 140,-262 140,-332"/> 109 <text text-anchor="middle" x="105" y="-293.3" font-family="Times,serif" font-size="14.00">BigQuery</text> 110 </a> 111 </g> 112 </g> 113 <!-- Triage --> 114 <g id="node7" class="node"><title>Triage</title> 115 <g id="a_node7"><a xlink:href="https://go.k8s.io/triage" xlink:title="Triage"> 116 <polygon fill="lightblue" stroke="black" points="146.166,-199.562 105,-212 63.8336,-199.562 63.8721,-179.438 146.128,-179.438 146.166,-199.562"/> 117 <text text-anchor="middle" x="105" y="-190.3" font-family="Times,serif" font-size="14.00">Triage</text> 118 </a> 119 </g> 120 </g> 121 <!-- BigQuery->Triage --> 122 <g id="edge22" class="edge"><title>BigQuery->Triage</title> 123 <path fill="none" stroke="black" d="M105,-251.772C105,-237.747 105,-223.066 105,-212.148"/> 124 <polygon fill="black" stroke="black" points="101.5,-251.806 105,-261.806 108.5,-251.806 101.5,-251.806"/> 125 </g> 126 <!-- legend_site --> 127 <g id="node6" class="node"><title>legend_site</title> 128 <polygon fill="lightblue" stroke="black" points="318.987,-82.3298 273,-105.428 227.013,-82.3298 227.056,-44.9563 318.944,-44.9563 318.987,-82.3298"/> 129 <text text-anchor="middle" x="273" y="-75.8" font-family="Times,serif" font-size="14.00">Serves</text> 130 <text text-anchor="middle" x="273" y="-60.8" font-family="Times,serif" font-size="14.00">HTTP</text> 131 </g> 132 <!-- Deck --> 133 <g id="node9" class="node"><title>Deck</title> 134 <g id="a_node9"><a xlink:href="https://prow.k8s.io" xlink:title="Deck\nfrontend"> 135 <polygon fill="lightblue" stroke="black" points="522.285,-697.33 468,-720.428 413.715,-697.33 413.765,-659.956 522.235,-659.956 522.285,-697.33"/> 136 <text text-anchor="middle" x="468" y="-690.8" font-family="Times,serif" font-size="14.00">Deck</text> 137 <text text-anchor="middle" x="468" y="-675.8" font-family="Times,serif" font-size="14.00">frontend</text> 138 </a> 139 </g> 140 </g> 141 <!-- Mungegithub->Deck --> 142 <g id="edge6" class="edge"><title>Mungegithub->Deck</title> 143 <path fill="none" stroke="black" d="M596.351,-826.113C590.109,-819.72 582.64,-812.012 576,-805 548.677,-776.147 517.986,-742.806 496.324,-719.115"/> 144 <polygon fill="black" stroke="black" points="498.67,-716.494 489.342,-711.471 493.502,-721.215 498.67,-716.494"/> 145 <text text-anchor="middle" x="591" y="-793.3" font-family="Times,serif" font-size="14.00">read</text> 146 <text text-anchor="middle" x="591" y="-778.3" font-family="Times,serif" font-size="14.00">batch</text> 147 <text text-anchor="middle" x="591" y="-763.3" font-family="Times,serif" font-size="14.00">jobs</text> 148 </g> 149 <!-- Splice --> 150 <g id="node13" class="node"><title>Splice</title> 151 <ellipse fill="none" stroke="black" cx="610" cy="-687" rx="70.0054" ry="26.7407"/> 152 <text text-anchor="middle" x="610" y="-690.8" font-family="Times,serif" font-size="14.00">Splice</text> 153 <text text-anchor="middle" x="610" y="-675.8" font-family="Times,serif" font-size="14.00">start batch jobs</text> 154 </g> 155 <!-- Mungegithub->Splice --> 156 <g id="edge4" class="edge"><title>Mungegithub->Splice</title> 157 <path fill="none" stroke="black" d="M610,-816.21C610,-788.417 610,-742.594 610,-713.917"/> 158 <polygon fill="black" stroke="black" points="606.5,-816.243 610,-826.243 613.5,-816.243 606.5,-816.243"/> 159 <text text-anchor="middle" x="626.5" y="-785.8" font-family="Times,serif" font-size="14.00">read</text> 160 <text text-anchor="middle" x="626.5" y="-770.8" font-family="Times,serif" font-size="14.00">queue</text> 161 </g> 162 <!-- ApiServer --> 163 <g id="node19" class="node"><title>ApiServer</title> 164 <polygon fill="none" stroke="black" points="543.325,-565.403 531.179,-590.485 482,-601.648 432.821,-590.485 420.675,-565.403 454.708,-545.288 509.292,-545.288 543.325,-565.403"/> 165 <text text-anchor="middle" x="482" y="-575.8" font-family="Times,serif" font-size="14.00">Kubernetes</text> 166 <text text-anchor="middle" x="482" y="-560.8" font-family="Times,serif" font-size="14.00">API Server</text> 167 </g> 168 <!-- Deck->ApiServer --> 169 <g id="edge13" class="edge"><title>Deck->ApiServer</title> 170 <path fill="none" stroke="black" d="M471.247,-659.792C473.036,-645.351 475.29,-627.163 477.271,-611.171"/> 171 <polygon fill="black" stroke="black" points="480.77,-611.396 478.526,-601.041 473.823,-610.535 480.77,-611.396"/> 172 <text text-anchor="middle" x="488" y="-624.3" font-family="Times,serif" font-size="14.00">read</text> 173 </g> 174 <!-- Testgrid->legend_ext --> 175 <!-- Hook->ApiServer --> 176 <g id="edge14" class="edge"><title>Hook->ApiServer</title> 177 <path fill="none" stroke="black" d="M736.319,-665.405C680.671,-645.186 596.193,-614.491 540.07,-594.099"/> 178 <polygon fill="black" stroke="black" points="541.22,-590.793 530.626,-590.668 538.829,-597.373 541.22,-590.793"/> 179 <text text-anchor="middle" x="689" y="-624.3" font-family="Times,serif" font-size="14.00">create ProwJob</text> 180 </g> 181 <!-- Splice->ApiServer --> 182 <g id="edge12" class="edge"><title>Splice->ApiServer</title> 183 <path fill="none" stroke="black" d="M582.854,-662.036C563.333,-644.802 536.872,-621.441 515.951,-602.973"/> 184 <polygon fill="black" stroke="black" points="518.044,-600.151 508.231,-596.157 513.411,-605.399 518.044,-600.151"/> 185 </g> 186 <!-- Plank --> 187 <g id="node14" class="node"><title>Plank</title> 188 <ellipse fill="none" stroke="black" cx="311" cy="-687" rx="84.2802" ry="26.7407"/> 189 <text text-anchor="middle" x="311" y="-690.8" font-family="Times,serif" font-size="14.00">Plank</text> 190 <text text-anchor="middle" x="311" y="-675.8" font-family="Times,serif" font-size="14.00">ProwJob controller</text> 191 </g> 192 <!-- Plank->GitHub --> 193 <g id="edge9" class="edge"><title>Plank->GitHub</title> 194 <path fill="none" stroke="black" d="M321.869,-713.647C339.315,-751.58 377.256,-822.12 432,-859 507.317,-909.739 616.814,-921.716 674.357,-924.384"/> 195 <polygon fill="black" stroke="black" points="674.347,-927.886 684.477,-924.781 674.622,-920.891 674.347,-927.886"/> 196 <text text-anchor="middle" x="480.5" y="-844.8" font-family="Times,serif" font-size="14.00">update PR status</text> 197 <text text-anchor="middle" x="480.5" y="-829.8" font-family="Times,serif" font-size="14.00">comment failures</text> 198 </g> 199 <!-- Tot --> 200 <g id="node15" class="node"><title>Tot</title> 201 <ellipse fill="none" stroke="black" cx="314" cy="-572" rx="88.0829" ry="26.7407"/> 202 <text text-anchor="middle" x="314" y="-575.8" font-family="Times,serif" font-size="14.00">Tot</text> 203 <text text-anchor="middle" x="314" y="-560.8" font-family="Times,serif" font-size="14.00">vend build numbers</text> 204 </g> 205 <!-- Plank->Tot --> 206 <g id="edge11" class="edge"><title>Plank->Tot</title> 207 <path fill="none" stroke="black" d="M311.688,-660.076C312.086,-645.109 312.592,-626.047 313.029,-609.576"/> 208 <polygon fill="black" stroke="black" points="316.538,-609.285 313.305,-599.195 309.54,-609.099 316.538,-609.285"/> 209 </g> 210 <!-- Plank->ApiServer --> 211 <g id="edge10" class="edge"><title>Plank->ApiServer</title> 212 <path fill="none" stroke="black" d="M346.431,-662.586C373.914,-644.425 412.054,-619.222 440.881,-600.172"/> 213 <polygon fill="black" stroke="black" points="443.093,-602.906 449.506,-594.473 439.234,-597.066 443.093,-602.906"/> 214 </g> 215 <!-- Sinker --> 216 <g id="node16" class="node"><title>Sinker</title> 217 <ellipse fill="none" stroke="black" cx="482" cy="-452" rx="68.9457" ry="37.4533"/> 218 <text text-anchor="middle" x="482" y="-463.3" font-family="Times,serif" font-size="14.00">Sinker</text> 219 <text text-anchor="middle" x="482" y="-448.3" font-family="Times,serif" font-size="14.00">deletes old</text> 220 <text text-anchor="middle" x="482" y="-433.3" font-family="Times,serif" font-size="14.00">pods/ProwJobs</text> 221 </g> 222 <!-- Horologium --> 223 <g id="node17" class="node"><title>Horologium</title> 224 <ellipse fill="none" stroke="black" cx="677" cy="-452" rx="108.281" ry="26.7407"/> 225 <text text-anchor="middle" x="677" y="-455.8" font-family="Times,serif" font-size="14.00">Horologium</text> 226 <text text-anchor="middle" x="677" y="-440.8" font-family="Times,serif" font-size="14.00">create periodic ProwJobs</text> 227 </g> 228 <!-- Job --> 229 <g id="node18" class="node"><title>Job</title> 230 <ellipse fill="none" stroke="black" cx="368" cy="-452" rx="27" ry="18"/> 231 <text text-anchor="middle" x="368" y="-448.3" font-family="Times,serif" font-size="14.00">Job</text> 232 </g> 233 <!-- Job->GCS --> 234 <g id="edge8" class="edge"><title>Job->GCS</title> 235 <path fill="none" stroke="black" d="M368,-433.746C368,-408.259 368,-360.163 368,-328.603"/> 236 <polygon fill="black" stroke="black" points="371.5,-328.59 368,-318.59 364.5,-328.59 371.5,-328.59"/> 237 <text text-anchor="middle" x="440" y="-384.3" font-family="Times,serif" font-size="14.00">publish</text> 238 <text text-anchor="middle" x="440" y="-369.3" font-family="Times,serif" font-size="14.00">started.json, finished.json,</text> 239 <text text-anchor="middle" x="440" y="-354.3" font-family="Times,serif" font-size="14.00">build-log.txt, artifacts/</text> 240 </g> 241 <!-- ApiServer->Sinker --> 242 <g id="edge16" class="edge"><title>ApiServer->Sinker</title> 243 <path fill="none" stroke="black" d="M482,-535.056C482,-520.644 482,-504.053 482,-489.578"/> 244 <polygon fill="black" stroke="black" points="478.5,-535.104 482,-545.104 485.5,-535.104 478.5,-535.104"/> 245 </g> 246 <!-- ApiServer->Horologium --> 247 <g id="edge17" class="edge"><title>ApiServer->Horologium</title> 248 <path fill="none" stroke="black" d="M525.959,-544.399C559.365,-524.184 604.926,-496.614 637.249,-477.055"/> 249 <polygon fill="black" stroke="black" points="524.057,-541.459 517.313,-549.631 527.681,-547.448 524.057,-541.459"/> 250 </g> 251 <!-- ApiServer->Job --> 252 <g id="edge15" class="edge"><title>ApiServer->Job</title> 253 <path fill="none" stroke="black" d="M452.741,-546.32C444.836,-539.314 436.42,-531.537 429,-524 413.942,-508.704 398.185,-490.292 386.458,-476.051"/> 254 <polygon fill="black" stroke="black" points="389.088,-473.739 380.054,-468.204 383.665,-478.164 389.088,-473.739"/> 255 <text text-anchor="middle" x="453.5" y="-512.3" font-family="Times,serif" font-size="14.00">start Pod</text> 256 </g> 257 <!-- Kettle --> 258 <g id="node20" class="node"><title>Kettle</title> 259 <ellipse fill="none" stroke="black" cx="105" cy="-452" rx="105.039" ry="26.7407"/> 260 <text text-anchor="middle" x="105" y="-455.8" font-family="Times,serif" font-size="14.00">Kettle</text> 261 <text text-anchor="middle" x="105" y="-440.8" font-family="Times,serif" font-size="14.00">get GCS results into BQ</text> 262 </g> 263 <!-- Kettle->GCS --> 264 <g id="edge19" class="edge"><title>Kettle->GCS</title> 265 <path fill="none" stroke="black" d="M155.202,-428.23C175.05,-418.798 197.882,-407.408 218,-396 261.099,-371.56 308.633,-339.596 338.4,-318.931"/> 266 <polygon fill="black" stroke="black" points="340.475,-321.751 346.674,-313.16 336.47,-316.01 340.475,-321.751"/> 267 <text text-anchor="middle" x="302" y="-369.3" font-family="Times,serif" font-size="14.00">read</text> 268 </g> 269 <!-- Kettle->PubSub --> 270 <g id="edge20" class="edge"><title>Kettle->PubSub</title> 271 <path fill="none" stroke="black" d="M120.468,-425.166C125.827,-416.021 131.792,-405.617 137,-396 167.45,-339.767 200.268,-273.236 219.967,-232.588"/> 272 <polygon fill="black" stroke="black" points="223.122,-234.103 224.325,-223.577 216.82,-231.056 223.122,-234.103"/> 273 <text text-anchor="middle" x="218" y="-293.3" font-family="Times,serif" font-size="14.00">read</text> 274 </g> 275 <!-- Kettle->BigQuery --> 276 <g id="edge21" class="edge"><title>Kettle->BigQuery</title> 277 <path fill="none" stroke="black" d="M105,-425.046C105,-402.466 105,-369.252 105,-342.447"/> 278 <polygon fill="black" stroke="black" points="108.5,-342.152 105,-332.152 101.5,-342.152 108.5,-342.152"/> 279 <text text-anchor="middle" x="119" y="-369.3" font-family="Times,serif" font-size="14.00">write</text> 280 </g> 281 </g> 282 </svg>