🗂
Argo CD で GitHub Actions Runner Controller を動かしてみる
この記事は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週間の修了制作を通して、技術についての知見を深めていきます。
Discussion