Pide tu presupuesto ya!

Uso de GitHub ARC para ejecutar corredores autohospedados en Kubernetes

GitHub Actions proporciona una manera poderosa de automatizar los flujos de trabajo, permitiéndole crear, probar e implementar su código directamente desde su repositorio de GitHub. Pero, ¿por qué no ampliar esta capacidad con los controladores GitHub Action Runner (GitHub ARC)?

Este tutorial es su boleto para obtener más control sobre el entorno donde se ejecutan sus flujos de trabajo. Aprenderá a aprovechar GitHub ARC para implementar y administrar sus GitHub Runners autohospedados en un clúster de Kubernetes.

¡Estén atentos para escalar y administrar sus instancias de corredor dinámicamente con GitHub ARC!

Requisitos previos

¡Prepárate para un aprendizaje práctico! Asegúrese de tener lo siguiente en su lugar para seguir este tutorial:

  • Un clúster de Kubernetes: este tutorial utiliza K3S ejecutando Kubernetes versión 1.27.7
  • kubectl instalado y configurado para interactuar con su clúster de Kubernetes.
  • Una muestra repositorio de GitHub (es decir, eshiettjoseph/GitHub-arc-demo) donde planea utilizar sus corredores autohospedados.
  • Administrador de paquetes Helm instalado.

Configurar el ARC de GitHub

En su búsqueda por optimizar y agilizar su flujo de trabajo, el paso inicial y crucial consiste en configurar GitHub ARC en su clúster de Kubernetes. Este proceso, ejemplificado aquí a través de Helm, no solo mejora la eficiencia de sus flujos de trabajo, sino que también le permite aprovechar al máximo GitHub Actions en un entorno de Kubernetes.

Para configurar GitHub ARC en su clúster de Kubernetes con Helm, siga estos pasos:

1. Abra una terminal y ejecute el siguiente comando para agregar el Repositorio de GitHub ARC Helm a su configuración local de Helm como actions-runner-controller. De esta manera, GitHub ARC se instalará mediante helm desde el repositorio que agregó.

Después de ejecutar este comando, Helm tendrá información sobre el repositorio especificado y luego podrá usar los comandos de Helm para interactuar con los gráficos disponibles en ese repositorio.

helm repo add actions-runner-controller https://actions-runner-controller.github.io/actions-runner-controller

Si tiene éxito, verá el siguiente resultado.

Agregar el repositorio GitHub ARC Helm

2. A continuación, ejecute lo siguiente helm upgrade comando para realizar lo siguiente para instalar el gráfico GitHub ARC Helm:

  • Actualizar o --install el gráfico de timón solicitado y cree un espacio de nombres de Kubernetes llamado actions-runner-system.
  • Establezca un valor de Helm en verdadero (--set=authSecret.create=true) para permitir la creación de un secreto de autenticación.
  • Establezca un valor de Helm para el secreto de autenticación creado (--set=authSecret.github_token="YOUR_TOKEN"). Asegúrese de reemplazar YOUR_TOKEN con su token de acceso personal.
  • hace timón --wait hasta que todos los recursos estén listos antes de marcar la instalación como exitosa.
  • Establece el identificador (actions-runner-controller) para gestionar esta versión con Helm y hace referencia al gráfico de Helm (actions-runner-controller). Este identificador sigue el formato: repositorio de timón/gráfico de timón.
helm upgrade --install --namespace actions-runner-system --create-namespace \
  --set=authSecret.create=true \
  --set=authSecret.github_token="YOUR_TOKEN" \
  --wait actions-runner-controller actions-runner-controller/actions-runner-controller

El siguiente resultado indica que la instalación está completa.

Verificar que la instalación de GitHub ARC esté completa
Verificar que la instalación de GitHub ARC esté completa

3. Ahora, ejecuta lo siguiente kubectl comando para get all recursos disponibles en el actions-runner-system espacio de nombres.

kubectl get all -n actions-runner-system

Este resultado confirma la instalación de GitHub ARC.

Listado de todos los recursos disponibles en la implementación de GitHub ARC
Listado de todos los recursos disponibles en la implementación de GitHub ARC

Implementación y configuración del ejecutor autohospedado de GitHub

Con GitHub ARC configurado, su atención ahora se centra en el componente vital de impulsar sus flujos de trabajo dentro de su clúster de Kubernetes. Implementarás y configurarás un ejecutor autohospedado de GitHub para darle vida a tu automatización.

Para implementar y configurar su ejecutor autohospedado de GitHub, realice lo siguiente:

1. Cree un archivo de manifiesto llamado github-arc-demo.yaml (arbitrario) con su editor preferido, agregue las siguientes configuraciones y guarde el archivo. Asegúrese de reemplazar el repositorio eshiettjoseph/GitHub-arc-demo con tigo.

Esta configuración crea su ejecutor autohospedado de GitHub (demo-runner) con el kind de RunnerDeployment y lo configura para ejecutarse en su repositorio con una única réplica.

# Define the Kubernetes API version and resource kind for the GitHub Actions Runner Deployment
apiVersion: actions.summerwind.dev/v1alpha1
kind: RunnerDeployment
metadata:
  # Specify a unique name for the GitHub Actions Runner Deployment
  name: github-arc-demo
spec:
  # Set the number of desired replicas for the GitHub Self-Hosted Runner
  replicas: 1
  template:
    spec:
      # Specify the GitHub repository to associate with the Runner
      repository: eshiettjoseph/GitHub-arc-demo
      labels:
        # Assign a custom label for identifying and categorizing the Runner
        - demo-runner

2. Ahora, ejecute el siguiente comando para apply el archivo de manifiesto (github-arc-demo.yaml) a su clúster.

kubectl apply -f github-arc-demo.yaml

Una vez aplicado, verá el siguiente resultado como confirmación.

Aplicar la implementación de GitHub Actions Runner
Aplicar la implementación de GitHub Actions Runner

3. Ejecute el siguiente comando para confirmar la implementación. Este comando recupera (get) todos los recursos con el tipo RunnerDeployment en el espacio de nombres predeterminado.

kubectl get runnerdeployment

Como se muestra a continuación, el github-arc-demo RunnerDeployment es encontrado y confirmado.

Confirmando la implementación de GitHub Actions Runner
Confirmando la implementación de GitHub Actions Runner

4. Por último, navegue hasta su repositorio en GitHub (Configuración → Acciones → Corredores) y verá un único corredor disponible.

Lo siguiente confirma que su ejecutor autohospedado de GitHub se está ejecutando correctamente en sus repositorios. Anota el nombre del corredor, ya que lo necesitarás más adelante para confirmarlo.

Confirmar que el ejecutor autohospedado de GitHub se está ejecutando activamente
Confirmar que el ejecutor autohospedado de GitHub se está ejecutando activamente

Prueba del ejecutor autohospedado de GitHub

Ha instalado y configurado meticulosamente el ejecutor autohospedado de GitHub, lo cual ya es un hito. Pero, al igual que un puente recién construido que se somete a pruebas rigurosas para garantizar su integridad estructural, debes validar la confiabilidad y efectividad de tu GitHub Self-hosted Runner.

Para probar su ejecutor autohospedado de GitHub, creará un flujo de trabajo de GitHub para ejecutarlo en su repositorio de GitHub, de la siguiente manera:

1. Crea una carpeta llamada .github/flujos de trabajo en su repositorio de GitHub, una ubicación estandarizada y reconocida para almacenar archivos de configuración de flujo de trabajo.

Esta estructura de carpetas es crucial para que GitHub Actions detecte y ejecute flujos de trabajo asociados con su repositorio automáticamente.

2. A continuación, cree un archivo llamado prueba.yaml en el .github/flujos de trabajo y agregue el siguiente flujo de trabajo de muestra al archivo.

Este flujo de trabajo está diseñado para ejecutarse manualmente a través de la pestaña Acciones, lo que brinda flexibilidad para la ejecución bajo demanda. El objetivo principal es validar que el ejecutor autohospedado esté operativo y pueda ejecutar flujos de trabajo correctamente.

name: Test

on:
  # Allows running your workflow manually from the Actions tab
  workflow_dispatch:

jobs:
  # Contains a single job called "test"
  test:
    runs-on: demo-runner
    steps:
      # Checks out the repository under $GITHUB_WORKSPACE
      - uses: actions/checkout@v2
      - name: Display text
        run: echo Github self-hosted runner working

3. En GitHub, navegue hasta el Comportamiento pestaña y haga clic Ejecutar flujo de trabajo desde la página que muestra un flujo de trabajo llamado Pruebacon un envío_flujo de trabajo desencadenante del evento.

Esta acción le permite ejecutar manualmente su flujo de trabajo.

Ejecutar el flujo de trabajo manualmente
Ejecutar el flujo de trabajo manualmente

Si todo funciona en su flujo de trabajo, obtendrá el siguiente resultado.

Probando el flujo de trabajo
Probando el flujo de trabajo

4. Finalmente, reconfirme que el ejecutor está en uso verificando los registros de flujo de trabajo. Como se indica a continuación, los registros de la Configurar trabajo paso mostrar el Nombre del corredor y Nombre de la máquina.

Confirme que ve el que anotó en el paso cuatro de la sección “Implementar y configurar el ejecutor autohospedado de GitHub”.

Confirmar que el ejecutor autohospedado de GitHub está en uso
Confirmar que el ejecutor autohospedado de GitHub está en uso

Conclusión

En este tutorial, aprendió a configurar GitHub ARC, proporcionando un punto de control centralizado para orquestar sus flujos de trabajo. Después de eso, habló sobre la implementación y configuración de su ejecutor autohospedado de GitHub, convirtiéndolo en un actor estrella en su proceso de desarrollo.

Ahora dispone de un flujo de trabajo optimizado y adaptable que se alinea con sus necesidades. Pero en el futuro, ¿por qué no ampliar sus conocimientos explorando tecnologías avanzadas? Acciones de GitHub ¿características? Personalice los flujos de trabajo para diferentes escenarios y optimice continuamente sus procesos de CI/CD.

Written by

Leave a comment