@kyanny's blog

My thoughts, my life. Views/opinions are my own.

macOS の minikube に Actions Runner Controller をインストールできない -> docker logout ghcr.io でできた

公式の手順 アクション ランナー コントローラーのインストール の通りにやっているが、

❯ 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 をアンインストールしても解決しなかったわけだ。そんなレイヤーの問題だなんてわかりっこないよ!