Skip to content

Commit

Permalink
[Breaking] listen_address renamed/remapped in config (#476)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
allada committed Dec 12, 2023
1 parent dbe61d2 commit 9db28d6
Show file tree
Hide file tree
Showing 14 changed files with 235 additions and 109 deletions.
24 changes: 18 additions & 6 deletions deployment-examples/docker-compose/local-storage-cas.json
Expand Up @@ -40,7 +40,11 @@
}
},
"servers": [{
"listen_address": "0.0.0.0:50051",
"listener": {
"http": {
"socket_address": "0.0.0.0:50051"
}
},
"services": {
"cas": {
"main": {
Expand All @@ -61,18 +65,26 @@
}
}, {
// Only publish metrics on a private port.
"listen_address": "0.0.0.0:50061",
"listener": {
"http": {
"socket_address": "0.0.0.0:50061"
}
},
"services": {
"experimental_prometheus": {
"path": "/metrics"
}
}
},
{
"listen_address": "0.0.0.0:50071",
"tls": {
"cert_file": "/root/example-do-not-use-in-prod-rootca.crt",
"key_file": "/root/example-do-not-use-in-prod-key.pem"
"listener": {
"http": {
"socket_address": "0.0.0.0:50071",
"tls": {
"cert_file": "/root/example-do-not-use-in-prod-rootca.crt",
"key_file": "/root/example-do-not-use-in-prod-key.pem"
}
}
},
"services": {
"cas": {
Expand Down
12 changes: 10 additions & 2 deletions deployment-examples/docker-compose/scheduler.json
Expand Up @@ -27,7 +27,11 @@
}
},
"servers": [{
"listen_address": "0.0.0.0:50052",
"listener": {
"http": {
"socket_address": "0.0.0.0:50052",
}
},
"services": {
"ac": {
"main": {
Expand All @@ -49,7 +53,11 @@
}
}
}, {
"listen_address": "0.0.0.0:50061",
"listener": {
"http": {
"socket_address": "0.0.0.0:50061",
}
},
"services": {
// Note: This should be served on a different port, because it has
// a different permission set than the other services.
Expand Down
8 changes: 6 additions & 2 deletions deployment-examples/terraform/AWS/scripts/cas.json
Expand Up @@ -110,7 +110,7 @@
"verify_size": true,
"verify_hash": true
}
},
}
},
"schedulers": {
"MAIN_SCHEDULER": {
Expand All @@ -122,7 +122,11 @@
}
},
"servers": [{
"listen_address": "0.0.0.0:50051",
"listener": {
"http": {
"socket_address": "0.0.0.0:50051",
}
},
"services": {
"cas": {
"main": {
Expand Down
12 changes: 10 additions & 2 deletions deployment-examples/terraform/AWS/scripts/scheduler.json
Expand Up @@ -119,7 +119,11 @@
}
},
"servers": [{
"listen_address": "0.0.0.0:50052",
"listener": {
"http": {
"socket_address": "0.0.0.0:50052",
}
},
"services": {
"ac": {
"main": {
Expand All @@ -141,7 +145,11 @@
}
}
}, {
"listen_address": "0.0.0.0:50061",
"listener": {
"http": {
"socket_address": "0.0.0.0:50061",
}
},
"services": {
"experimental_prometheus": {
"path": "/metrics"
Expand Down
Expand Up @@ -40,7 +40,11 @@
"servers": [{
// Non-public apis. We re-export the CAS services so we don't need to go through
// an external load balancer.
"listen_address": "0.0.0.0:50052",
"listener": {
"http": {
"socket_address": "0.0.0.0:50052",
}
},
"services": {
"experimental_prometheus": {
"path": "/metrics"
Expand Down
38 changes: 23 additions & 15 deletions deployment-examples/terraform/GCP/module/scripts/cas.json
Expand Up @@ -77,18 +77,22 @@
}
},
"servers": [{
"listen_address": "0.0.0.0:50051",
"tls": {
"cert_file": "${NATIVELINK_CERT_FILE:-}",
"key_file": "${NATIVELINK_KEY_FILE:-}"
},
"advanced_http": {
"http2_keep_alive_interval": 10
},
// External apis support compression.
"compression": {
"send_compression_algorithm": "gzip",
"accepted_compression_algorithms": ["gzip"]
"listener": {
"http": {
"socket_address": "0.0.0.0:50051",
"tls": {
"cert_file": "${NATIVELINK_CERT_FILE:-}",
"key_file": "${NATIVELINK_KEY_FILE:-}"
},
"advanced_http": {
"http2_keep_alive_interval": 10
},
// External apis support compression.
"compression": {
"send_compression_algorithm": "gzip",
"accepted_compression_algorithms": ["gzip"]
}
}
},
"services": {
"cas": {
Expand All @@ -113,9 +117,13 @@
}, {
// Non-public apis. We re-export the CAS services so we don't need to go through
// an external load balancer.
"listen_address": "0.0.0.0:50052",
"advanced_http": {
"http2_keep_alive_interval": 10
"listener": {
"http": {
"socket_address": "0.0.0.0:50052",
"advanced_http": {
"http2_keep_alive_interval": 10
}
}
},
"services": {
"experimental_prometheus": {
Expand Down
38 changes: 25 additions & 13 deletions deployment-examples/terraform/GCP/module/scripts/scheduler.json
Expand Up @@ -86,13 +86,17 @@
}
},
"servers": [{
"listen_address": "0.0.0.0:50051",
"tls": {
"cert_file": "${nativelink_CERT_FILE:-}",
"key_file": "${nativelink_KEY_FILE:-}"
},
"advanced_http": {
"http2_keep_alive_interval": 10
"listener": {
"http": {
"socket_address": "0.0.0.0:50051",
"tls": {
"cert_file": "${nativelink_CERT_FILE:-}",
"key_file": "${nativelink_KEY_FILE:-}"
},
"advanced_http": {
"http2_keep_alive_interval": 10
}
}
},
"services": {
"ac": {
Expand All @@ -117,9 +121,13 @@
}, {
// Non-public apis. We re-export the Scheduler services on a non-tls connection
// for local services that don't need a load balancer.
"listen_address": "0.0.0.0:50052",
"advanced_http": {
"http2_keep_alive_interval": 10
"listener": {
"http": {
"socket_address": "0.0.0.0:50052",
"advanced_http": {
"http2_keep_alive_interval": 10
}
}
},
"services": {
"experimental_prometheus": {
Expand All @@ -146,9 +154,13 @@
}
}, {
// Internal Worker endpoint.
"listen_address": "0.0.0.0:50061",
"advanced_http": {
"http2_keep_alive_interval": 10
"listener": {
"http": {
"socket_address": "0.0.0.0:50061",
"advanced_http": {
"http2_keep_alive_interval": 10
}
}
},
"services": {
// Note: This should be served on a different port, because it has
Expand Down
20 changes: 14 additions & 6 deletions deployment-examples/terraform/GCP/module/scripts/worker.json
Expand Up @@ -84,16 +84,24 @@
}
}],
"servers": [{
"listen_address": "0.0.0.0:50051",
"advanced_http": {
"http2_keep_alive_interval": 10
"listener": {
"http": {
"socket_address": "0.0.0.0:50051",
"advanced_http": {
"http2_keep_alive_interval": 10
}
}
},
// Only /status will be served.
"services": {}
}, {
"listen_address": "0.0.0.0:50052",
"advanced_http": {
"http2_keep_alive_interval": 10
"listener": {
"http": {
"socket_address": "0.0.0.0:50052",
"advanced_http": {
"http2_keep_alive_interval": 10
}
}
},
"services": {
"experimental_prometheus": {
Expand Down
9 changes: 8 additions & 1 deletion nativelink-config/README.md
Expand Up @@ -35,7 +35,14 @@ A very basic configuration that is a pure in-memory store is:
}
},
"servers": [{
"listen_address": "0.0.0.0:50051",
"listener": {
"http": {
"socket_address": "0.0.0.0:50051",
"advanced_http": {
"http2_keep_alive_interval": 10
}
}
},
"services": {
"cas": {
"main": {
Expand Down
12 changes: 10 additions & 2 deletions nativelink-config/examples/basic_cas.json
Expand Up @@ -91,7 +91,11 @@
}],
"servers": [{
"name": "public",
"listen_address": "0.0.0.0:50051",
"listener": {
"http": {
"socket_address": "0.0.0.0:50051"
}
},
"services": {
"cas": {
"main": {
Expand Down Expand Up @@ -124,7 +128,11 @@
}
}, {
"name": "private_workers_servers",
"listen_address": "0.0.0.0:50061",
"listener": {
"http": {
"socket_address": "0.0.0.0:50061"
}
},
"services": {
"experimental_prometheus": {
"path": "/metrics"
Expand Down
12 changes: 10 additions & 2 deletions nativelink-config/examples/filesystem_cas.json
Expand Up @@ -114,7 +114,11 @@
}
},
"servers": [{
"listen_address": "0.0.0.0:50051",
"listener": {
"http": {
"socket_address": "0.0.0.0:50051"
}
},
"services": {
"cas": {
"main": {
Expand Down Expand Up @@ -146,7 +150,11 @@
}
}
}, {
"listen_address": "0.0.0.0:50061",
"listener": {
"http": {
"socket_address": "0.0.0.0:50061"
}
},
"services": {
// Note: This should be served on a different port, because it has
// a different permission set than the other services.
Expand Down
Expand Up @@ -129,7 +129,11 @@
}
},
"servers": [{
"listen_address": "0.0.0.0:50051",
"listener": {
"http": {
"socket_address": "0.0.0.0:50051"
}
},
"services": {
"cas": {
"main": {
Expand Down

0 comments on commit 9db28d6

Please sign in to comment.