Configure un ejecutor de acciones privado independiente

Descripción general

El ejecutor de acciones privado independiente es un contenedor dedicado que puede instalar y administrar independientemente del Datadog Agent con Docker o Helm. Es compatible y está en modo de mantenimiento: continúa recibiendo actualizaciones de seguridad y estabilidad, y no hay nuevas funciones planificadas. Para nuevos despliegues, y para usar Políticas de ejecución, ejecute el ejecutor en el Datadog Agent en su lugar. Consulte Set up a private action runner in the Datadog Agent.

La configuración del ejecutor requiere tres pasos:

  1. Instale el ejecutor con Docker, Docker Compose o Kubernetes.
  2. Conecte el ejecutor a Datadog con una conexión.
  3. Actualice el ejecutor a medida que se lancen nuevas versiones.

Un ejecutor independiente siempre tiene un propietario: crearlo, mediante cualquiera de los métodos a continuación, siempre lo registra bajo el usuario que lo crea, autorizado con Connections.

Requisitos previos

  • Docker o un clúster de Kubernetes.
  • Acceso de red a Datadog en https:// and https://config..

Instale el ejecutor

  1. En Datadog, navegue a Action Catalog > Private Action Runners y haga clic en New Private Action Runner.
  2. Ingrese un nombre para su ejecutor de acciones privado y seleccione las acciones permitidas.
  3. Cree un directorio en su servidor donde el ejecutor de acciones privado pueda almacenar su configuración, como ./config.
  4. Implemente su ejecutor de acciones privado siguiendo los pasos para su plataforma de contenedores:
  1. Haga clic en Docker.
  2. Ejecute el comando docker run proporcionado en su servidor, reemplazando ./config con la ruta al directorio que creó para la configuración del ejecutor de acciones privado.

Nota: Puede ignorar sin problemas el error DATADOG TRACER DIAGNOSTIC - Agent Error: connect ECONNREFUSED.

  1. Haga clic en Docker Compose.
  2. Cree un archivo docker-compose.yaml y agregue el YAML proporcionado, o agregue la sección runner a un archivo de Docker Compose existente.
  3. Reemplace ./config con la ruta al directorio que creó para la configuración del ejecutor de acciones privado.
  4. Ejecute docker compose up -d.

Nota: Puede ignorar sin problemas el error DATADOG TRACER DIAGNOSTIC - Agent Error: connect ECONNREFUSED.

  1. Haga clic en Kubernetes.
  2. Confirme que kubectl y helm estén instalados, y que tenga los permisos suficientes para crear recursos de Kubernetes en su clúster.
  3. Siga las instrucciones proporcionadas en la aplicación para registrar el runner, generar la configuración, agregar el repositorio de Helm de Private Action Runner e instalar el gráfico.
  4. Ejecute kubectl get pods -w y verifique que el estado del pod del ejecutor de acciones privado cambie a Ready.

Alternativa: instalación programática

Como alternativa a la configuración basada en la interfaz de usuario anterior, puede registrar y configurar un ejecutor de acciones privado independiente de forma programática utilizando su clave de API y su clave de aplicación. Este enfoque es adecuado para implementaciones automatizadas, canalizaciones de CI/CD y flujos de trabajo de infraestructura como código. Al igual que la configuración basada en la interfaz de usuario, esto siempre crea un ejecutor de acciones privado propio. A pesar del nombre de la bandera --with-api-key, esta ruta aún requiere una clave de aplicación: el ejecutor utiliza ambas credenciales juntas para registrarse y asignar al propietario de la clave de aplicación como Editor del ejecutor.

Para configurar el ejecutor de acciones privado mediante programación:

  1. Proporcione sus claves de API y de aplicación de Datadog a través de las variables de entorno DD_API_KEY y DD_APP_KEY.
  2. Pase la bandera --with-api-key al contenedor del ejecutor de acciones privado.
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"

Ejecute con:

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

Genere la configuración del ejecutor de acciones privado:

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

Implemente el gráfico de Helm:

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

Cuando el ejecutor muestre Ready to use, cree una conexión para él o visualícelo en la página Private Action Runners.

Certificados de CA personalizados

Si su organización utiliza una autoridad de certificación (CA) personalizada para emitir certificados para servicios internos, como puntos finales HTTP o Jenkins, puede configurar un ejecutor de acciones privado independiente para que confíe en esa CA.

Agregue la variable de entorno SSL_CERT_DIR y monte su certificado en el comando docker run, reemplazando <PATH_TO_YOUR_CA_CERTIFICATE> con la ruta a su archivo de certificado de CA:

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

Agregue la variable de entorno SSL_CERT_DIR y monte su certificado en su archivo docker-compose.yaml, reemplazando <PATH_TO_YOUR_CA_CERTIFICATE> con la ruta a su archivo de certificado de CA:

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. Cree un ConfigMap que contenga su certificado de CA:

    kubectl create configmap my-ca-cert --from-file=ca.crt=./my-custom-ca.pem
    
  2. En su archivo values.yaml de Helm, haga referencia al ConfigMap:

    runner:
      customCaCert:
        configMapName: my-ca-cert
    
  3. Aplique los valores actualizados:

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

Conecte el ejecutor

Un ejecutor de acciones privado independiente siempre está asignado a un propietario y utiliza el modelo de autorización de Connections. Una conexión almacena las credenciales de un servicio y las vincula con el ejecutor de acciones privado. Para crear una conexión y vincularla con su ejecutor de acciones privado, consulte Connections. Para saber cómo funcionan los permisos en el propio ejecutor de acciones privado, consulte Manage access to owned runners.

Administrar el ejecutor de acciones privado

Editar conexiones o eliminar un ejecutor de acciones privado

Desde la página Private Action Runner en Action Catalog, puede visualizar todos sus runners privados junto con los flujos de trabajo o aplicaciones que utiliza cada uno. Para editar las conexiones de un ejecutor de acciones privado, haga clic en View Details. Haga clic en el icono de la papelera para eliminar un ejecutor de acciones privado.

Cambiar la lista de permitidos

Para editar la lista de permitidos de un ejecutor de acciones privado independiente, edite la sección actionsAllowlist del archivo config.yaml en el entorno de su ejecutor de acciones privado y, a continuación, reinícielo reiniciando su contenedor o implementación.

Actualizar el ejecutor de acciones privado

Elija la pestaña que coincida con la forma en que instaló el ejecutor de acciones privado. Utilice la versión v1.21.0 actual en lugar de una etiqueta codificada de forma rígida.

Busque el ID actual de su contenedor:

docker ps

Detenga el contenedor:

docker stop <id>

Inicie un nuevo contenedor con la imagen más reciente. No se necesitan variables de entorno: todo está configurado en el archivo 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

Después de confirmar que la nueva versión funciona, elimine el contenedor antiguo:

docker rm <id>

Navegue al directorio que contiene su archivo docker-compose.yaml y actualice la versión de la imagen:

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

Inicie el contenedor de nuevo:

docker compose up -d

Existen dos opciones para actualizar con Helm:

  1. (Recomendado) Actualice el chart, lo cual utiliza la versión más reciente del ejecutor de acciones privado. Puede haber cambios en el chart; revise el registro de cambios.
  2. Actualice solo el ejecutor de acciones privado, sin actualizar el chart.

Actualización del chart (recomendado):

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

Actualización solo del ejecutor de acciones privado: especifique la versión del ejecutor de acciones privado en values.yaml bajo la clave common.image.tag con un valor del archivo de valores del chart.

common:
  image:
    tag: v1.21.0

Luego ejecute:

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

Lecturas adicionales