Configurez un private action runner autonome

Présentation

Le private action runner autonome est un conteneur dédié que vous pouvez installer et gérer indépendamment du Datadog Agent avec Docker ou Helm. Il est pris en charge et en mode maintenance : il continue de recevoir des mises à jour de sécurité et de stabilité, et aucune nouvelle fonctionnalité n’est prévue. Pour les nouveaux déploiements, et pour utiliser les politiques d’exécution, exécutez plutôt le runner dans le Datadog Agent. Consultez Configurer un private action runner dans le Datadog Agent.

La configuration du private action runner se fait en trois étapes :

  1. Installez le runner avec Docker, Docker Compose ou Kubernetes.
  2. Connectez le runner à Datadog avec une connexion.
  3. Mettez à jour le runner à mesure que de nouvelles versions sont publiées.

Un runner autonome est toujours propriétaire : en créant un, via l’une des méthodes ci-dessous, il est toujours enregistré sous l’utilisateur créateur, autorisé avec Connections.

Prérequis

  • Docker ou un cluster Kubernetes.
  • Accès réseau à Datadog sur https:// and https://config..

Installez le private action runner

  1. Dans Datadog, accédez à Action Catalog > Private Action Runners, puis cliquez sur New Private Action Runner.
  2. Saisissez un nom pour votre runner et sélectionnez les actions autorisées.
  3. Créez un répertoire sur votre host où le runner peut stocker sa configuration, tel que ./config.
  4. Déployez votre runner en suivant les étapes correspondant à votre plateforme de conteneurs :
  1. Cliquez sur Docker.
  2. Exécutez la commande docker run fournie sur votre host, en remplaçant ./config par le chemin d’accès au répertoire que vous avez créé pour la configuration du runner.

Remarque : Vous pouvez ignorer sans risque l’erreur DATADOG TRACER DIAGNOSTIC - Agent Error: connect ECONNREFUSED.

  1. Cliquez sur Docker Compose.
  2. Créez un fichier docker-compose.yaml et ajoutez le YAML fourni, ou ajoutez la section runner à un fichier Docker Compose existant.
  3. Remplacez ./config par le chemin d’accès au répertoire que vous avez créé pour la configuration du runner.
  4. Exécutez docker compose up -d.

Remarque : Vous pouvez ignorer sans risque l’erreur DATADOG TRACER DIAGNOSTIC - Agent Error: connect ECONNREFUSED.

  1. Cliquez sur Kubernetes.
  2. Confirmez que kubectl et helm sont installés, et que vous disposez des autorisations suffisantes pour créer des ressources Kubernetes dans votre cluster.
  3. Suivez les instructions fournies dans l’application pour inscrire le runner, générer la configuration, ajouter le dépôt Helm Private Action Runner et installer le chart.
  4. Exécutez kubectl get pods -w et vérifiez que le statut du pod du private action runner devient Prêt.

Alternative : installation par programmation

Comme alternative à la configuration via l’interface utilisateur ci-dessus, vous pouvez inscrire et configurer un runner autonome par programmation en utilisant votre clé d’API et votre clé d’application. Cette approche est adaptée aux déploiements automatisés, aux pipelines CI/CD et aux workflows d’infrastructure en tant que code. Comme pour la configuration via l’interface utilisateur, cela crée toujours un runner propriétaire. Malgré le nom de l’indicateur --with-api-key, ce chemin nécessite toujours une clé d’application : le runner utilise les deux identifiants ensemble pour s’inscrire et attribuer le propriétaire de la clé d’application en tant qu’éditeur du runner.

Pour configurer le runner par programmation :

  1. Fournissez vos clés d’API et d’application Datadog via les variables d’environnement DD_API_KEY et DD_APP_KEY.
  2. Passez l’indicateur --with-api-key au conteneur du runner.
export DD_API_KEY="<YOUR_API_KEY>"
export DD_APP_KEY="<YOUR_APP_KEY>"

docker run -d \
  -e DD_BASE_URL=https://<span class="js-region-param region-param" data-region-param="dd_site"></span> \
  -e DD_PRIVATE_RUNNER_CONFIG_DIR=/etc/dd-action-runner/config \
  -e DD_API_KEY="$DD_API_KEY" \
  -e DD_APP_KEY="$DD_APP_KEY" \
  -e RUNNER_NAME=<YOUR_RUNNER_NAME> \
  -v ./config:/etc/dd-action-runner/config \
  gcr.io/datadoghq/private-action-runner:v1.21.0 \
  --with-api-key
services:
  private-runner:
    image: gcr.io/datadoghq/private-action-runner:v1.21.0
    command: ["--with-api-key"]
    environment:
      DD_API_KEY: ${DD_API_KEY}
      DD_APP_KEY: ${DD_APP_KEY}
      DD_BASE_URL: https://<span class="js-region-param region-param" data-region-param="dd_site"></span>
      DD_PRIVATE_RUNNER_CONFIG_DIR: /etc/dd-action-runner/config
      RUNNER_NAME: my-compose-runner
    volumes:
      - "./config:/etc/dd-action-runner/config"

Exécutez avec :

export DD_API_KEY="<YOUR_API_KEY>"
export DD_APP_KEY="<YOUR_APP_KEY>"
docker compose up -d

Générez la configuration du runner :

export DD_API_KEY="<YOUR_API_KEY>"
export DD_APP_KEY="<YOUR_APP_KEY>"

docker run \
  -e DD_BASE_URL=https://<span class="js-region-param region-param" data-region-param="dd_site"></span> \
  -e DD_PRIVATE_RUNNER_CONFIG_DIR=/etc/dd-action-runner/config \
  -e DD_API_KEY="$DD_API_KEY" \
  -e DD_APP_KEY="$DD_APP_KEY" \
  -e RUNNER_NAME="my-runner" \
  -v ./config:/etc/dd-action-runner/config \
  gcr.io/datadoghq/private-action-runner:v1.21.0 \
  --with-api-key --enroll -f helm-values > values.yaml

Déployez le chart Helm :

helm upgrade --install <RELEASE_NAME> datadog/private-action-runner -f values.yaml

Lorsque le runner indique Prêt à l’emploi, créez une connexion pour celui-ci ou affichez-le sur la page Private Action Runners.

Certificats d’autorité de certification personnalisés

Si votre organisation utilise une autorité de certification (CA) personnalisée pour émettre des certificats pour des services internes, tels que des endpoints HTTP ou Jenkins, vous pouvez configurer un private action runner autonome pour qu’il fasse confiance à cette autorité de certification.

Ajoutez la variable d’environnement SSL_CERT_DIR et montez votre certificat sur la commande docker run, en remplaçant <PATH_TO_YOUR_CA_CERTIFICATE> par le chemin d’accès à votre fichier de certificat d’autorité de certification :

docker run -d \
  -e DD_BASE_URL=https://<span class="js-region-param region-param" data-region-param="dd_site"></span> \
  -e DD_PRIVATE_RUNNER_CONFIG_DIR=/etc/dd-action-runner/config \
  -e DD_API_KEY="$DD_API_KEY" \
  -e DD_APP_KEY="$DD_APP_KEY" \
  -e RUNNER_NAME=<YOUR_RUNNER_NAME> \
  -e SSL_CERT_DIR=/etc/dd-action-runner/config/ca-certificates \
  -v ./config:/etc/dd-action-runner/config \
  -v <PATH_TO_YOUR_CA_CERTIFICATE>:/etc/dd-action-runner/config/ca-certificates/ca.crt \
  gcr.io/datadoghq/private-action-runner:v1.21.0 \
  --with-api-key

Ajoutez la variable d’environnement SSL_CERT_DIR et montez votre certificat dans votre fichier docker-compose.yaml, en remplaçant <PATH_TO_YOUR_CA_CERTIFICATE> par le chemin d’accès à votre fichier de certificat d’autorité de certification :

services:
  private-runner:
    environment:
      SSL_CERT_DIR: /etc/dd-action-runner/config/ca-certificates
    volumes:
      - "<PATH_TO_YOUR_CA_CERTIFICATE>:/etc/dd-action-runner/config/ca-certificates/ca.crt"
  1. Créez une ConfigMap contenant votre certificat d’autorité de certification :

    kubectl create configmap my-ca-cert --from-file=ca.crt=./my-custom-ca.pem
    
  2. Dans votre fichier Helm values.yaml, référencez la ConfigMap :

    runner:
      customCaCert:
        configMapName: my-ca-cert
    
  3. Appliquez les valeurs mises à jour :

    helm upgrade --install <RELEASE_NAME> datadog/private-action-runner -f values.yaml
    

Connectez le runner

Un runner autonome est toujours propriétaire et utilise le modèle d’autorisation Connections. Une connexion stocke les identifiants d’un service et les associe au runner. Pour créer une connexion et l’associer à votre runner, consultez Connections. Pour savoir comment fonctionnent les autorisations sur le runner lui-même, consultez Gérer l’accès aux runners avec propriétaire.

Gérer le runner

Modifier les connexions ou supprimer un runner

Depuis la page Private Action Runner dans Action Catalog, vous pouvez afficher tous vos runners privés ainsi que les workflows ou applications qui utilisent chacun d’eux. Pour modifier les connexions d’un runner, cliquez sur View Details. Cliquez sur l’icône de corbeille pour supprimer un runner.

Modifier la liste d’autorisation

Pour modifier la liste d’autorisation d’un runner autonome, modifiez la section actionsAllowlist du fichier config.yaml dans l’environnement de votre runner, puis redémarrez le runner en redémarrant votre conteneur ou votre déploiement.

Mettez à jour le runner

Choisissez l’onglet qui correspond à la façon dont vous avez installé le runner. Utilisez la version actuelle v1.21.0Utilisez la version actuelle plutôt qu’un tag codé en dur.

Trouvez l’ID actuel de votre conteneur :

docker ps

Arrêtez le conteneur :

docker stop <id>

Démarrez un nouveau conteneur avec la dernière image. Les variables d’environnement ne sont pas nécessaires : tout est configuré dans le fichier config/config.yaml.

docker run -d \
  -e DD_PRIVATE_RUNNER_CONFIG_DIR=/etc/dd-action-runner/config \
  -v ./config:/etc/dd-action-runner/config \
  gcr.io/datadoghq/private-action-runner:v1.21.0

Après avoir confirmé que la nouvelle version fonctionne, supprimez l’ancien conteneur :

docker rm <id>

Accédez au répertoire contenant votre fichier docker-compose.yaml et mettez à jour la version de l’image :

services:
  private-actions-runner:
    image: gcr.io/datadoghq/private-action-runner:v1.21.0

Redémarrez le conteneur :

docker compose up -d

Il existe deux options pour effectuer une mise à niveau avec Helm :

  1. (Recommandé) Mettez à jour le chart, ce qui utilise la dernière version du runner. Il peut y avoir des changements dans le chart ; consultez le log des modifications.
  2. Mettez à jour le runner uniquement, sans mettre à jour le chart.

Mise à jour du chart (recommandé) :

helm repo update
helm upgrade <RELEASE_NAME> datadog/private-action-runner -f ./values.yaml

Mise à jour du runner uniquement : spécifiez la version du runner dans values.yaml sous la clé common.image.tag avec une valeur provenant du fichier de valeurs du chart :

common:
  image:
    tag: v1.21.0

Exécutez ensuite :

helm upgrade <RELEASE_NAME> datadog/private-action-runner -f ./values.yaml

Pour aller plus loin