From 25b26f5a727b6e3ef7d35be2c98e07dcd1f91486 Mon Sep 17 00:00:00 2001 From: Caleb Woodbine Date: Tue, 2 Mar 2021 10:21:39 +1300 Subject: [PATCH 1/4] Update test infra architecture diagram --- docs/architecture.svg | 285 +----------------------------------------- 1 file changed, 3 insertions(+), 282 deletions(-) diff --git a/docs/architecture.svg b/docs/architecture.svg index e9eb14da9055..86f10bf1b080 100644 --- a/docs/architecture.svg +++ b/docs/architecture.svg @@ -1,282 +1,3 @@ - - - - - - -G - -Last updated 2017-07-13 -cluster_Prow - -Prow - -cluster_legend - -Legend - - -legend_ext - -External -Service - - -GCS - -GCS - - -PubSub - -PubSub - - -GCS->PubSub - - - - -Testgrid - - -Testgrid - - - - -GCS->Testgrid - - - - -Gubernator - - -Gubernator - - - - -GCS->Gubernator - - - - -GitHub - -GitHub - - -Mungegithub - - -Mungegithub - - - - -GitHub->Mungegithub - - - - - -GitHub->Gubernator - - -PR events - - -Hook - -Hook -handle GitHub events - - -GitHub->Hook - - -events - - -BigQuery - - -BigQuery - - - - -Triage - - -Triage - - - - -BigQuery->Triage - - - - -legend_site - -Serves -HTTP - - -Deck - - -Deck -frontend - - - - -Mungegithub->Deck - - -read -batch -jobs - - -Splice - -Splice -start batch jobs - - -Mungegithub->Splice - - -read -queue - - -ApiServer - -Kubernetes -API Server - - -Deck->ApiServer - - -read - - - -Hook->ApiServer - - -create ProwJob - - -Splice->ApiServer - - - - -Plank - -Plank -ProwJob controller - - -Plank->GitHub - - -update PR status -comment failures - - -Tot - -Tot -vend build numbers - - -Plank->Tot - - - - -Plank->ApiServer - - - - -Sinker - -Sinker -deletes old -pods/ProwJobs - - -Horologium - -Horologium -create periodic ProwJobs - - -Job - -Job - - -Job->GCS - - -publish -started.json, finished.json, -build-log.txt, artifacts/ - - -ApiServer->Sinker - - - - -ApiServer->Horologium - - - - -ApiServer->Job - - -start Pod - - -Kettle - -Kettle -get GCS results into BQ - - -Kettle->GCS - - -read - - -Kettle->PubSub - - -read - - -Kettle->BigQuery - - -write - - - + + +
GitHub
GitHub
Kubernetes Test Infra
Kubernetes Test Infra
Updated 2020-03-02
Updated 2020-03-02
ghproxy
ghproxy
prow
prow
boskos
boskos
gubernator
gubernator
testgrid (closed)
testgrid (closed)
GCS
GCS
triage
triage
triage
triage
BigQuery
BigQuery
kettle
kettle
Pub/Sub
Pub/Sub
metrics
metrics
InfluxDB
InfluxDB
prometheus
prometheus
velodrome
velodrome
greenhouse
greenhouse
ProwJobs
ProwJobs
GCE
GCE
GKE
GKE
AWS
AWS
prowjob
prowjob
k8s
k8s
other
other
stock
stock
cloud
cloud
spyglass
spyglass
Viewer does not support full SVG 1.1
\ No newline at end of file From 4c639863bd5b0dc6af71da7b1abe1924a93aa9f9 Mon Sep 17 00:00:00 2001 From: Caleb Woodbine Date: Tue, 2 Mar 2021 11:56:48 +1300 Subject: [PATCH 2/4] Update sizes and colours --- docs/architecture.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/architecture.svg b/docs/architecture.svg index 86f10bf1b080..eb52d67ea20f 100644 --- a/docs/architecture.svg +++ b/docs/architecture.svg @@ -1,3 +1,3 @@ -
GitHub
GitHub
Kubernetes Test Infra
Kubernetes Test Infra
Updated 2020-03-02
Updated 2020-03-02
ghproxy
ghproxy
prow
prow
boskos
boskos
gubernator
gubernator
testgrid (closed)
testgrid (closed)
GCS
GCS
triage
triage
triage
triage
BigQuery
BigQuery
kettle
kettle
Pub/Sub
Pub/Sub
metrics
metrics
InfluxDB
InfluxDB
prometheus
prometheus
velodrome
velodrome
greenhouse
greenhouse
ProwJobs
ProwJobs
GCE
GCE
GKE
GKE
AWS
AWS
prowjob
prowjob
k8s
k8s
other
other
stock
stock
cloud
cloud
spyglass
spyglass
Viewer does not support full SVG 1.1
\ No newline at end of file +
Kubernetes Test Infra
Kubernetes Test Infra
Updated 2020-03-02
Updated 2020-03-02
prowjob
prowjob
k8s
k8s
other
other
stock
stock
cloud
cloud
GitHub
GitHub
ghproxy
ghproxy
prow
prow
boskos
boskos
gubernator
gubernator
testgrid (closed)
testgrid (closed)
GCS
GCS
triage
triage
triage
triage
BigQuery
BigQuery
kettle
kettle
Pub/Sub
Pub/Sub
metrics
metrics
InfluxDB
InfluxDB
prometheus
prometheus
velodrome
velodrome
greenhouse
greenhouse
ProwJobs
ProwJobs
GCE
GCE
GKE
GKE
AWS
AWS
spyglass
spyglass
Viewer does not support full SVG 1.1
\ No newline at end of file From 9bffcca89da69827d0bad48bba8a406a635a9e5c Mon Sep 17 00:00:00 2001 From: Caleb Woodbine Date: Thu, 4 Mar 2021 10:28:18 +1300 Subject: [PATCH 3/4] Update connections and lines --- docs/architecture.svg | 521 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 520 insertions(+), 1 deletion(-) diff --git a/docs/architecture.svg b/docs/architecture.svg index eb52d67ea20f..c6d232c6c526 100644 --- a/docs/architecture.svg +++ b/docs/architecture.svg @@ -1,3 +1,522 @@ + -
Kubernetes Test Infra
Kubernetes Test Infra
Updated 2020-03-02
Updated 2020-03-02
prowjob
prowjob
k8s
k8s
other
other
stock
stock
cloud
cloud
GitHub
GitHub
ghproxy
ghproxy
prow
prow
boskos
boskos
gubernator
gubernator
testgrid (closed)
testgrid (closed)
GCS
GCS
triage
triage
triage
triage
BigQuery
BigQuery
kettle
kettle
Pub/Sub
Pub/Sub
metrics
metrics
InfluxDB
InfluxDB
prometheus
prometheus
velodrome
velodrome
greenhouse
greenhouse
ProwJobs
ProwJobs
GCE
GCE
GKE
GKE
AWS
AWS
spyglass
spyglass
Viewer does not support full SVG 1.1
\ No newline at end of file + + + + + + + + + + + + + +
+
+
+Kubernetes Test Infra
+
+
+
+ +Kubernetes Test Infra +
+
+ + + + +
+
+
+Updated 2020-03-02
+
+
+
+ +Updated 2020-03-02 +
+
+ + + + +
+
+
+prowjob
+
+
+
+ +prowjob +
+
+ + + + +
+
+
+k8s
+
+
+
+ +k8s +
+
+ + + + +
+
+
+other
+
+
+
+ +other +
+
+ + + + +
+
+
+stock
+
+
+
+ +stock +
+
+ + + + +
+
+
+cloud
+
+
+
+ +cloud +
+
+ + + + +
+
+
+GitHub through ghproxy
+
+
+
+ +GitHub through ghproxy +
+
+ + + + +
+
+
+prow
+
+
+
+ +prow +
+
+ + + + + + + +
+
+
+boskos
+
+
+
+ +boskos +
+
+ + + + + + + +
+
+
+gubernator
+
+
+
+ +gubernator +
+
+ + + + + + +
+
+
+testgrid (closed)
+
+
+
+ +testgrid (closed) +
+
+ + + + + + + + + + + + +
+
+
+GCS
+
+
+
+ +GCS +
+
+ + + + +
+
+
+triage
+
+
+
+ +triage +
+
+ + + + + + + + +
+
+
+triage
+
+
+
+ +triage +
+
+ + + + + + + + + +
+
+
+BigQuery
+
+
+
+ +BigQuery +
+
+ + + + + + +
+
+
+kettle
+
+
+
+ +kettle +
+
+ + + + + + + + + +
+
+
+Pub/Sub
+
+
+
+ +Pub/Sub +
+
+ + + + + + +
+
+
+metrics
+
+
+
+ +metrics +
+
+ + + + + +
+
+
+InfluxDB
+
+
+
+ +InfluxDB +
+
+ + + + + + + + +
+
+
+prometheus
+
+
+
+ +prometheus +
+
+ + + + + + + + +
+
+
+velodrome
+
+
+
+ +velodrome +
+
+ + + + + + + + +
+
+
+greenhouse
+
+
+
+ +greenhouse +
+
+ + + + + + +
+
+
+ProwJobs
+
+
+
+ +ProwJobs +
+
+ + + + + + + + + + + + + + + +
+
+
+GCE
+
+
+
+ +GCE +
+
+ + + + + + + + + + +
+
+
+GKE
+
+
+
+ +GKE +
+
+ + + + + + + +
+
+
+AWS
+
+
+
+ +AWS +
+
+ + + + + + + + + + +
+
+
+spyglass
+
+
+
+ +spyglass +
+
+ + + + + + +
+ + + + +Viewer does not support full SVG 1.1 + + +
From 0fa93378f41798e4dc5bd689aa8f80e87767aa6a Mon Sep 17 00:00:00 2001 From: Caleb Woodbine Date: Thu, 4 Mar 2021 16:21:54 +1300 Subject: [PATCH 4/4] Base diagram svg exported off of DOT format --- docs/architecture.dot | 61 ++- docs/architecture.svg | 995 ++++++++++++++++++++---------------------- 2 files changed, 515 insertions(+), 541 deletions(-) diff --git a/docs/architecture.dot b/docs/architecture.dot index 780e511a80cf..93cc66f69efb 100644 --- a/docs/architecture.dot +++ b/docs/architecture.dot @@ -2,30 +2,35 @@ # dot architecture.dot -Tsvg -oarchitecture.svg digraph G { - label="Last updated 2017-07-13" # UPDATE WHEN CHANGED! + label="Kubernetes Test Infrastructure (Last updated 2020-03-04)" # UPDATE WHEN CHANGED! + labelloc="t" + graph[compound=true] # external services - legend_ext, GCS, PubSub, GitHub, BigQuery [style=filled, fillcolor=gray, shape=square] + legend_ext, GCS, PubSub, "GitHub\nthrough\nghproxy", BigQuery [style=filled, fillcolor=gray, shape=square] # things that host websites - legend_site, Triage, Mungegithub, Deck, Testgrid, Gubernator [shape=house, fillcolor=lightblue, style=filled] + legend_site Spyglass, Deck, "Testgrid (closed)", Gubernator, Velodrome, Boskos, Greenhouse [shape=house, fillcolor=lightblue, style=filled] + + legend_cloud GCE, GKE, AWS [shape=doubleoctagon, fillcolor=gray, style=filled] + + legend_prowjob Metrics, Triage, ProwJobs [shape=square, fillcolor=dodgerblue1, style=filled] + + legend_stock InfluxDB, Prometheus [shape=cylinder, fillcolor=gray98, style=filled] # handy links! Triage [href="https://go.k8s.io/triage"] Gubernator [href="https://gubernator.k8s.io"] - Testgrid [href="https://testgrid.k8s.io"] + "Testgrid (closed)" [href="https://testgrid.k8s.io"] Deck [href="https://prow.k8s.io"] - Mungegithub [href="https://submit-queue.k8s.io"] BigQuery [href="https://bigquery.cloud.google.com/table/k8s-gubernator:build.week"] subgraph cluster_Prow { label="Prow" color=blue Hook [label="Hook\nhandle GitHub events"] - Splice [label="Splice\nstart batch jobs"] Deck [label="Deck\nfrontend"] Plank [label="Plank\nProwJob controller"] - Tot [label="Tot\nvend build numbers"] Sinker [label="Sinker\ndeletes old\npods/ProwJobs"] Horologium [label="Horologium\ncreate periodic ProwJobs"] Job @@ -37,6 +42,9 @@ digraph G { rank=sink legend_ext [label="External\nService"] legend_site [label="Serves\nHTTP"] + legend_cloud [label="Cloud\nor\nCloud service"] + legend_prowjob [label="ProwJobs"] + legend_stock [label="Hosted stock"] } # CONNECTIONS START HERE: @@ -44,23 +52,20 @@ digraph G { # top to bottom, following edges. dir="back" is an orientation hint # to the layout engine, to try to keep hierarchy in a sensible order. # hack to get legend near the bottom - Testgrid -> legend_ext [style="invis"] + "Testgrid (closed)" -> legend_ext [style="invis"] Kettle [label="Kettle\nget GCS results into BQ"] - GitHub -> Gubernator [label="PR events"] - GitHub -> Mungegithub [dir="both"] - Mungegithub -> Splice [dir="back", label="read\nqueue"] - GitHub -> Hook [label="events"] - Mungegithub -> Deck [label="read\nbatch\njobs"] + "GitHub\nthrough\nghproxy" -> Gubernator [label="PR events", dir="both"] + "GitHub\nthrough\nghproxy" -> Hook [label="events"] GCS -> Gubernator [dir="back"] - Job -> GCS [label="publish\nstarted.json, finished.json,\nbuild-log.txt, artifacts/"] + Gubernator -> "Testgrid (closed)" [dir="back"] + Job -> GCS [label="publish\nstarted.json, finished.json,\nbuild-log.txt, artifacts/", dir="both"] - Plank -> GitHub [label="update PR status\ncomment failures"] + Plank -> "GitHub\nthrough\nghproxy" [label="update PR status\ncomment failures", ltail="cluster_Prow"] subgraph cluster_Prow { Plank -> ApiServer - Plank -> Tot Splice -> ApiServer Deck -> ApiServer [label="read"] Hook -> ApiServer [label="create ProwJob"] @@ -70,10 +75,24 @@ digraph G { } GCS -> PubSub - Kettle -> GCS [label="read"] - Kettle -> PubSub [label="read"] + PubSub -> Kettle [label="read"] Kettle -> BigQuery [label="write"] - BigQuery -> Triage [dir="back"] - GCS -> Testgrid [dir="back"] - + BigQuery -> Triage + BigQuery -> Metrics + GCS -> Triage [dir="back"] + GCS -> "Testgrid (closed)" + GCS -> Spyglass + Spyglass -> GKE [dir="both"] + Metrics -> InfluxDB + Prometheus -> InfluxDB + InfluxDB -> Velodrome + Plank -> Prometheus [ltail="cluster_Prow"] + Boskos -> Prometheus + Boskos -> ProwJobs [dir="both"] + Boskos -> GCE [dir="both"] + Boskos -> GKE [dir="both"] + ProwJobs -> AWS [dir="both"] + ProwJobs -> GKE [dir="both"] + ProwJobs -> GCE [dir="both"] + ProwJobs -> Greenhouse [dir="both"] } diff --git a/docs/architecture.svg b/docs/architecture.svg index c6d232c6c526..9e4ad3e7e5a2 100644 --- a/docs/architecture.svg +++ b/docs/architecture.svg @@ -1,522 +1,477 @@ - - - - - - - - - - - - - - - - -
-
-
-Kubernetes Test Infra
-
-
-
- -Kubernetes Test Infra -
-
- - - - -
-
-
-Updated 2020-03-02
-
-
-
- -Updated 2020-03-02 -
-
- - - - -
-
-
-prowjob
-
-
-
- -prowjob -
-
- - - - -
-
-
-k8s
-
-
-
- -k8s -
-
- - - - -
-
-
-other
-
-
-
- -other -
-
- - - - -
-
-
-stock
-
-
-
- -stock -
-
- - - - -
-
-
-cloud
-
-
-
- -cloud -
-
- - - - -
-
-
-GitHub through ghproxy
-
-
-
- -GitHub through ghproxy -
-
- - - - -
-
-
-prow
-
-
-
- -prow -
-
- - - - - - - -
-
-
-boskos
-
-
-
- -boskos -
-
- - - - - - - -
-
-
-gubernator
-
-
-
- -gubernator -
-
- - - - - - -
-
-
-testgrid (closed)
-
-
-
- -testgrid (closed) -
-
- - - - - - - - - - - - -
-
-
-GCS
-
-
-
- -GCS -
-
- - - - -
-
-
-triage
-
-
-
- -triage -
-
- - - - - - - - -
-
-
-triage
-
-
-
- -triage -
-
- - - - - - - - - -
-
-
-BigQuery
-
-
-
- -BigQuery -
-
- - - - - - -
-
-
-kettle
-
-
-
- -kettle -
-
- - - - - - - - - -
-
-
-Pub/Sub
-
-
-
- -Pub/Sub -
-
- - - - - - -
-
-
-metrics
-
-
-
- -metrics -
-
- - - - - -
-
-
-InfluxDB
-
-
-
- -InfluxDB -
-
- - - - - - - - -
-
-
-prometheus
-
-
-
- -prometheus -
-
- - - - - - - - -
-
-
-velodrome
-
-
-
- -velodrome -
-
- - - - - - - - -
-
-
-greenhouse
-
-
-
- -greenhouse -
-
- - - - - - -
-
-
-ProwJobs
-
-
-
- -ProwJobs -
-
- - - - - - - - - - - - - - - -
-
-
-GCE
-
-
-
- -GCE -
-
- - - - - - - - - - -
-
-
-GKE
-
-
-
- -GKE -
-
- - - - - - - -
-
-
-AWS
-
-
-
- -AWS -
-
- - - - - - - - - - -
-
-
-spyglass
-
-
-
- -spyglass -
-
- - - - - - -
- - - - -Viewer does not support full SVG 1.1 + + + + + + +G + +Kubernetes Test Infrastructure (Last updated 2020-03-04) + +cluster_Prow + +Prow + + +cluster_legend + +Legend + + + +legend_ext + +External +Service + + + +GCS + +GCS + + + +PubSub + +PubSub + + + +GCS->PubSub + + + + + +Spyglass + +Spyglass + + + +GCS->Spyglass + + + + + +Testgrid (closed) + + +Testgrid (closed) + + + + + +GCS->Testgrid (closed) + + + + + +Gubernator + + +Gubernator + + + + + +GCS->Gubernator + + + + + +Triage + + +Triage - + + + + +GCS->Triage + + + + + +Kettle + +Kettle +get GCS results into BQ + + + +PubSub->Kettle + + +read + + + +GitHub\nthrough\nghproxy + +GitHub +through +ghproxy + + + +GitHub\nthrough\nghproxy->Gubernator + + + +PR events + + + +Hook + +Hook +handle GitHub events + + + +GitHub\nthrough\nghproxy->Hook + + +events + + + +BigQuery + + +BigQuery + + + + + +Metrics + +Metrics + + + +BigQuery->Metrics + + + + + +BigQuery->Triage + + + + + +legend_site + +Serves +HTTP + + + +GKE + + +GKE + + + +Spyglass->GKE + + + + + + +Deck + + +Deck +frontend + + + + + +ApiServer + +Kubernetes +API Server + + + +Deck->ApiServer + + +read + + + + +Gubernator->Testgrid (closed) + + + + + +Velodrome + +Velodrome + + + +Boskos + +Boskos + + + +GCE + + +GCE + + + +Boskos->GCE + + + + + + +Boskos->GKE + + + + + + +ProwJobs + +ProwJobs + + + +Boskos->ProwJobs + + + + + + +Prometheus + + +Prometheus + + + +Boskos->Prometheus + + + + + +Greenhouse + +Greenhouse + + + +legend_cloud + +Cloud +or +Cloud service + + + +AWS + + +AWS + + + +legend_prowjob + +ProwJobs + + + +InfluxDB + + +InfluxDB + + + +Metrics->InfluxDB + + + + + +ProwJobs->Greenhouse + + + + + + +ProwJobs->GCE + + + + + + +ProwJobs->GKE + + + + + + +ProwJobs->AWS + + + + + + +legend_stock + +Hosted stock + + + +InfluxDB->Velodrome + + + + + +Prometheus->InfluxDB + + + + + +Hook->ApiServer + + +create ProwJob + + + +Plank + +Plank +ProwJob controller + + + +Plank->GitHub\nthrough\nghproxy + + +update PR status +comment failures + + + +Plank->Prometheus + + + + + +Plank->ApiServer + + + + + +Sinker + +Sinker +deletes old +pods/ProwJobs + + + +Horologium + +Horologium +create periodic ProwJobs + + + +Job + +Job + + + +Job->GCS + + + +publish +started.json, finished.json, +build-log.txt, artifacts/ + + + +ApiServer->Sinker + + + + + +ApiServer->Horologium + + + + + +ApiServer->Job + + +start Pod + + + +Kettle->BigQuery + + +write + + + +Splice + +Splice + + + +Splice->ApiServer + + + +