# Prise en main du contrôleur Runner Actions

Dans ce tutoriel, vous allez découvrir les bases de Actions Runner Controller.

## Prerequisites

Pour utiliser ARC, veillez à disposer des éléments suivants.

* Un cluster Kubernetes
  * Pour un environnement cloud managé, vous pouvez utiliser AKS. Pour plus d’informations, consultez [Azure Kubernetes Service](https://azure.microsoft.com/en-us/products/kubernetes-service) dans la documentation Azure.
  * Pour une configuration locale, vous pouvez utiliser minikube ou kind. Pour plus d’informations, consultez [minikube start](https://minikube.sigs.k8s.io/docs/start/) dans la documentation de minikube et [kind](https://kind.sigs.k8s.io/) dans la documentation de kind.

* Helm 3
  * Pour plus d’informations, consultez « [Installation de Helm](https://helm.sh/docs/intro/install/) » dans la documentation de Helm.

* Bien qu’il ne soit pas nécessaire de déployer ARC, nous vous recommandons de bien veiller à avoir implémenté un moyen de collecter et de conserver les journaux issus du contrôleur, des écouteurs et des exécuteurs éphémères avant de déployer ARC dans des flux de travail de production.

## Installation d’Actions Runner Controller

1. Pour installer l’opérateur et les définitions de ressources personnalisées (CRD) dans votre cluster, procédez comme suit.

   1. Dans votre chart Helm, mettez à jour la valeur `NAMESPACE` avec l’emplacement où vous souhaitez que vos pods d’opérateur soient créés. Cet espace de noms doit autoriser l’accès au serveur d’API Kubernetes.
   2. Installez le chart Helm.

   L’exemple suivant installe la dernière version du chart. Pour installer une version spécifique, vous pouvez passer l’argument `--version` avec la version du chart que vous souhaitez installer. Vous trouverez la liste des versions dans le [GitHub Container Registry](https://github.com/actions/actions-runner-controller/pkgs/container/actions-runner-controller-charts%2Fgha-runner-scale-set-controller).

   ```bash copy
   NAMESPACE="arc-systems"
   helm install arc \
       --namespace "${NAMESPACE}" \
       --create-namespace \
       oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller
   ```

   Pour obtenir d’autres options de configuration de Helm, consultez [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set-controller/values.yaml) dans la documentation d’ARC.

2. Pour permettre à ARC de s’authentifier auprès de GitHub, générez un personal access token (classic). Pour plus d’informations, consultez « [Authentification d'ARC pour l'API GitHub](/fr/enterprise-cloud@latest/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/authenticating-to-the-github-api#deploying-using-personal-access-token-classic-authentication) ».

## Configuration d’un groupe identique d’exécuteurs

1. Pour configurer votre ensemble échelonné d’exécuteurs, exécutez la commande suivante dans votre terminal en utilisant les valeurs de la configuration de votre ARC.

   Lorsque vous exécutez la commande, gardez les points suivants à l’esprit.

   * Mettez à jour la valeur `INSTALLATION_NAME` en faisant bien attention. Vous utiliserez le nom de l’installation comme valeur de `runs-on` dans vos workflows. Pour plus d’informations, consultez « [Syntaxe de flux de travail pour GitHub Actions](/fr/enterprise-cloud@latest/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on) ».

   * Mettez à jour la valeur `NAMESPACE` avec l’emplacement où vous souhaitez que les pods d’exécuteur soient créés.

   * Définissez `GITHUB_CONFIG_URL` avec l’URL de votre dépôt, organisation ou entreprise. Il s'agit de l'entité dont les coureurs feront partie.

   * Définissez `GITHUB_PAT` sur un GitHub personal access token avec les étendues `repo` et `manage_runners:org` pour les exécuteurs de référentiel et d’organisation, et l’étendue `manage_runners:enterprise` pour les exécuteurs d’entreprise.

   * Cet exemple de commande installe la dernière version du chart Helm. Pour installer une version spécifique, vous pouvez passer l’argument `--version` avec la version du chart que vous souhaitez installer. Vous trouverez la liste des versions dans le [GitHub Container Registry](https://github.com/actions/actions-runner-controller/pkgs/container/actions-runner-controller-charts%2Fgha-runner-scale-set).

     > \[!NOTE]
     >
     > * Comme meilleure pratique de sécurité, créez les pods de votre exécuteur dans un espace de noms différent de l’espace de noms contenant les pods de votre opérateur.
     > * Comme meilleure pratique de sécurité, créez des secrets Kubernetes et transmettez les références des secrets. La transmission de vos secrets en texte brut via l’interface CLI peut présenter un risque de sécurité. Pour plus d’informations, consultez [Déploiement de groupes identiques d’exécuteurs avec Actions Runner Controller](/fr/enterprise-cloud@latest/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/deploying-runner-scale-sets-with-actions-runner-controller).

     ```bash copy
     INSTALLATION_NAME="arc-runner-set"
     NAMESPACE="arc-runners"
     GITHUB_CONFIG_URL="https://github.com/<your_enterprise/org/repo>"
     GITHUB_PAT="<PAT>"
     helm install "${INSTALLATION_NAME}" \
         --namespace "${NAMESPACE}" \
         --create-namespace \
         --set githubConfigUrl="${GITHUB_CONFIG_URL}" \
         --set githubConfigSecret.github_token="${GITHUB_PAT}" \
         oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set
     ```

     Pour obtenir d’autres options de configuration de Helm, consultez [`values.yaml`](https://github.com/actions/actions-runner-controller/blob/master/charts/gha-runner-scale-set/values.yaml) dans la documentation d’ARC.

2. À partir de votre terminal, exécutez la commande suivante pour vérifier votre installation.

   ```bash copy
   helm list -A
   ```

   Le résultat ressemble à ce qui suit.

   ```bash
   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
   ```

3. Pour vérifier le pod de gestionnaire, exécutez la commande suivante dans votre terminal.

   ```bash copy
   kubectl get pods -n arc-systems
   ```

   Si tout a été installé correctement, l’état des pods s’affiche comme **En cours d’exécution**.

   ```bash
   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
   ```

Si votre installation n’a pas réussi, consultez [Résolution des erreurs d’Actions Runner Controller](/fr/enterprise-cloud@latest/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/troubleshooting-actions-runner-controller-errors) pour obtenir des informations de dépannage.

## Utilisation des groupes identiques d’exécuteurs

Vous allez maintenant créer et exécuter un workflow test simple qui utilise les exécuteurs de groupes identiques d’exécuteurs.

1. Dans un dépôt, créez un workflow similaire à l’exemple suivant. La valeur `runs-on` doit correspondre au nom d’installation Helm que vous avez utilisé lorsque vous avez installé l’ensemble d’exécuteurs pouvant se mettre à l’échelle automatiquement.

   Pour plus d’informations sur l’ajout de workflows dans un dépôt, consultez [Démarrage rapide pour GitHub Actions](/fr/enterprise-cloud@latest/actions/quickstart#creating-your-first-workflow).

   ```yaml copy
   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!"
   ```

2. Une fois que vous avez ajouté le workflow dans votre dépôt, déclenchez-le manuellement. Pour plus d’informations, consultez « [Exécution manuelle d’un workflow](/fr/enterprise-cloud@latest/actions/managing-workflow-runs/manually-running-a-workflow) ».

3. Pour afficher les pods d’exécuteur en cours de création pendant l’exécution du workflow, exécutez la commande suivante à partir de votre terminal.

   ```bash copy
   kubectl get pods -n arc-runners -w
   ```

   Une sortie réussie ressemble à ce qui suit.

   ```bash
   NAMESPACE     NAME                                                  READY   STATUS    RESTARTS      AGE
   arc-runners   arc-runner-set-rmrgw-runner-p9p5n                     1/1     Running   0             21s
   ```

## Étapes suivantes

Actions Runner Controller peut vous aider à gérer efficacement vos exécuteurs GitHub Actions. Prêt à commencer ? Voici quelques ressources utiles pour aller plus loin avec ARC :

* Pour obtenir des informations détaillées sur l’authentification, consultez [Authentification d'ARC pour l'API GitHub](/fr/enterprise-cloud@latest/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/authenticating-to-the-github-api).
* Pour obtenir de l’aide sur l’utilisation des exécuteurs ARC dans vos workflows, consultez [Utilisation des exécuteurs de l'Actions Runner Controller dans un flux de travail](/fr/enterprise-cloud@latest/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/using-actions-runner-controller-runners-in-a-workflow).
* Pour obtenir des informations de déploiement, consultez [Déploiement de groupes identiques d’exécuteurs avec Actions Runner Controller](/fr/enterprise-cloud@latest/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/deploying-runner-scale-sets-with-actions-runner-controller).

## Mentions légales

Certaines parties ont été adaptées à partir de <https://github.com/actions/actions-runner-controller/> sous la licence Apache-2.0 :

```text
Copyright 2019 Moto Ishizawa

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```