discovery_plane.d2 1.48 KB
Newer Older
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
80
81
82
83
84
85
86
87
88
89
direction: down

title: "Discovery Plane" {
  style.font-size: 36
  shape: text
  near: top-center
}

components: "Components" {
  style.font-size: 32
  direction: right

  frontend: Frontend {
    style.font-size: 24
    shape: rectangle
  }
  router: Router {
    style.font-size: 24
    shape: rectangle
  }
  planner: Planner {
    style.font-size: 24
    shape: rectangle
  }
}

discovery: "Discovery Layer" {
  style.font-size: 32
  direction: right

  k8s: "Kubernetes Backend" {
    style.font-size: 28

    crds: "DynamoWorkerMetadata\nCRDs" {
      style.font-size: 22
      shape: rectangle
    }
    eps: "EndpointSlices" {
      style.font-size: 22
      shape: rectangle
    }
    api: "K8s API Watch" {
      style.font-size: 22
      shape: rectangle
    }
  }

  etcd_backend: "etcd Backend (default)" {
    style.font-size: 28

    store: "etcd" {
      style.font-size: 22
      shape: cylinder
    }
    keys: "Key hierarchy\n/services/{ns}/{comp}/{ep}" {
      style.font-size: 22
      shape: text
    }
    lease: "Lease-based cleanup\nTTL: 10s" {
      style.font-size: 22
      shape: text
    }
  }
}

workers: "Workers" {
  style.font-size: 32
  direction: right

  w1: "Worker 1" {
    style.font-size: 24
    shape: rectangle
  }
  w2: "Worker 2" {
    style.font-size: 24
    shape: rectangle
  }
  w3: "Worker N" {
    style.font-size: 24
    shape: rectangle
  }
}

components -> discovery: "discover" {
  style.font-size: 22
}
workers -> discovery: "register" {
  style.font-size: 22
}