프로젝트 소개

GitHub Actions Gateway(GAG)는 여러 팀이 셀프 호스팅 GitHub Actions 러너를 공유하는 클러스터를 위해 설계된 Kubernetes 오퍼레이터입니다. Actions Runner Controller(ARC) 스케일셋 모드의 대안을 자처하며, 멀티테넌트 규모에서 나타나는 격차를 해소합니다. 주요 기능으로는 파드 축출, 선점, 드레이닝으로 중단된 작업의 자동 재실행이 있으며, 실행별로 구성 가능한 재시도 예산을 지원합니다. 워커는 작업 사이에 제로로 스케일되고, 모든 러너 리스너는 스케일셋마다 항상 켜져 있는 파드 하나씩이 아니라 단일 공유 AGC 파드 내부에서 고루틴으로 실행됩니다. 각 테넌트는 테넌트별 프록시 풀을 통해 격리된 이그레스 아이덴티티를 받아, 팀별 IP 허용 목록과 감사 귀속이 가능합니다. 이 프로젝트는 클레임이 이루어지기 전에 작업 입장을 게이팅하여 공유 ResourceQuota를 안전하게 강제하고, Kubernetes PriorityClass 계층을 통한 GPU 우선순위 스케줄링을 지원하여 값비싼 하드웨어가 CPU 워크로드에 의해 굶주리지 않도록 합니다. Gateway Manager Controller는 단일 ActionsGateway 사용자 정의 리소스로부터 테넌트 인프라를 프로비저닝하여, 팀이 플랫폼 소유 할당량 내에서 셀프서비스할 수 있게 합니다. 추가 기능으로는 작업별 리소스 샘플링에 기반한 측정된 워커 적정 크기 조정, 작업 결론의 선행 기록(write-ahead) 영속화, 선별된 러너 템플릿 라이브러리, 동의 기반 교차 네임스페이스 프록시 공유, 그리고 클러스터 내 레지스트리 미러를 사용하는 신뢰할 수 없는 풀 리퀘스트를 위한 강tight 이그레스 태세가 있습니다. 이 프로젝트는 GHCR에서 서명된 Helm 차트로 제공되며, v2beta1이 권장 API 버전이고 v1 및 ARC에서의 마이그레이션 경로가 있습니다.