You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/about-support-for-actions-runner-controller.md
+1-3Lines changed: 1 addition & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -39,12 +39,10 @@ While ARC may be deployed successfully with different tooling and configurations
39
39
* Installation tooling other than Helm
40
40
* Service account and/or template spec customization
41
41
42
-
If you're uncertain if the issue is out of scope, open a ticket and we're happy to help you determine the best way to proceed.
43
-
44
42
For more information about contacting {% data variables.contact.github_support %}, see [AUTOTITLE](/support/contacting-github-support).
45
43
46
44
> [!NOTE]
47
-
> * OpenShift clusters are currently unsupported.
45
+
> * OpenShift clusters are in public preview. See guidance from [Red Hat](https://developers.redhat.com/articles/2025/02/17/how-securely-deploy-github-arc-openshift#arc_architecture) for configuration recommendations.
48
46
> * ARC is only supported on GitHub Enterprise Server versions 3.9 and greater.
49
47
50
48
## Working with {% data variables.contact.github_support %} for Actions Runner Controller
Copy file name to clipboardExpand all lines: content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/authenticating-to-the-github-api.md
+102Lines changed: 102 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -85,6 +85,108 @@ ARC can use {% data variables.product.pat_v1_plural %} to register self-hosted r
85
85
86
86
{% data reusables.actions.actions-runner-controller-helm-chart-options %}
87
87
88
+
## Authenticating ARC with vault secrets
89
+
90
+
> [!NOTE]
91
+
> Vault integration is currently available in public preview with support for Azure Key Vault.
92
+
93
+
Starting with gha-runner-scale-set version 0.12.0, ARC supports retrieving GitHub credentials from an external vault. Vault integration is configured per runner scale set. This means you can run some scale sets using Kubernetes secrets while others use vault-based secrets, depending on your security and operational requirements.
94
+
95
+
### Enabling Vault Integration
96
+
97
+
To enable vault integration for a runner scale set:
98
+
99
+
1. **Set the `githubConfigSecret` field** in your `values.yaml` file to the name of the secret key stored in your vault. This value must be a string.
100
+
1. **Uncomment and configure the `keyVault` section** in your `values.yaml` file with the appropriate provider and access details.
101
+
1. **Provide the required certificate** (`.pfx`) to both the controller and the listener. You can do this by:
102
+
*Rebuilding the controller image with the certificate included, or
103
+
*Mounting the certificate as a volume in both the controller and the listener using the `listenerTemplate` and `controllerManager` fields.
104
+
105
+
### Secret Format
106
+
107
+
The secret stored in Azure Key Vault must be in JSON format. The structure depends on the type of authentication you are using:
108
+
109
+
#### Example: GitHub Token
110
+
111
+
```json
112
+
{
113
+
"github_token": "TOKEN"
114
+
}
115
+
```
116
+
117
+
#### Example: GitHub App
118
+
119
+
```json
120
+
{
121
+
"github_app_id": "APP_ID_OR_CLIENT_ID",
122
+
"github_app_installation_id": "INSTALLATION_ID",
123
+
"github_app_private_key": "PRIVATE_KEY"
124
+
}
125
+
```
126
+
127
+
### Configuring `values.yaml` for Vault Integration
128
+
129
+
The certificate is stored as a .pfx file and mounted to the container at /akv/cert.pfx. Below is an example of how to configure the keyVault section to use this certificate for authentication:
### Providing the Certificate to the Controller and Listener
148
+
149
+
ARC requires a `.pfx` certificate to authenticate with the vault. This certificate must be made available to both the controller and the listener components during controller installation.
150
+
You can do this by mounting the certificate as a volume using the `controllerManager` and `listenerTemplate` fields in your `values.yaml` file:
151
+
152
+
```yaml
153
+
volumes:
154
+
- name: cert-volume
155
+
secret:
156
+
secretName: my-cert-secret
157
+
volumeMounts:
158
+
- mountPath: /akv
159
+
name: cert-volume
160
+
readOnly: true
161
+
162
+
listenerTemplate:
163
+
volumeMounts:
164
+
- name: cert-volume
165
+
mountPath: /akv/certs
166
+
readOnly: true
167
+
volumes:
168
+
- name: cert-volume
169
+
secret:
170
+
secretName: my-cert-secret
171
+
```
172
+
173
+
The code below is an example of a scale set `values.yml` file.
174
+
175
+
```yaml
176
+
listenerTemplate:
177
+
spec:
178
+
containers:
179
+
- name: listener
180
+
volumeMounts:
181
+
- name: cert-volume
182
+
mountPath: /akv
183
+
readOnly: true
184
+
volumes:
185
+
- name: cert-volume
186
+
secret:
187
+
secretName: my-cert-secret
188
+
```
189
+
88
190
## Legal notice
89
191
90
192
{% data reusables.actions.actions-runner-controller-legal-notice %}
0 commit comments