🗂

Argo CD で GitHub Actions Runner Controller を動かしてみる

2024/12/03に公開

この記事はUniMagic Advent Calendar 2024の2日目の記事です(1日遅れ)
相変わらずゆにまじ関係なさそうな話題ですが、一応関係あります

経緯

VRChat内の学園型イベント「魔術学舎United」で、プライベートリポジトリを運用する機会があり、上限を気にせずにactionsを走らせたかったのでGtiHub ActionsのRunnerをセルフホストしてみました

環境

  • microk8s v1.29
  • argocd v2.7
    kubernetesクラスタは転がってたものを使用しています

出来上がったマニフェスト

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: arc
  namespace: argocd
spec:
  project: default
  source:
    repoURL: ghcr.io/actions/actions-runner-controller-charts
    chart: gha-runner-scale-set-controller
    targetRevision: 0.9.3
  destination:
    server: https://kubernetes.default.svc
    namespace: arc-systems
  syncPolicy:
    syncOptions:
      - ServerSideApply=true
    automated:
      prune: false
      selfHeal: false
---
apiVersion: v1
kind: Namespace
metadata:
  name: arc-systems
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: arc-runners
  namespace: argocd
spec:
  project: default
  source:
    repoURL: ghcr.io/actions/actions-runner-controller-charts
    chart: gha-runner-scale-set
    targetRevision: 0.9.3
    helm:
      parameters:
        - name: githubConfigUrl
          value: "https://github.com/hoge/hoge"
        - name: githubConfigSecret.github_token
          value: "hogehoge"
        - name: controllerServiceAccount.name
          value: "arc-gha-rs-controller"
        - name: controllerServiceAccount.namespace
          value: "arc-systems"
  destination:
    server: https://kubernetes.default.svc
    namespace: arc-runners
  syncPolicy:
    syncOptions:
      - ServerSideApply=true
    automated:
      prune: false
      selfHeal: false

---
apiVersion: v1
kind: Namespace
metadata:
  name: arc-runners

構成

heml chartをargocd経由でデプロイしています

Heml Application

githubConfigSecret.github_token

repo 権限を付与した personal access token を設定してください

namespace

argocdのデプロイ先にすると良い...らしい?

destination

各自の環境に合わせて変更してください

syncPolicy

  • ServerSideApply
    メタデータがオーバーフローするかなにかで有効にする必要があった(はず)です
  • automated
    helm chartを適用すると自動的に別のpodが起動するため、pruneやselfHealは無効化する必要があります
    私はこれで1日くらい溶かしました

さいごに

やはり公式が用意しているRunnerの方が速いし優秀です
金に余裕がある人は大人しく課金したほうが良さそうです

宣伝

魔術学舎United、略してUniMagic(ユニマジック)とは、VRの世界に関係の深い技術を学ぶ学園空間型のイベントです。
15名~18名程度で構成されるクラスで、2週間の授業と1週間の修了制作を通して、技術についての知見を深めていきます。
https://twitter.com/UniMagicVRC

Discussion