Below are some TLDR notes about installing Actions Runner Controller (ARC) in a k8s cluster. These commands all came from the Quickstart for Actions Runner Controller
First create the arc-runners
namespace in k8s.
kubectl create namespace arc-runners
Create a file called setenv.sh
with the following content...
export ARC_ORG_1=your-org
export ARC_ORG_1_APP_ID=12345
export ARC_ORG_1_INSTALLATION_ID=67890
export ARC_ORG_1_PRIVATE_KEY_FILE_PATH=/path/to/private_key.pem
export ARC_ORG_2=...
...
export ARC_ORG_3=...
...
export ARC_ENTERPRISE_1=...
...
Source setenv.sh
file, then run ./create-secrets.sh
to create your secrets in k8s.
docker login ghcr.io
Use a PAT for the password.
NAMESPACE="arc-systems"
helm install arc \
--namespace "${NAMESPACE}" \
--create-namespace \
oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller
INSTALLATION_NAME="runners-self-hosted"
NAMESPACE="arc-runners"
helm install -f values-admin-ops.yaml \
"${INSTALLATION_NAME}" \
--namespace "${NAMESPACE}" \
--create-namespace \
oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set
ghes-migration runners
INSTALLATION_NAME="runners-ghes-migration"
NAMESPACE="arc-runners"
helm install -f values-ghes-migration.yaml \
"${INSTALLATION_NAME}" \
--namespace "${NAMESPACE}" \
--create-namespace \
oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set
Use these commands the check the status of the installation.
helm list -A
kubectl get pods -n arc-systems
kubectl get pods -n arc-runners
kubectl logs -n arc-systems arc-gha-runner-scale-set-controller-dfb85c57d-tc22x
helm uninstall runners-self-hosted --namespace arc-runners
helm uninstall runners-ghes-migration --namespace arc-runners
helm uninstall arc --namespace arc-systems
When I build a new runner image becuase I need to add a dependency, I need to uninstall and reinstall the runners.
The refresh.sh
script will uninstall and reinstall the runners.