|
| 1 | +{ |
| 2 | + "stores": [ |
| 3 | + { |
| 4 | + "name": "AC_MAIN_STORE", |
| 5 | + "filesystem": { |
| 6 | + "content_path": "/tmp/nativelink/data-worker-test/content_path-ac", |
| 7 | + "temp_path": "/tmp/nativelink/data-worker-test/tmp_path-ac", |
| 8 | + "eviction_policy": { |
| 9 | + // 1gb. |
| 10 | + "max_bytes": 1000000000 |
| 11 | + } |
| 12 | + } |
| 13 | + }, { |
| 14 | + "name": "WORKER_FAST_SLOW_STORE", |
| 15 | + "fast_slow": { |
| 16 | + // "fast" must be a "filesystem" store because the worker uses it to make |
| 17 | + // hardlinks on disk to a directory where the jobs are running. |
| 18 | + "fast": { |
| 19 | + "filesystem": { |
| 20 | + "content_path": "/tmp/nativelink/data-worker-test/content_path-cas", |
| 21 | + "temp_path": "/tmp/nativelink/data-worker-test/tmp_path-cas", |
| 22 | + "eviction_policy": { |
| 23 | + // 10gb. |
| 24 | + "max_bytes": 10000000000 |
| 25 | + } |
| 26 | + } |
| 27 | + }, |
| 28 | + "slow": { |
| 29 | + /// Discard data. |
| 30 | + /// This example usage has the CAS and the Worker live in the same place, |
| 31 | + /// so they share the same underlying CAS. Since workers require a fast_slow |
| 32 | + /// store, we use the fast store as our primary data store, and the slow store |
| 33 | + /// is just a noop, since there's no shared storage in this config. |
| 34 | + "noop": {} |
| 35 | + } |
| 36 | + } |
| 37 | + } |
| 38 | + ], |
| 39 | + "schedulers": [ |
| 40 | + { |
| 41 | + "name": "MAIN_SCHEDULER", |
| 42 | + "simple": { |
| 43 | + "supported_platform_properties": { |
| 44 | + "cpu_count": "minimum", |
| 45 | + "memory_kb": "minimum", |
| 46 | + "network_kbps": "minimum", |
| 47 | + "disk_read_iops": "minimum", |
| 48 | + "disk_read_bps": "minimum", |
| 49 | + "disk_write_iops": "minimum", |
| 50 | + "disk_write_bps": "minimum", |
| 51 | + "shm_size": "minimum", |
| 52 | + "gpu_count": "minimum", |
| 53 | + "gpu_model": "exact", |
| 54 | + "cpu_vendor": "exact", |
| 55 | + "cpu_arch": "exact", |
| 56 | + "cpu_model": "exact", |
| 57 | + "kernel_version": "exact", |
| 58 | + "OSFamily": "priority", |
| 59 | + "container-image": "priority", |
| 60 | + "lre-rs": "priority", |
| 61 | + "ISA": "exact", |
| 62 | + } |
| 63 | + } |
| 64 | + } |
| 65 | + ], |
| 66 | + "workers": [{ |
| 67 | + "local": { |
| 68 | + "worker_api_endpoint": { |
| 69 | + "uri": "grpc://127.0.0.1:50061" |
| 70 | + }, |
| 71 | + "cas_fast_slow_store": "WORKER_FAST_SLOW_STORE", |
| 72 | + "upload_action_result": { |
| 73 | + "ac_store": "AC_MAIN_STORE" |
| 74 | + }, |
| 75 | + "work_directory": "/tmp/nativelink/work", |
| 76 | + "platform_properties": { |
| 77 | + "cpu_count": { |
| 78 | + "values": ["16"] |
| 79 | + }, |
| 80 | + "memory_kb": { |
| 81 | + "values": ["500000"] |
| 82 | + }, |
| 83 | + "network_kbps": { |
| 84 | + "values": ["100000"] |
| 85 | + }, |
| 86 | + "cpu_arch": { |
| 87 | + "values": ["x86_64"] |
| 88 | + }, |
| 89 | + "OSFamily": { |
| 90 | + "values": [""] |
| 91 | + }, |
| 92 | + "container-image": { |
| 93 | + "values": [""] |
| 94 | + }, |
| 95 | + "lre-rs": { |
| 96 | + "values": [""] |
| 97 | + }, |
| 98 | + "ISA": { |
| 99 | + "values": ["x86-64"] |
| 100 | + }, |
| 101 | + } |
| 102 | + } |
| 103 | + }], |
| 104 | + "servers": [{ |
| 105 | + "name": "public", |
| 106 | + "listener": { |
| 107 | + "http": { |
| 108 | + "socket_address": "0.0.0.0:50051" |
| 109 | + } |
| 110 | + }, |
| 111 | + "services": { |
| 112 | + "cas": { |
| 113 | + "": { |
| 114 | + "cas_store": "WORKER_FAST_SLOW_STORE" |
| 115 | + } |
| 116 | + }, |
| 117 | + "ac": { |
| 118 | + "": { |
| 119 | + "ac_store": "AC_MAIN_STORE" |
| 120 | + } |
| 121 | + }, |
| 122 | + "execution": { |
| 123 | + "": { |
| 124 | + "cas_store": "WORKER_FAST_SLOW_STORE", |
| 125 | + "scheduler": "MAIN_SCHEDULER" |
| 126 | + } |
| 127 | + }, |
| 128 | + "fetch": { |
| 129 | + }, |
| 130 | + "push": { |
| 131 | + }, |
| 132 | + "capabilities": { |
| 133 | + "": { |
| 134 | + "remote_execution": { |
| 135 | + "scheduler": "MAIN_SCHEDULER" |
| 136 | + } |
| 137 | + } |
| 138 | + }, |
| 139 | + "bytestream": { |
| 140 | + "cas_stores": { |
| 141 | + "": "WORKER_FAST_SLOW_STORE" |
| 142 | + } |
| 143 | + } |
| 144 | + } |
| 145 | + }, { |
| 146 | + "name": "private_workers_servers", |
| 147 | + "listener": { |
| 148 | + "http": { |
| 149 | + "socket_address": "0.0.0.0:50061" |
| 150 | + } |
| 151 | + }, |
| 152 | + "services": { |
| 153 | + // Note: This should be served on a different port, because it has |
| 154 | + // a different permission set than the other services. |
| 155 | + // In other words, this service is a backend api. The ones above |
| 156 | + // are a frontend api. |
| 157 | + "worker_api": { |
| 158 | + "scheduler": "MAIN_SCHEDULER" |
| 159 | + }, |
| 160 | + "admin": {}, |
| 161 | + "health": {} |
| 162 | + } |
| 163 | + }], |
| 164 | + "global": { |
| 165 | + "max_open_files": 24576 |
| 166 | + } |
| 167 | +} |
0 commit comments