Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Ben Ahmady <32935794+subatoi@users.noreply.github.com>
9.5 KiB
title, shortTitle, intro, versions, type, topics, defaultPlatform, redirect_from
| title | shortTitle | intro | versions | type | topics | defaultPlatform | redirect_from | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Quickstart for Actions Runner Controller | Quickstart | In this tutorial, you'll try out the basics of {% data variables.product.prodname_actions_runner_controller %}. |
|
quick_start |
|
linux |
|
Prerequisites
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.
-
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.
Installing Actions Runner Controller
-
To install the operator and the custom resource definitions (CRDs) in your cluster, do the following.
- In your Helm chart, update the
NAMESPACEvalue 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
--versionargument 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-controllerFor additional Helm configuration options, see
values.yamlin 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.
Configuring a runner scale set
-
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_NAMEvalue carefully. You will use the installation name as the value ofruns-onin your workflows. For more information, see AUTOTITLE. -
Update the
NAMESPACEvalue to the location you want the runner pods to be created. -
Set
GITHUB_CONFIG_URLto the URL of your repository, organization, or enterprise. This is the entity that the runners will belong to. {% ifversion fpt %} -
Set
GITHUB_PATto a {% data variables.product.company_short %} {% data variables.product.pat_generic %} with therepoandadmin:orgscopes for repository and organization runners. {% else %} -
Set
GITHUB_PATto a {% data variables.product.company_short %} {% data variables.product.pat_generic %} with therepoandmanage_runners:orgscopes for repository and organization runners, and themanage_runners:enterprisescope for enterprise runners. {% endif %} -
This example command installs the latest version of the Helm chart. To install a specific version, you can pass the
--versionargument 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-setFor additional Helm configuration options, see
values.yamlin the ARC documentation.
-
-
From your terminal, run the following command to check your installation.
helm list -AYou 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-systemsIf 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.
Using runner scale sets
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-onvalue 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 -wA 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
Next steps
{% 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.
Legal notice
{% data reusables.actions.actions-runner-controller-legal-notice %}