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:
- Instale el ejecutor con Docker, Docker Compose o Kubernetes.
- Conecte el ejecutor a Datadog con una conexión.
- 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
- En Datadog, navegue a Action Catalog > Private Action Runners y haga clic en New Private Action Runner.
- Ingrese un nombre para su ejecutor de acciones privado y seleccione las acciones permitidas.
- Cree un directorio en su servidor donde el ejecutor de acciones privado pueda almacenar su configuración, como
./config. - Implemente su ejecutor de acciones privado siguiendo los pasos para su plataforma de contenedores:
- Haga clic en Docker.
- 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.
- Haga clic en Docker Compose.
- Cree un archivo
docker-compose.yaml y agregue el YAML proporcionado, o agregue la sección runner a un archivo de Docker Compose existente. - Reemplace
./config con la ruta al directorio que creó para la configuración del ejecutor de acciones privado. - Ejecute
docker compose up -d.
Nota: Puede ignorar sin problemas el error DATADOG TRACER DIAGNOSTIC - Agent Error: connect ECONNREFUSED.
- Haga clic en Kubernetes.
- Confirme que
kubectl y helm estén instalados, y que tenga los permisos suficientes para crear recursos de Kubernetes en su clúster. - 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.
- 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:
- 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. - 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"
Cree un ConfigMap que contenga su certificado de CA:
kubectl create configmap my-ca-cert --from-file=ca.crt=./my-custom-ca.pem
En su archivo values.yaml de Helm, haga referencia al ConfigMap:
runner:
customCaCert:
configMapName: my-ca-cert
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:
Detenga el contenedor:
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:
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:
Existen dos opciones para actualizar con Helm:
- (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.
- 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
Documentación, enlaces y artículos útiles adicionales: