🐕

ArgoCDにGithubAppの資格情報を使ってリポジトリを登録する

2023/01/31に公開

基本的にこちらの公式手順の通りにやればOK
https://github.com/argoproj/argo-cd/blob/master/docs/user-guide/private-repositories.md#github-app-credential
ただ、いくらかハマったので備忘録。

手順

ArgoCDに登録するにはGithubAppの3つの情報が必要

  • AppID
  • Installation ID
  • Private Key

GithubAppを作る

  1. DeveloperSettings → NewGithubAppから作る
    App IDを控えておく
  2. Private keysを作成する(General画面の下のほうにある。ちょっとわかりにくい)
  3. PermissionでRepositoryPermissionのContentsに「Read-Only」を設定する
  4. Install Appから対象リポジトリにGithubAppをインストールする
    その際の、URLに付与されているinstallationsパスの下の8桁数字IDを控えておく(InstlattionID)

App ID, Installation ID, PrivateKeyファイルの3つがそろったと思う。

ArgoCDに登録する

コマンドラインの場合

argocd repo add https://github.com/vampire-yuta/sample.git --github-app-id 287719 --github-app-installation-id 11693000 --github-app-private-key-path ./argocd-dev-vamdemic.2023-01-31.private-key.pem

もちろん、yamlに書いてあげてもいい。

無事登録できると、UIからSuccessfullと出る。よかった。

遭遇したエラー

Helmバージョンをargo-cd-5.19.3 → argo-cd-5.19.10にしたら治った
デフォルトで登録されているKnownHostに一部使えないものがあるみたい?

time="2023-01-31T09:59:17Z" level=error msg="finished unary call with code Unknown" error="error testing repository connectivity: error creating SSH agent: \"SSH agent requested but SSH_AUTH_SOCK not-specified\"" grpc.code=Unknown grpc.method=TestRepository grpc.service=repository.RepoServerService grpc.start_time="2023-01-31T09:59:17Z" grpc.time_ms=0.226 span.kind=server system=grpc  

GithubAppの資格情報のいずれかが間違っているかもしれない
リポジトリに到達できなかった時に吐かれるエラーのようなので、そういうことだと思う。

FATA[0000] rpc error: code = Unknown desc = error testing repository connectivity: repository not found

参考

https://github.com/argoproj/argo-cd/blob/master/docs/user-guide/private-repositories.md#github-app-credential
https://qiita.com/reoring/items/6918fdbb7e235bb0688f
https://github.com/argoproj/argo-cd/issues/8619

Discussion