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
-
Pour installer lâopĂ©rateur et les dĂ©finitions de ressources personnalisĂ©es (CRD) dans votre cluster, procĂ©dez comme suit.
- 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. - 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
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. - Dans votre chart Helm, mettez Ă jour la valeur
-
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
-
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 deruns-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
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.
-
-
à partir de votre terminal, exécutez la commande suivante pour vérifier votre installation.
Bash helm list -A
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
-
Pour vérifier le pod de gestionnaire, exécutez la commande suivante dans votre terminal.
Bash kubectl get pods -n arc-systems
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.
-
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!"
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!"
-
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 ».
-
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
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 :
- Pour des informations détaillées sur l'authentification, voir Authentification d'ARC auprÚs de l'API GitHub.
- Pour obtenir de lâaide sur lâutilisation des exĂ©cuteurs ARC dans vos workflows, consultez « Utilisation dâexĂ©cuteurs Actions Runner Controller dans un flux de travail ».
- Pour obtenir des informations de dĂ©ploiement, consultez « DĂ©ploiement de groupes identiques dâexĂ©cuteurs avec 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 :
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.