Skip to main content

Configuración de Dependabot para ejecutarse en ejecutores de acciones autohospedados mediante el controlador del ejecutor de acciones

Puedes configurar Actions Runner Controller para ejecutar Dependabot en ejecutores autohospedados.

¿Quién puede utilizar esta característica?

Usuarios con acceso de escritura

Trabajar con Actions Runner Controller (ARC)

Note

La compatibilidad de ARC con Dependabot en GitHub Actions está actualmente en versión preliminar pública y sujeta a cambios.

En este artículo se proporcionan instrucciones paso a paso para configurar ARC en un clúster de Kubernetes y configurar Dependabot para ejecutarse en ejecutores de acciones autohospedados. El artículo:

  • Contiene información general sobre la integración de ARC y Dependabot.
  • Proporciona pasos detallados de instalación y configuración mediante scripts de Helm.

¿Qué es ARC?

Actions Runner Controller es un controlador de Kubernetes que administra GitHub Actions autohospedadas como pods de Kubernetes. Permite escalar y organizar dinámicamente los ejecutores en función de los flujos de trabajo, lo que proporciona un mejor uso de recursos e integración con entornos de Kubernetes. Consulta Acerca de Actions Runner Controller.

Dependabot en ARC

Puedes ejecutar Dependabot en ejecutores de GitHub Actions autohospedados administrados en un clúster de Kubernetes a través de ARC. Esto permite el escalado automático, el aislamiento de cargas de trabajo y una mejor administración de recursos para los trabajos de Dependabot, lo que garantiza que las actualizaciones de dependencia se puedan ejecutar de forma eficaz dentro de la infraestructura controlada de una organización al integrarse sin problemas con GitHub Actions.

Configuración de ARC para Dependabot en el entorno local

Requisitos previos

  • Un clúster de Kubernetes
    • Para un entorno de nube administrado, puedes usar Azure Kubernetes Service (AKS).
    • Para una configuración local, puedes usar minikube.
  • Helm
    • Un administrador de paquetes para Kubernetes.

Configuración de ARC

  1. Instala ARC. Para más información, consulta Inicio rápido para Actions Runner Controller.

  2. Crea un directorio de trabajo para la instalación de ARC y crea un archivo de script de shell (por ejemplo, helm_install_arc.sh) para instalar la versión más reciente de ARC.

    Bash
        mkdir ARC
        touch helm_install_arc.sh
        chmod 755 helm_install_arc.sh
    
  3. Edita helm_install_arc.sh con este script de Bash para instalar ARC.

    Text
    NAMESPACE="arc-systems"
    helm install arc \
        --namespace "${NAMESPACE}" \
        --create-namespace \
        oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller
    
  4. Ejecuta el archivo de script helm_install_arc.sh.

    ./helm_install_arc.sh
    
  5. Ahora, debes configurar el conjunto de escalado del ejecutor. Para ello, vamos a empezar creando y editando un archivo con el siguiente script de Bash.

    Bash
    touch arc-runner-set.sh
    chmod 755 arc-runner-set.sh
    
    Text
    INSTALLATION_NAME="dependabot"
    NAMESPACE="arc-runners"
    GITHUB_CONFIG_URL=REPO_URL
    GITHUB_PAT=PAT
    helm install "${INSTALLATION_NAME}" \
        --namespace "${NAMESPACE}" \
        --create-namespace \
        --set githubConfigUrl="${GITHUB_CONFIG_URL}" \
        --set githubConfigSecret.github_token="${GITHUB_PAT}" \
        --set containerMode.type="dind" \
        oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set
    
  6. Ejecuta el archivo de script arc-runner-set.sh.

    Bash
    ./arc-runner-set.sh
    

Note

  • El nombre de instalación del conjunto de escalado del ejecutor debe ser dependabot para orientar el trabajo dependabot al ejecutor.
  • La configuración containerMode.type="dind" es necesaria para permitir que el ejecutor se conecte al demonio de Docker.
  • Si se crea un ejecutor de nivel de organización o de nivel empresarial, se deben proporcionar los ámbitos adecuados a Personal Access Token (PAT).
  • Se puede crear un personal access token (classic) (PAT). El token debe tener los siguientes ámbitos en función de si va a crear un repositorio, una organización o un conjunto de escalado de ejecutores de nivel empresarial.
    • Nivel de repositorio: repo
    • Nivel de organización: admin:org
    • Nivel de empresa: admin:enterprise
      Para obtener más información sobre la creación de un personal access token (classic), consulta Administración de tokens de acceso personal.

Adición de grupos de ejecutores

Los grupos de ejecutores se usan para controlar qué organizaciones o repositorios tienen acceso a los conjuntos de escalado de ejecutores. Para agregar un conjunto de escalado de ejecutor a un grupo de ejecutores, ya debes tener un grupo de ejecutores creado.

Para obtener información sobre cómo crear grupos de ejecutores, consulta Administración del acceso a los ejecutores autohospedados mediante grupos.

No olvides agregar la siguiente configuración al conjunto de escalado del ejecutor en el gráfico de Helm.

Text
--set runnerGroup="<Runner group name>" \

Comprobación de la instalación

  1. Comprueba la instalación.

    Bash
    helm list -A
    

    Salida:

    ➜  ARC git:(master) ✗ helm list -A
        NAME           NAMESPACE   REVISION UPDATED                              STATUS   CHART                                  APP VERSION
        arc            arc-systems 1        2025-04-11 14:41:53.70893 -0500 CDT  deployed gha-runner-scale-set-controller-0.11.0 0.11.0
        arc-runner-set arc-runners 1        2025-04-11 15:08:12.58119 -0500 CDT  deployed gha-runner-scale-set-0.11.0            0.11.0
        dependabot     arc-runners 1        2025-04-16 21:53:40.080772 -0500 CDT deployed gha-runner-scale-set-0.11.0
    
  2. Comprueba el pod del administrador mediante este comando.

    Bash
    kubectl get pods -n arc-systems
    

    Salida:

    ➜  ARC git:(master) ✗ kubectl get pods -n arc-systems
    
    NAME                                    READY   STATUS    RESTARTS      AGE
    arc-gha-rs-controller-57c67d4c7-zjmw2   1/1     Running   8 (36h ago)   6d9h
    arc-runner-set-754b578d-listener        1/1     Running   0             11h
    dependabot-754b578d-listener            1/1     Running   0             14h
    

Configuración de Dependabot

  1. En GitHub, navegue hasta la página principal del repositorio.

  2. En el nombre del repositorio, haz clic en Configuración. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de un encabezado de repositorio en el que se muestran las pestañas. La pestaña "Configuración" está resaltada con un contorno naranja oscuro.

  3. En la sección "Seguridad" de la barra lateral, haga clic en Advanced Security.

  4. En "Dependabot", desplázate hasta "Dependabot en Ejecutores de acciones" y selecciona Habilitar para "Dependabot en ejecutores autohospedados".

Desencadenar una ejecución de Dependabot

Ahora que has configurado ARC, puedes iniciar una ejecución de Dependabot.

  1. En GitHub, navegue hasta la página principal del repositorio.

  2. En el nombre del repositorio, haz clic en la pestaña Insights.

  3. En la barra lateral izquierda, haga clic en Gráfico de dependencias.

    Captura de pantalla de la pestaña "Gráfico de dependencias". La pestaña está resaltada con un contorno naranja.

  4. En "Gráfico de dependencias", haga clic en Dependabot .

  5. A la derecha del nombre del archivo de manifiesto que te interesa, haz clic en Trabajos de actualización recientes.

  6. Si no hay ningún trabajo de actualización reciente para el archivo de manifiesto, haz clic en Buscar actualizaciones para volver a ejecutar un trabajo de Dependabot version updates y buscar nuevas actualizaciones en las dependencias de ese ecosistema.

Visualización de los ejecutores de ARC generados

Puedes ver los ejecutores de ARC que se han creado para el trabajo de Dependabot.

  1. En GitHub, navegue hasta la página principal del repositorio.

  2. En el nombre del repositorio, haz clic en Acciones.

    Captura de pantalla de las pestañas del repositorio "github/docs". La pestaña "Proyectos" aparece resaltada con un contorno naranja.

  3. En la barra lateral izquierda, haz clic en Ejecutores.

  4. En "Ejecutores", haz clic en Ejecutores autohospedados para ver la lista de todos los ejecutores disponibles en el repositorio. Puede ver el ejecutor de dependabot efímero que se ha creado.

    Captura de pantalla que muestra un ejecutor dependabot en la lista de ejecutores disponibles. El ejecutor está resaltado con un contorno naranja.

    También puedes ver el mismo pod del ejecutor de dependabot creado en el clúster de Kubernetes desde el terminal ejecutando este comando.

    Text
    ➜  ARC git:(master) ✗ kubectl get pods -n arc-runners
        NAME                            READY   STATUS    RESTARTS   AGE
        dependabot-sw8zn-runner-4mbc7   2/2     Running   0          46s
    

Además, puedes comprobar lo siguiente:

  • Los registros, comprobando el ejecutor y el nombre de la máquina. Consulta Visualización de registros de trabajos de Dependabot.

    Ejemplo de registro para un ejecutor autohospedado de dependabot.

  • Las solicitudes de incorporación de cambios de actualización de versión creadas por el trabajo dependabot en la pestaña Solicitudes de incorporación de cambios del repositorio.