| Serge Bazanski | caa1208 | 2023-02-16 14:54:04 +0100 | [diff] [blame] | 1 | Equinix Shepherd |
| 2 | === |
| 3 | |
| 4 | Manages Equinix machines in sync with BMDB contents. Made up of two components: |
| 5 | |
| 6 | Provisioner |
| 7 | --- |
| 8 | |
| 9 | Brings up machines from hardware reservations and populates BMDB with new Provided machines. |
| 10 | |
| 11 | Initializer |
| 12 | --- |
| 13 | |
| 14 | Starts the Agent over SSH (wherever necessary per the BMDB) and reports success into the BMDB. |
| 15 | |
| 16 | |
| 17 | Running |
| 18 | === |
| 19 | |
| 20 | Unit Tests |
| 21 | --- |
| 22 | |
| 23 | The Shepherd has some basic smoke tests which run against a Fakequinix. |
| 24 | |
| 25 | Manual Testing |
| 26 | --- |
| 27 | |
| 28 | If you have Equinix credentials, you can run: |
| 29 | |
| 30 | ``` |
| Tim Windelschmidt | b6308cd | 2023-10-10 21:19:03 +0200 | [diff] [blame] | 31 | $ bazel build //cloud/shepherd/provider/equinix |
| 32 | $ bazel build //cloud/shepherd/manager/test_agent |
| 33 | $ bazel-bin/cloud/shepherd/provider/equinix/equinix_/equinix \ |
| Serge Bazanski | caa1208 | 2023-02-16 14:54:04 +0100 | [diff] [blame] | 34 | -bmdb_eat_my_data \ |
| 35 | -equinix_project_id FIXME \ |
| 36 | -equinix_api_username FIXME \ |
| 37 | -equinix_api_key FIXME \ |
| Tim Windelschmidt | b6308cd | 2023-10-10 21:19:03 +0200 | [diff] [blame] | 38 | -agent_executable_path bazel-bin/cloud/shepherd/manager/test_agent/test_agent_/test_agent \ |
| Serge Bazanski | caa1208 | 2023-02-16 14:54:04 +0100 | [diff] [blame] | 39 | -agent_endpoint example.com \ |
| 40 | -equinix_ssh_key_label $USER-FIXME \ |
| 41 | -equinix_device_prefix $USER-FIXME- \ |
| 42 | -provisioner_assimilate -provisioner_max_machines 10 |
| 43 | ``` |
| 44 | |
| 45 | Replace $USER-FIXME with `<your username>-test` or some other unique name/prefix. |
| 46 | |
| 47 | This will start a single instance of the provisioner accompanied by a single instance of the initializer. |
| 48 | |
| 49 | A persistent SSH key will be created in your current working directory. |
| 50 | |
| 51 | Prod Deployment |
| 52 | --- |
| 53 | |
| 54 | TODO(q3k): split server binary into separate provisioner/initializer for initializer scalability, as that's the main bottleneck. |