# Flux ARM64 GitHub runners The Flux ARM64 end-to-end tests run on Equinix instances provisioned with Docker and GitHub self-hosted runners. ## Current instances | Runner | Instance | Region | |---------------|---------------------|--------| | equinix-arm-1 | flux-equinix-arm-01 | AMS1 | | equinix-arm-2 | flux-equinix-arm-01 | AMS1 | | equinix-arm-3 | flux-equinix-arm-01 | AMS1 | | equinix-arm-4 | flux-equinix-arm-02 | DFW2 | | equinix-arm-5 | flux-equinix-arm-02 | DFW2 | | equinix-arm-6 | flux-equinix-arm-02 | DFW2 | ## Instance setup In order to add a new runner to the GitHub Actions pool, first create a server on Equinix with the following configuration: - Type: c2.large.arm - OS: Ubuntu 20.04 ### Install prerequisites - SSH into a newly created instance ```shell ssh root@ ``` - Create the ubuntu user ```shell adduser ubuntu usermod -aG sudo ubuntu su - ubuntu ``` - Create the prerequisites dir ```shell mkdir -p prereq && cd prereq ``` - Download the prerequisites script ```shell curl -sL https://raw.githubusercontent.com/fluxcd/flux2/main/.github/runners/prereq.sh > prereq.sh \ && chmod +x ./prereq.sh ``` - Install the prerequisites ```shell sudo ./prereq.sh ``` ### Install runners - Retrieve the GitHub runner token from the repository [settings page](https://github.com/fluxcd/flux2/settings/actions/runners/new?arch=arm64&os=linux) - Create 3 directories `runner1`, `runner2`, `runner3` - In each dir run: ```shell curl -sL https://raw.githubusercontent.com/fluxcd/flux2/main/.github/runners/runner-setup.sh > runner-setup.sh \ && chmod +x ./runner-setup.sh ./runner-setup.sh equinix-arm- ``` - Reboot the instance ```shell sudo reboot ``` - Navigate to the GitHub repository [runners page](https://github.com/fluxcd/flux2/settings/actions/runners) and check the runner status