公式の手順 アクション ランナー コントローラーのインストール の通りにやっているが、
❯ NAMESPACE="arc-systems" helm install arc \ --namespace "${NAMESPACE}" \ --create-namespace \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set-controller Error: INSTALLATION FAILED: GET "https://ghcr.io/v2/actions/actions-runner-controller-charts/gha-runner-scale-set-controller/tags/list": GET "https://ghcr.io/token?scope=repository%3Aactions%2Factions-runner-controller-charts%2Fgha-runner-scale-set-controller%3Apull&service=ghcr.io": unexpected status code 403: denied: denied
なぜだ。minikube をアンインストールしてやり直してもエラーが出続ける。Vagrant で Ubuntu VM を作って minikube をインストールした環境だと問題なく ARC をインストールできる。
❯ docker version Client: Cloud integration: v1.0.35 Version: 24.0.2 API version: 1.43 Go version: go1.20.4 Git commit: cb74dfc Built: Thu May 25 21:51:16 2023 OS/Arch: darwin/amd64 Context: desktop-linux Server: Docker Desktop 4.21.1 (114176) Engine: Version: 24.0.2 API version: 1.43 (minimum version 1.12) Go version: go1.20.4 Git commit: 659604f Built: Thu May 25 21:52:17 2023 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.6.21 GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8 runc: Version: 1.1.7 GitCommit: v1.1.7-0-g860f061 docker-init: Version: 0.19.0 GitCommit: de40ad0 ❯ minikube version minikube version: v1.31.1 commit: fd3f3801765d093a485d255043149f92ec0a695f ❯ kubectl version WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short. Use --output=yaml|json to get the full version. Client Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.2", GitCommit:"7f6f68fdabc4df88cfea2dcf9a19b2b830f1e647", GitTreeState:"clean", BuildDate:"2023-05-17T14:20:07Z", GoVersion:"go1.20.4", Compiler:"gc", Platform:"darwin/amd64"} Kustomize Version: v5.0.1 Server Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.3", GitCommit:"25b4e43193bcda6c7328a6d147b1fb73a33f1598", GitTreeState:"clean", BuildDate:"2023-06-14T09:47:40Z", GoVersion:"go1.20.5", Compiler:"gc", Platform:"linux/amd64"} ❯ helm version version.BuildInfo{Version:"v3.12.2", GitCommit:"1e210a2c8cc5117d1055bfaa5d40f51bbc2e345e", GitTreeState:"clean", GoVersion:"go1.20.6"}
何が悪いのか一ミリもわからない。ARC のインストールがまともにできた試しがない。ただでさえ複雑すぎる Kubernetes の上にさらに意味不明なレイヤーが重なっていて、何か一つでも動かないと一体どこのレイヤーの問題なのか切り分けることすら困難。エラーメッセージで検索しても一向にヒットせず、手掛かりなし。
特権を活かして社内 Slack を漁ったら同じ症状を報告している人がいて、docker logout ghcr.io
したら解決したと。
❯ docker logout ghcr.io Removing login credentials for ghcr.io
ARC の Helm Chart は public image なので認証不要でダウンロードできるはず・べき、なのでパーミッションエラーが出るということは ghcr.io の Docker レジストリに対して変な認証情報でログインしてしまっているせいでは?という流れだった。
難しすぎる・・どうりで minikube をアンインストールしても解決しなかったわけだ。そんなレイヤーの問題だなんてわかりっこないよ!