You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: nativelink-config/examples/README.md
+75-63Lines changed: 75 additions & 63 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,9 +8,9 @@ Configuration JSON objects should begin with the `stores` key, followed by `work
8
8
9
9
```json5
10
10
{
11
-
"stores":{},
11
+
"stores":[],
12
12
"workers": [],
13
-
"schedulers":{},
13
+
"schedulers":[],
14
14
"servers": [],
15
15
"global": {}
16
16
}
@@ -24,15 +24,17 @@ This is the scaffolding for a NativeLink deployment configuration.
24
24
25
25
### Store Name
26
26
27
-
The value of `stores`includes top-level keys, which are user supplied names stores. The following example, defines the `AC_MAIN_STORE`.
27
+
The value of `stores`is an array where each element defines a store. Each should have a user supplied name. The following example, defines the `AC_MAIN_STORE`.
28
28
29
29
```json5
30
30
{
31
-
"stores": {
32
-
"AC_MAIN_STORE": {}
33
-
},
31
+
"stores": [
32
+
{
33
+
"name":"AC_MAIN_STORE",
34
+
}
35
+
],
34
36
"workers": [],
35
-
"schedulers":{},
37
+
"schedulers":[],
36
38
"servers": [],
37
39
"global": {},
38
40
}
@@ -41,17 +43,18 @@ The value of `stores` includes top-level keys, which are user supplied names sto
41
43
### Store Type
42
44
43
45
Once the store has been named and its object exists,
44
-
the next key is the type of store. The options are `filesystem`, `memory`, `compression`, `dedup`, `fast_slow`, `verify`, and `experimental_s3_store`.
46
+
the next key to add is the type of store. The options are `filesystem`, `memory`, `compression`, `dedup`, `fast_slow`, `verify`, and `experimental_s3_store`.
45
47
46
48
```json5
47
49
{
48
-
"stores": {
49
-
"AC_MAIN_STORE": {
50
-
"filesystem": {}
50
+
"stores": [
51
+
{
52
+
"name":"AC_MAIN_STORE",
53
+
"filesystem": {}
51
54
}
52
-
},
55
+
],
53
56
"workers": [],
54
-
"schedulers":{},
57
+
"schedulers":[],
55
58
"servers": [],
56
59
"global": {},
57
60
}
@@ -63,8 +66,9 @@ The contents of the object here must include `content_path`, `temp_path`, and an
@@ -74,9 +78,9 @@ The contents of the object here must include `content_path`, `temp_path`, and an
74
78
}
75
79
}
76
80
}
77
-
},
81
+
],
78
82
"workers": [],
79
-
"schedulers":{},
83
+
"schedulers":[],
80
84
"servers": [],
81
85
"global": {},
82
86
}
@@ -93,11 +97,11 @@ The value of `workers` includes a top level array that embeds the worker metadat
93
97
94
98
```json5
95
99
{
96
-
"stores":{},
100
+
"stores":[],
97
101
"workers": [{
98
102
"local": {}
99
103
}],
100
-
"schedulers":{},
104
+
"schedulers":[],
101
105
"servers": [],
102
106
"global": {},
103
107
}
@@ -109,7 +113,7 @@ The Local object has five components, `worker_api_endpoint`, `cas_fast_slow_stor
109
113
110
114
```json5
111
115
{
112
-
"stores":{},
116
+
"stores":[],
113
117
"workers": [{
114
118
"local": {
115
119
"worker_api_endpoint": {
@@ -142,7 +146,7 @@ The Local object has five components, `worker_api_endpoint`, `cas_fast_slow_stor
142
146
}
143
147
}
144
148
}],
145
-
"schedulers":{},
149
+
"schedulers":[],
146
150
"servers": [],
147
151
"global": {},
148
152
}
@@ -153,17 +157,20 @@ The Local object has five components, `worker_api_endpoint`, `cas_fast_slow_stor
153
157
<details>
154
158
<summary>Configuring Schedulers </summary>
155
159
156
-
### Scheduler Name
160
+
### Scheduler Name
161
+
The value of `stores` is an array where each element defines a store. Each should have a user supplied name. The following example, defines the `AC_MAIN_STORE`.
157
162
158
-
The value of `schedulers`includes top-level keys, which are the user-supplied names of the schedulers. The following example, defines the `MAIN_SCHEDULER`.
163
+
The value of `schedulers`is an array where each element defines a scheduler. Each scheduler must have a user-supplied name. The following example, defines the `MAIN_SCHEDULER`.
159
164
160
165
```json5
161
166
{
162
-
"stores": {},
163
-
"workers": {},
164
-
"schedulers": {
165
-
"MAIN_SCHEDULER": {}
166
-
},
167
+
"stores": [],
168
+
"workers": [],
169
+
"schedulers": [
170
+
{
171
+
name:"MAIN_SCHEDULER"
172
+
}
173
+
],
167
174
"servers": [],
168
175
"global": {},
169
176
}
@@ -176,13 +183,14 @@ the next key is the type of scheduler. The options are `simple`, `action_schedul
176
183
177
184
```json5
178
185
{
179
-
"stores": {},
180
-
"workers": {},
181
-
"schedulers": {
182
-
"MAIN_SCHEDULER": {
183
-
"simple": {}
184
-
},
185
-
}
186
+
"stores": [],
187
+
"workers": [],
188
+
"schedulers": [
189
+
{
190
+
name:"MAIN_SCHEDULER",
191
+
simple: {}
192
+
}
193
+
],
186
194
}
187
195
```
188
196
@@ -192,11 +200,12 @@ The contents of the scheduler type object defines the options. For a list of opt
192
200
193
201
```json5
194
202
{
195
-
"stores": {},
196
-
"workers": {},
197
-
"schedulers": {
198
-
"MAIN_SCHEDULER": {
199
-
"simple": {
203
+
"stores": [],
204
+
"workers": [],
205
+
"schedulers": [
206
+
{
207
+
name:"MAIN_SCHEDULER",
208
+
simple: {
200
209
"supported_platform_properties": {
201
210
"cpu_count":"minimum",
202
211
"memory_kb":"minimum",
@@ -217,7 +226,7 @@ The contents of the scheduler type object defines the options. For a list of opt
217
226
}
218
227
}
219
228
}
220
-
},
229
+
],
221
230
"servers": [],
222
231
"global": {},
223
232
}
@@ -228,15 +237,15 @@ The contents of the scheduler type object defines the options. For a list of opt
228
237
<details>
229
238
<summary>Configuring Servers</summary>
230
239
231
-
### Servers
240
+
### Servers
232
241
233
242
The `servers` configuration object is an array, with two objects, `public`, and `private_workers_servers`.
234
243
235
244
```json5
236
245
{
237
-
"stores":{},
238
-
"workers":{},
239
-
"schedulers":{},
246
+
"stores":[],
247
+
"workers":[],
248
+
"schedulers":[],
240
249
"servers": [{
241
250
"name":"public"
242
251
},{
@@ -246,15 +255,15 @@ The `servers` configuration object is an array, with two objects, `public`, and
246
255
}
247
256
```
248
257
249
-
### Public Server
258
+
### Public Server
250
259
251
260
The `public` server consists of a `listener` object and a `services` object. The `listener` object is one level of depth and includes an `http` with a `socket address`. The `services` server consists of a `cas`, an `ac`, the `execution`, `capabilities`, and `bytestream`.
252
261
253
262
```json5
254
263
{
255
-
"stores":{},
256
-
"workers":{},
257
-
"schedulers":{},
264
+
"stores":[],
265
+
"workers":[],
266
+
"schedulers":[],
258
267
"servers": [{
259
268
"name":"public",
260
269
"listener": {
@@ -299,17 +308,17 @@ The `public` server consists of a `listener` object and a `services` object. The
299
308
}
300
309
```
301
310
302
-
### Private Server
311
+
### Private Server
303
312
304
-
> ⚠️ _WARNING_: A private server shouldn't be exposed to the public. ⚠️
313
+
> ⚠️ _WARNING_: A private server shouldn't be exposed to the public. ⚠️
305
314
306
-
The `private` server consists of a `listener` object and a `services` object. The `listener` object is one level and includes an `http` with a `socket address`. The `services` server consists of an `experimental_prometheus` object with a `path` field, a `worker_api` object with `scheduler_field`, and an `admin` object.
315
+
The `private` server consists of a `listener` object and a `services` object. The `listener` object is one level and includes an `http` with a `socket address`. The `services` server consists of an `experimental_prometheus` object with a `path` field, a `worker_api` object with `scheduler_field`, and an `admin` object.
307
316
308
317
```json5
309
318
{
310
-
"stores":{},
311
-
"workers":{},
312
-
"schedulers":{},
319
+
"stores":[],
320
+
"workers":[],
321
+
"schedulers":[],
313
322
"servers": [{
314
323
"name":"public",
315
324
"listener": {
@@ -386,13 +395,14 @@ The `public` server consists of a `listener` object and a `services` object. The
386
395
<details>
387
396
<summary>Complete Example </summary>
388
397
389
-
Below, you will find a fully tested example that you can also find in [basic_cas.json](basic_cas.json)
398
+
Below, you will find a fully tested example that you can also find in [basic_cas.json](basic_cas.json)
0 commit comments