title | shortTitle | intro | versions | type | topics | defaultPlatform | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Quickstart for Actions Runner Controller |
Quickstart |
Try out {% data variables.product.prodname_actions_runner_controller %} in 5 minutes. |
|
quick_start |
|
linux |
{% data reusables.actions.actions-runner-controller-about-arc %}
You can set up ARC on Kubernetes using Helm, then create and run a workflow that uses runner scale sets. For more information about runner scale sets, see AUTOTITLE.
In order to use ARC, ensure you have the following.
-
A Kubernetes cluster
-
For a managed cloud environment, you can use AKS. For more information, see Azure Kubernetes Service in the Azure documentation.
-
For a local setup, you can use minikube or kind. For more information, see minikube start in the minikube documentation and kind in the kind documentation.
[!NOTE] OpenShift clusters are currently unsupported.
-
-
Helm 3
- For more information, see Installing Helm in the Helm documentation.
-
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.
-
To install the operator and the custom resource definitions (CRDs) in your cluster, do the following.
- In your Helm chart, update the
NAMESPACE
value to the location you want your operator pods to be created. This namespace must allow access to the Kubernetes API server. - Install the Helm chart.
The following example installs the latest version of the chart. To install a specific version, you can pass the
--version
argument along with the version of the chart you wish to install. You can find the list of releases in the GitHub Container Registry.NAMESPACE="arc-systems" helm install arc \ --namespace "{% raw %}${NAMESPACE}{% endraw %}" \ --create-namespace \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller
For additional Helm configuration options, see
values.yaml
in the ARC documentation. - In your Helm chart, update the
-
To enable ARC to authenticate to {% data variables.product.company_short %}, generate a {% data variables.product.pat_v1 %}. For more information, see AUTOTITLE.
-
To configure your runner scale set, run the following command in your terminal, using values from your ARC configuration.
When you run the command, keep the following in mind.
-
Update the
INSTALLATION_NAME
value carefully. You will use the installation name as the value ofruns-on
in your workflows. For more information, see AUTOTITLE. -
Update the
NAMESPACE
value to the location you want the runner pods to be created. -
Set
GITHUB_CONFIG_URL
to the URL of your repository, organization, or enterprise. This is the entity that the runners will belong to. -
This example command installs the latest version of the Helm chart. To install a specific version, you can pass the
--version
argument with the version of the chart you wish to install. You can find the list of releases in the GitHub Container Registry.[!NOTE]
- {% data reusables.actions.actions-runner-controller-security-practices-namespace %}
- {% data reusables.actions.actions-runner-controller-security-practices-secret %} For more information, see AUTOTITLE.
INSTALLATION_NAME="arc-runner-set" NAMESPACE="arc-runners" GITHUB_CONFIG_URL="https://github.com/<your_enterprise/org/repo>" GITHUB_PAT="<PAT>" helm install "{% raw %}${INSTALLATION_NAME}{% endraw %}" \ --namespace "{% raw %}${NAMESPACE}{% endraw %}" \ --create-namespace \ --set githubConfigUrl="{% raw %}${GITHUB_CONFIG_URL}{% endraw %}" \ --set githubConfigSecret.github_token="{% raw %}${GITHUB_PAT}{% endraw %}" \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set
For additional Helm configuration options, see
values.yaml
in the ARC documentation.
-
-
From your terminal, run the following command to check your installation.
helm list -A
You should see an output similar to the following.
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION arc arc-systems 1 2023-04-12 11:45:59.152090536 +0000 UTC deployed gha-runner-scale-set-controller-0.4.0 0.4.0 arc-runner-set arc-runners 1 2023-04-12 11:46:13.451041354 +0000 UTC deployed gha-runner-scale-set-0.4.0 0.4.0
-
To check the manager pod, run the following command in your terminal.
kubectl get pods -n arc-systems
If everything was installed successfully, the status of the pods shows as Running.
NAME READY STATUS RESTARTS AGE arc-gha-runner-scale-set-controller-594cdc976f-m7cjs 1/1 Running 0 64s arc-runner-set-754b578d-listener 1/1 Running 0 12s
If your installation was not successful, see AUTOTITLE for troubleshooting information.
Now you will create and run a simple test workflow that uses the runner scale set runners.
-
In a repository, create a workflow similar to the following example. The
runs-on
value should match the Helm installation name you used when you installed the autoscaling runner set.For more information on adding workflows to a repository, see AUTOTITLE.
name: Actions Runner Controller Demo on: workflow_dispatch: jobs: Explore-GitHub-Actions: # You need to use the INSTALLATION_NAME from the previous step runs-on: arc-runner-set steps: - run: echo "🎉 This job uses runner scale set runners!"
-
Once you've added the workflow to your repository, manually trigger the workflow. For more information, see AUTOTITLE.
-
To view the runner pods being created while the workflow is running, run the following command from your terminal.
kubectl get pods -n arc-runners
A successful output will look similar to the following.
NAMESPACE NAME READY STATUS RESTARTS AGE arc-runners arc-runner-set-rmrgw-runner-p9p5n 1/1 Running 0 21s
{% data variables.product.prodname_actions_runner_controller %} can help you efficiently manage your {% data variables.product.prodname_actions %} runners. Ready to get started? Here are some helpful resources for taking your next steps with ARC:
- For detailed authentication information, see AUTOTITLE.
- For help using ARC runners in your workflows, see AUTOTITLE.
- For deployment information, see AUTOTITLE.
{% data reusables.actions.actions-runner-controller-legal-notice %}