Skip to content

Commit ccd5d44

Browse files
Steve-GlassCopilotsubatoisunbrye
authored
Document self-hosted runners setup with ARC (#57721)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Ben Ahmady <32935794+subatoi@users.noreply.github.com> Co-authored-by: Sunbrye Ly <56200261+sunbrye@users.noreply.github.com>
1 parent c1ca049 commit ccd5d44

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

content/copilot/how-tos/use-copilot-agents/coding-agent/customize-the-agent-environment.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,50 @@ jobs:
140140
> * {% data variables.copilot.copilot_coding_agent %} is only compatible with Ubuntu x64 Linux runners. Runners with Windows, macOS or other operating systems are not supported.
141141
> * Self-hosted {% data variables.product.prodname_actions %} runners are not supported.
142142

143+
## Using self-hosted {% data variables.product.prodname_actions %} runners with ARC
144+
145+
You can use self-hosted {% data variables.product.prodname_actions %} runners to support {% data variables.copilot.copilot_coding_agent %} using ARC (Actions Runner Controller). This allows you to run {% data variables.product.prodname_copilot_short %}'s development environment on your own infrastructure.
146+
147+
Before {% data variables.product.prodname_copilot_short %} can use self-hosted runners, you must first set up ARC-managed scale sets in your environment. For more information, see [AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/about-actions-runner-controller).
148+
149+
To use self-hosted runners with ARC, update the `runs-on` attribute in your `copilot-setup-steps` job to target your ARC-managed scale set:
150+
151+
```yaml
152+
# ...
153+
154+
jobs:
155+
copilot-setup-steps:
156+
runs-on: arc-scale-set-name
157+
# ...
158+
```
159+
160+
Replace `arc-scale-set-name` with the name of your ARC-managed scale set.
161+
162+
> [!WARNING]
163+
> Persistent runners are not recommended for autoscaling scenarios with {% data variables.copilot.copilot_coding_agent %}.
164+
165+
> [!NOTE]
166+
> * ARC is the only officially supported solution for self-hosting {% data variables.copilot.copilot_coding_agent %}.
167+
> * {% data variables.copilot.copilot_coding_agent %} is only compatible with Ubuntu x64 Linux runners. Runners with Windows, macOS or other operating systems are not supported.
168+
> * For more information about ARC, see [AUTOTITLE](/actions/concepts/runners/actions-runner-controller).
169+
170+
### Repository firewall requirements
171+
172+
To enable communication between {% data variables.copilot.copilot_coding_agent %} and your self-hosted runners, you must disable the repository firewall in the coding agent's repository settings. Without this change, runners will not be able to connect to {% data variables.product.prodname_copilot_short %}.
173+
174+
For more information about disabling the firewall, see [AUTOTITLE](/copilot/customizing-copilot/customizing-or-disabling-the-firewall-for-copilot-coding-agent).
175+
176+
> [!WARNING]
177+
> Disabling the firewall reduces isolation between {% data variables.product.prodname_copilot_short %} and your self-hosted environment. You must implement alternative network security controls to protect your environment.
178+
179+
### Security considerations for self-hosted runners
180+
181+
When using self-hosted runners, especially with the firewall disabled, ensure your hosting environment has strict network communication controls. The following endpoints must be reachable from your runners:
182+
183+
* `api.githubcopilot.com`
184+
* `uploads.github.com`
185+
* `user-images.githubusercontent.com`
186+
143187
## Enabling Git Large File Storage (LFS)
144188

145189
If you use Git Large File Storage (LFS) to store large files in your repository, you will need to customize {% data variables.product.prodname_copilot_short %}'s environment to install Git LFS and fetch LFS objects.

0 commit comments

Comments
 (0)