forked from k8s-ci-robot/test-infra
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patharchitecture.dot
79 lines (66 loc) · 2.47 KB
/
architecture.dot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Update SVG with this command:
# dot architecture.dot -Tsvg -oarchitecture.svg
digraph G {
label="Last updated 2017-07-13" # UPDATE WHEN CHANGED!
# external services
legend_ext, GCS, PubSub, GitHub, BigQuery [style=filled, fillcolor=gray, shape=square]
# things that host websites
legend_site, Triage, Mungegithub, Deck, Testgrid, Gubernator [shape=house, fillcolor=lightblue, style=filled]
# handy links!
Triage [href="https://go.k8s.io/triage"]
Gubernator [href="https://gubernator.k8s.io"]
Testgrid [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
ApiServer [label="Kubernetes\nAPI Server" shape=septagon]
}
subgraph cluster_legend {
label="Legend"
rank=sink
legend_ext [label="External\nService"]
legend_site [label="Serves\nHTTP"]
}
# CONNECTIONS START HERE:
# graphviz's dot rendering engine generally tries to lay things out
# 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"]
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"]
GCS -> Gubernator [dir="back"]
Job -> GCS [label="publish\nstarted.json, finished.json,\nbuild-log.txt, artifacts/"]
Plank -> GitHub [label="update PR status\ncomment failures"]
subgraph cluster_Prow {
Plank -> ApiServer
Plank -> Tot
Splice -> ApiServer
Deck -> ApiServer [label="read"]
Hook -> ApiServer [label="create ProwJob"]
ApiServer -> Job [label="start Pod"]
ApiServer -> Sinker [dir="back"]
ApiServer -> Horologium [dir="back"]
}
GCS -> PubSub
Kettle -> GCS [label="read"]
Kettle -> PubSub [label="read"]
Kettle -> BigQuery [label="write"]
BigQuery -> Triage [dir="back"]
GCS -> Testgrid [dir="back"]
}