Skip to main content

Démarrage rapide avec Actions Runner Controller

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

Prérequis

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 dans la documentation Azure.

    • Pour une configuration locale, vous pouvez utiliser minikube ou kind. Pour plus d’informations, consultez minikube start dans la documentation de minikube et kind dans la documentation de kind.

      Remarque

      les clusters OpenShift ne sont pas pris en charge actuellement.

  • Helm 3

    • Pour plus d’informations, consultez « Installation de Helm Â» dans la documentation de Helm.
  • Bien qu’il ne soit pas nĂ©cessaire de dĂ©ployer ARC, nous vous recommandons de vous assurer que vous avez 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 Registre de conteneurs GitHub.

    Bash
    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 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 auprĂšs de l'API GitHub Â».

Configuration d’un groupe identique d’exĂ©cuteurs

  1. Pour configurer votre groupe identique d’exĂ©cuteurs, exĂ©cutez la commande suivante dans votre terminal en utilisant les valeurs de votre configuration 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 « Workflow syntax for GitHub Actions Â».

    • 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Ă© Ă  laquelle les exĂ©cuteurs appartiendront.

    • 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 Registre de conteneurs GitHub.

      Remarque

      • 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, voir DĂ©ploiement de groupes identiques d’exĂ©cuteurs avec Actions Runner Controller.
      Bash
      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 dans la documentation d’ARC.

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

    Bash
    helm list -A
    

    Le résultat ressemble à ce qui suit.

    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
    kubectl get pods -n arc-systems
    

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

    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 Â» 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 flux de travail à un référentiel, voir Démarrage rapide pour GitHub Actions.

    YAML
    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 Â».

  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
    kubectl get pods -n arc-runners
    

    Une sortie réussie ressemble à ce qui suit.

    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 Ă  vous lancer ? Voici quelques ressources utiles pour aller plus loin avec ARC :

Certaines parties ont Ă©tĂ© adaptĂ©es Ă  partir de https://github.com/actions/actions-runner-controller/ sous la licence Apache-2.0 :

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.