Skip to content

Commit c885dc9

Browse files
authored
Merge pull request #40880 from github/repo-sync
Repo sync
2 parents 0dafaff + b52f875 commit c885dc9

File tree

6 files changed

+105
-34
lines changed

6 files changed

+105
-34
lines changed

content/actions/concepts/runners/github-hosted-runners.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ We recommend using actions to interact with the software installed on runners. T
7171

7272
If there is a tool that you'd like to request, please open an issue at [actions/runner-images](https://github.com/actions/runner-images). This repository also contains announcements about all major software updates on runners.
7373

74-
> [!NOTE] You can also install additional software on {% data variables.product.prodname_dotcom %}-hosted runners. See [AUTOTITLE](/actions/using-github-hosted-runners/customizing-github-hosted-runners).
74+
> [!NOTE]
75+
> * You can also install additional software on {% data variables.product.prodname_dotcom %}-hosted runners. See [AUTOTITLE](/actions/using-github-hosted-runners/customizing-github-hosted-runners).
76+
> * While nested virtualization is technically possible while using runners, it is not officially supported. Any use of nested VMs is experimental and done at your own risk, we offer no guarantees regarding stability, performance, or compatibility.
7577
7678
## Cloud hosts used by {% data variables.product.prodname_dotcom %}-hosted runners
7779

content/actions/concepts/runners/support-for-arc.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ GitHub only supports the latest Autoscaling Runner Sets version of ARC. Support
2323

2424
## Scope of support for Actions Runner Controller
2525

26-
If your support request is outside of the scope of what our team can help you with, we may recommend next steps to resolve your issue outside of {% data variables.contact.github_support %}. Your support request is possibly out of {% data variables.contact.github_support %}'s scope if the request is primarily about:
26+
To ensure a smooth adoption of Actions Runner Controller, we recommend that organizations have a Kubernetes expert on staff. Many aspects of ARC installation, including container orchestration, networking, policy application, and integration with managed Kubernetes providers, fall outside GitHub Support’s scope and require in-depth Kubernetes knowledge. If your support request is outside of the scope of what our team can help you with, we may recommend next steps to resolve your issue outside of {% data variables.contact.github_support %}. Your support request is out of {% data variables.contact.github_support %}'s scope if the request is primarily about:
2727

2828
* The legacy community-maintained version of ARC
2929
* Installing, configuring, or maintaining dependencies

content/actions/tutorials/use-actions-runner-controller/deploy-runner-scale-sets.md

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -592,16 +592,11 @@ In Kubernetes mode, ARC uses runner container hooks to create a new pod in the s
592592

593593
#### Prerequisites
594594

595-
Kubernetes mode relies on persistent volumes to share job details between the runner pod and the container job pod. For more information, see the [Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) section in the Kubernetes documentation.
595+
Kubernetes mode supports two approaches for sharing job data between the runner pod and the container job pod. You can use persistent volumes, which remain the recommended option for scenarios requiring concurrent write access, or you can use container lifecycle hooks to restore and export job filesystems between pods without relying on RWX volumes. The lifecycle hook approach improves portability and performance by leveraging local storage and is ideal for clusters without shared storage.
596596

597-
To use Kubernetes mode, you must do the following.
597+
#### Configuring Kubernetes mode with persistent volumes
598598

599-
* Create persistent volumes available for the runner pods to claim.
600-
* Use a solution to automatically provision persistent volumes on demand.
601-
602-
For testing, you can use a solution like [OpenEBS](https://github.com/openebs/openebs).
603-
604-
#### Configuring Kubernetes mode
599+
To use Kubernetes mode, you must create persistent volumes that the runner pods can claim and use a solution that automatically provisions these volumes on demand. For testing, you can use a solution like [OpenEBS](https://github.com/openebs/openebs).
605600

606601
To enable Kubernetes mode, set the `containerMode.type` to `kubernetes` in your [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) file.
607602

@@ -618,26 +613,41 @@ containerMode:
618613

619614
{% data reusables.actions.actions-runner-controller-helm-chart-options %}
620615

621-
> [!NOTE]
622-
> When Kubernetes mode is enabled, workflows that are not configured with a container job will fail with an error similar to:
623-
>
624-
> ```bash
625-
> Jobs without a job container are forbidden on this runner, please add a 'container:' to your job or contact your self-hosted runner administrator.
626-
> ```
627-
>
628-
> To allow jobs without a job container to run, set `ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER` to `false` on your runner container. This instructs the runner to disable this check.
629-
>
630-
> ```yaml
631-
> template:
632-
> spec:
633-
> containers:
634-
> - name: runner
635-
> image: ghcr.io/actions/actions-runner:latest
636-
> command: ["/home/runner/run.sh"]
637-
> env:
638-
> - name: ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER
639-
> value: "false"
640-
> ```
616+
#### Configuring Kubernetes mode with container lifecycle hooks
617+
618+
To enable Kubernetes mode using container lifecycle hooks, set the `containerMode.type` to `kubernetes-novolume` in your `values.yaml` file:
619+
620+
```yaml
621+
containerMode:
622+
type: "kubernetes-novolume"
623+
```
624+
625+
>[!NOTE]
626+
>When using `kubernetes-novolume` mode, the container must run as `root` to support lifecycle hook operations.
627+
628+
#### Troubleshooting Kubernetes mode
629+
630+
When Kubernetes mode is enabled, workflows that are not configured with a container job will fail with an error similar to:
631+
632+
```bash
633+
Jobs without a job container are forbidden on this runner, please add a 'container:' to your job or contact your self-hosted runner administrator.
634+
```
635+
636+
To allow jobs without a job container to run, set `ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER` to `false` on your runner container. This instructs the runner to disable this check.
637+
> [!WARNING]
638+
>Allowing jobs to run without a container in `kubernetes` or `kubernetes-novolume` mode can give the >runner pod elevated privileges with the Kubernetes API server, including the ability to create pods and access secrets. Before changing this default, we recommend carefully reviewing the potential security implications.
639+
640+
```yaml
641+
template:
642+
spec:
643+
containers:
644+
- name: runner
645+
image: ghcr.io/actions/actions-runner:latest
646+
command: ["/home/runner/run.sh"]
647+
env:
648+
- name: ACTIONS_RUNNER_REQUIRE_JOB_CONTAINER
649+
value: "false"
650+
```
641651

642652
### Customizing container modes
643653

content/actions/tutorials/use-actions-runner-controller/quickstart.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@ In order to use ARC, ensure you have the following.
2424
* For a managed cloud environment, you can use AKS. For more information, see [Azure Kubernetes Service](https://azure.microsoft.com/en-us/products/kubernetes-service) in the Azure documentation.
2525
* For a local setup, you can use minikube or kind. For more information, see [minikube start](https://minikube.sigs.k8s.io/docs/start/) in the minikube documentation and [kind](https://kind.sigs.k8s.io/) in the kind documentation.
2626

27-
> [!NOTE]
28-
> OpenShift clusters are currently unsupported.
29-
3027
* Helm 3
3128
* For more information, see [Installing Helm](https://helm.sh/docs/intro/install/) in the Helm documentation.
3229
* While it is not required for ARC to be deployed, we recommend ensuring you have implemented a way to collect and retain logs from the controller, listeners, and ephemeral runners before deploying ARC in production workflows.

content/admin/data-residency/network-details-for-ghecom.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,68 @@ If you use Azure private networking for {% data variables.product.company_short
9595
| arm64 | `centralus`, `eastus2`, `westus3` |
9696
| GPU | `centralus`, `eastus2`, `westus3` |
9797

98+
### IP ranges for Azure private networking
99+
100+
#### EU
101+
102+
Actions IPs:
103+
* 74.241.192.231
104+
* 20.4.161.108
105+
* 74.241.204.117
106+
* 20.31.193.160
107+
108+
EU region:
109+
* 108.143.197.176/28
110+
* 20.123.213.96/28
111+
* 20.224.46.144/28
112+
* 20.240.194.240/28
113+
* 20.240.220.192/28
114+
* 20.240.211.208/28
115+
116+
#### Austrailia
117+
118+
Actions IPs:
119+
* 4.147.140.77
120+
* 20.53.114.78
121+
122+
Austraila region:
123+
* 4.237.73.192/28
124+
* 20.5.226.112/28
125+
* 20.248.163.176/28
126+
127+
#### Required for all regions
128+
129+
* `Storage` service tag
130+
* Communication requirements for github.com
131+
* 192.30.252.0/22
132+
* 185.199.108.0/22
133+
* 140.82.112.0/20
134+
* 143.55.64.0/20
135+
* 20.201.28.151/32
136+
* 20.205.243.166/32
137+
* 20.87.245.0/32
138+
* 4.237.22.38/32
139+
* 20.207.73.82/32
140+
* 20.27.177.113/32
141+
* 20.200.245.247/32
142+
* 20.175.192.147/32
143+
* 20.233.83.145/32
144+
* 20.29.134.23/32
145+
* 20.199.39.232/32
146+
* 20.217.135.5/32
147+
* 4.225.11.198/32
148+
* 4.208.26.197/32
149+
* 20.26.156.215/32
150+
151+
### Domains for Azure private networking
152+
153+
* `*.<TENANT>.ghe.com`
154+
* `<TENANT>.ghe.com`
155+
* `github.com`
156+
* `*.githubusercontent.com`
157+
* `*.blob.core.windows.net`
158+
* `*.web.core.windows.net`
159+
98160
## IP ranges for {% data variables.product.prodname_importer_proper_name %}
99161

100162
If you're running a migration to your enterprise with {% data variables.product.prodname_importer_proper_name %}, you may need to add certain ranges to an IP allow list. See [AUTOTITLE](/migrations/using-github-enterprise-importer/migrating-between-github-products/managing-access-for-a-migration-between-github-products#configuring-ip-allow-lists-for-migrations).
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Multiple NICs may appear for a single job in your subscription because the {% data variables.product.prodname_actions %} service over-provisions resources to run jobs. Once a runner is idle, the {% data variables.product.prodname_actions %} service automatically de-provisions the resource and removes the corresponding NIC.
1+
Starting in November 2025, NICs created by the {% data variables.product.prodname_actions %} service will no longer appear in your Azure subscriptions. Moving forward, NICs are now provisioned in a service subscription and assigned IP addresses from your subnet.

0 commit comments

Comments
 (0)