Skip to content

Commit 9db28d6

Browse files
authored
[Breaking] listen_address renamed/remapped in config (TraceMachina#476)
Moved `listen_address` to `listener.http.socket_address` mapping. This future proofs our config a bit more so we can add other kinds of listeners that are not http based (like unix sockets). In doing this we also moved the http(s)/http2 related fields into the same struct.
1 parent dbe61d2 commit 9db28d6

File tree

14 files changed

+235
-109
lines changed

14 files changed

+235
-109
lines changed

deployment-examples/docker-compose/local-storage-cas.json

+18-6
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@
4040
}
4141
},
4242
"servers": [{
43-
"listen_address": "0.0.0.0:50051",
43+
"listener": {
44+
"http": {
45+
"socket_address": "0.0.0.0:50051"
46+
}
47+
},
4448
"services": {
4549
"cas": {
4650
"main": {
@@ -61,18 +65,26 @@
6165
}
6266
}, {
6367
// Only publish metrics on a private port.
64-
"listen_address": "0.0.0.0:50061",
68+
"listener": {
69+
"http": {
70+
"socket_address": "0.0.0.0:50061"
71+
}
72+
},
6573
"services": {
6674
"experimental_prometheus": {
6775
"path": "/metrics"
6876
}
6977
}
7078
},
7179
{
72-
"listen_address": "0.0.0.0:50071",
73-
"tls": {
74-
"cert_file": "/root/example-do-not-use-in-prod-rootca.crt",
75-
"key_file": "/root/example-do-not-use-in-prod-key.pem"
80+
"listener": {
81+
"http": {
82+
"socket_address": "0.0.0.0:50071",
83+
"tls": {
84+
"cert_file": "/root/example-do-not-use-in-prod-rootca.crt",
85+
"key_file": "/root/example-do-not-use-in-prod-key.pem"
86+
}
87+
}
7688
},
7789
"services": {
7890
"cas": {

deployment-examples/docker-compose/scheduler.json

+10-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@
2727
}
2828
},
2929
"servers": [{
30-
"listen_address": "0.0.0.0:50052",
30+
"listener": {
31+
"http": {
32+
"socket_address": "0.0.0.0:50052",
33+
}
34+
},
3135
"services": {
3236
"ac": {
3337
"main": {
@@ -49,7 +53,11 @@
4953
}
5054
}
5155
}, {
52-
"listen_address": "0.0.0.0:50061",
56+
"listener": {
57+
"http": {
58+
"socket_address": "0.0.0.0:50061",
59+
}
60+
},
5361
"services": {
5462
// Note: This should be served on a different port, because it has
5563
// a different permission set than the other services.

deployment-examples/terraform/AWS/scripts/cas.json

+6-2
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@
110110
"verify_size": true,
111111
"verify_hash": true
112112
}
113-
},
113+
}
114114
},
115115
"schedulers": {
116116
"MAIN_SCHEDULER": {
@@ -122,7 +122,11 @@
122122
}
123123
},
124124
"servers": [{
125-
"listen_address": "0.0.0.0:50051",
125+
"listener": {
126+
"http": {
127+
"socket_address": "0.0.0.0:50051",
128+
}
129+
},
126130
"services": {
127131
"cas": {
128132
"main": {

deployment-examples/terraform/AWS/scripts/scheduler.json

+10-2
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,11 @@
119119
}
120120
},
121121
"servers": [{
122-
"listen_address": "0.0.0.0:50052",
122+
"listener": {
123+
"http": {
124+
"socket_address": "0.0.0.0:50052",
125+
}
126+
},
123127
"services": {
124128
"ac": {
125129
"main": {
@@ -141,7 +145,11 @@
141145
}
142146
}
143147
}, {
144-
"listen_address": "0.0.0.0:50061",
148+
"listener": {
149+
"http": {
150+
"socket_address": "0.0.0.0:50061",
151+
}
152+
},
145153
"services": {
146154
"experimental_prometheus": {
147155
"path": "/metrics"

deployment-examples/terraform/GCP/module/scripts/browser_proxy.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@
4040
"servers": [{
4141
// Non-public apis. We re-export the CAS services so we don't need to go through
4242
// an external load balancer.
43-
"listen_address": "0.0.0.0:50052",
43+
"listener": {
44+
"http": {
45+
"socket_address": "0.0.0.0:50052",
46+
}
47+
},
4448
"services": {
4549
"experimental_prometheus": {
4650
"path": "/metrics"

deployment-examples/terraform/GCP/module/scripts/cas.json

+23-15
Original file line numberDiff line numberDiff line change
@@ -77,18 +77,22 @@
7777
}
7878
},
7979
"servers": [{
80-
"listen_address": "0.0.0.0:50051",
81-
"tls": {
82-
"cert_file": "${NATIVELINK_CERT_FILE:-}",
83-
"key_file": "${NATIVELINK_KEY_FILE:-}"
84-
},
85-
"advanced_http": {
86-
"http2_keep_alive_interval": 10
87-
},
88-
// External apis support compression.
89-
"compression": {
90-
"send_compression_algorithm": "gzip",
91-
"accepted_compression_algorithms": ["gzip"]
80+
"listener": {
81+
"http": {
82+
"socket_address": "0.0.0.0:50051",
83+
"tls": {
84+
"cert_file": "${NATIVELINK_CERT_FILE:-}",
85+
"key_file": "${NATIVELINK_KEY_FILE:-}"
86+
},
87+
"advanced_http": {
88+
"http2_keep_alive_interval": 10
89+
},
90+
// External apis support compression.
91+
"compression": {
92+
"send_compression_algorithm": "gzip",
93+
"accepted_compression_algorithms": ["gzip"]
94+
}
95+
}
9296
},
9397
"services": {
9498
"cas": {
@@ -113,9 +117,13 @@
113117
}, {
114118
// Non-public apis. We re-export the CAS services so we don't need to go through
115119
// an external load balancer.
116-
"listen_address": "0.0.0.0:50052",
117-
"advanced_http": {
118-
"http2_keep_alive_interval": 10
120+
"listener": {
121+
"http": {
122+
"socket_address": "0.0.0.0:50052",
123+
"advanced_http": {
124+
"http2_keep_alive_interval": 10
125+
}
126+
}
119127
},
120128
"services": {
121129
"experimental_prometheus": {

deployment-examples/terraform/GCP/module/scripts/scheduler.json

+25-13
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,17 @@
8686
}
8787
},
8888
"servers": [{
89-
"listen_address": "0.0.0.0:50051",
90-
"tls": {
91-
"cert_file": "${nativelink_CERT_FILE:-}",
92-
"key_file": "${nativelink_KEY_FILE:-}"
93-
},
94-
"advanced_http": {
95-
"http2_keep_alive_interval": 10
89+
"listener": {
90+
"http": {
91+
"socket_address": "0.0.0.0:50051",
92+
"tls": {
93+
"cert_file": "${nativelink_CERT_FILE:-}",
94+
"key_file": "${nativelink_KEY_FILE:-}"
95+
},
96+
"advanced_http": {
97+
"http2_keep_alive_interval": 10
98+
}
99+
}
96100
},
97101
"services": {
98102
"ac": {
@@ -117,9 +121,13 @@
117121
}, {
118122
// Non-public apis. We re-export the Scheduler services on a non-tls connection
119123
// for local services that don't need a load balancer.
120-
"listen_address": "0.0.0.0:50052",
121-
"advanced_http": {
122-
"http2_keep_alive_interval": 10
124+
"listener": {
125+
"http": {
126+
"socket_address": "0.0.0.0:50052",
127+
"advanced_http": {
128+
"http2_keep_alive_interval": 10
129+
}
130+
}
123131
},
124132
"services": {
125133
"experimental_prometheus": {
@@ -146,9 +154,13 @@
146154
}
147155
}, {
148156
// Internal Worker endpoint.
149-
"listen_address": "0.0.0.0:50061",
150-
"advanced_http": {
151-
"http2_keep_alive_interval": 10
157+
"listener": {
158+
"http": {
159+
"socket_address": "0.0.0.0:50061",
160+
"advanced_http": {
161+
"http2_keep_alive_interval": 10
162+
}
163+
}
152164
},
153165
"services": {
154166
// Note: This should be served on a different port, because it has

deployment-examples/terraform/GCP/module/scripts/worker.json

+14-6
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,24 @@
8484
}
8585
}],
8686
"servers": [{
87-
"listen_address": "0.0.0.0:50051",
88-
"advanced_http": {
89-
"http2_keep_alive_interval": 10
87+
"listener": {
88+
"http": {
89+
"socket_address": "0.0.0.0:50051",
90+
"advanced_http": {
91+
"http2_keep_alive_interval": 10
92+
}
93+
}
9094
},
9195
// Only /status will be served.
9296
"services": {}
9397
}, {
94-
"listen_address": "0.0.0.0:50052",
95-
"advanced_http": {
96-
"http2_keep_alive_interval": 10
98+
"listener": {
99+
"http": {
100+
"socket_address": "0.0.0.0:50052",
101+
"advanced_http": {
102+
"http2_keep_alive_interval": 10
103+
}
104+
}
97105
},
98106
"services": {
99107
"experimental_prometheus": {

nativelink-config/README.md

+8-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,14 @@ A very basic configuration that is a pure in-memory store is:
3535
}
3636
},
3737
"servers": [{
38-
"listen_address": "0.0.0.0:50051",
38+
"listener": {
39+
"http": {
40+
"socket_address": "0.0.0.0:50051",
41+
"advanced_http": {
42+
"http2_keep_alive_interval": 10
43+
}
44+
}
45+
},
3946
"services": {
4047
"cas": {
4148
"main": {

nativelink-config/examples/basic_cas.json

+10-2
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,11 @@
9191
}],
9292
"servers": [{
9393
"name": "public",
94-
"listen_address": "0.0.0.0:50051",
94+
"listener": {
95+
"http": {
96+
"socket_address": "0.0.0.0:50051"
97+
}
98+
},
9599
"services": {
96100
"cas": {
97101
"main": {
@@ -124,7 +128,11 @@
124128
}
125129
}, {
126130
"name": "private_workers_servers",
127-
"listen_address": "0.0.0.0:50061",
131+
"listener": {
132+
"http": {
133+
"socket_address": "0.0.0.0:50061"
134+
}
135+
},
128136
"services": {
129137
"experimental_prometheus": {
130138
"path": "/metrics"

nativelink-config/examples/filesystem_cas.json

+10-2
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,11 @@
114114
}
115115
},
116116
"servers": [{
117-
"listen_address": "0.0.0.0:50051",
117+
"listener": {
118+
"http": {
119+
"socket_address": "0.0.0.0:50051"
120+
}
121+
},
118122
"services": {
119123
"cas": {
120124
"main": {
@@ -146,7 +150,11 @@
146150
}
147151
}
148152
}, {
149-
"listen_address": "0.0.0.0:50061",
153+
"listener": {
154+
"http": {
155+
"socket_address": "0.0.0.0:50061"
156+
}
157+
},
150158
"services": {
151159
// Note: This should be served on a different port, because it has
152160
// a different permission set than the other services.

nativelink-config/examples/s3_backend_with_local_fast_cas.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,11 @@
129129
}
130130
},
131131
"servers": [{
132-
"listen_address": "0.0.0.0:50051",
132+
"listener": {
133+
"http": {
134+
"socket_address": "0.0.0.0:50051"
135+
}
136+
},
133137
"services": {
134138
"cas": {
135139
"main": {

0 commit comments

Comments
 (0)