Otama's Playground > サーバー > ArgoCDとGitHubをSSH接続で連携するときに詰まった話【備忘録】

ArgoCDとGitHubをSSH接続で連携するときに詰まった話【備忘録】

題の通りです。ArgoCDとGitHubを接続しようとしたときに、ちょっとハマったところがあったので備忘録がてらメモしておきます。同じところで引っかかる人が減りますように

あくまで僕の環境(GitHubリポジトリ、ArgoCD、接続はSSH)での話ですが、手順をなぞるだけでも一応つながるはず。細かい部分で「あれ?」となったところを中心にまとめています。

ArgoCDをGitHubに接続する手順

まずはGitHubとArgoCDのそれぞれでやるべきことをざっくり書いておきます。

Github側作業

  1. リポジトリを作成
  2. リポジトリのDeploy KeyにSSH公開鍵を設定

ArgoCD側作業

  1. Settings > Repositories+ CONNECT REPOと移動してリポジトリを登録するフォームを表示する
  2. フォームに以下を入力する
    • Choose your connection methodVIA SSH
    • Repository URL にGitHubのSSH用URL(git@github.com:xxx/yyy.gitみたいなやつ)
    • SSH private key data に秘密鍵の中身をペースト
  3. 完了

ハマりポイント

簡単そうに見えて、実は数カ所ハマりどころがありました…というのが本題。

  • SSH公開鍵の設定場所
  • SSH公開鍵のパスワードはなしにする必要がある
  • リポジトリが空だとNG

SSH公開鍵の設定場所

SSHの公開鍵はDeploy Keysに設定します。多分アカウントのSSH keysでもいける気がしますが試してません。

SSH公開鍵のパスワードはなしにする必要がある

SSH公開鍵にパスワードがついている場合はConnection Statusがfailedになってしまうため、新規作成する or 既存SSH鍵のpassphraseを消すかのどちらかでパスワードなしのSSH公開鍵を用意します。

新規作成する場合は、以下を実行してpassphraseなしで設定する。

Bash
ssh-keygen -t ed25519 -C "{メールアドレス}"

passphraseを消す場合は以下でpassphrase変更処理を呼び出す。

Bash
ssh-keygen -f {秘密鍵のパス} -p

空のリポジトリはNG

ここ地味にハマりポイントでした。

リポジトリが空の場合もConnection Statusがfailedになってしまうため、テキトーにREADMEだけでもpushしてから、argocdに追加しましょう。リポジトリ作成時にREADMEありで作っとくとラクかも。

最後に

というわけで、GitHubとArgoCDをSSHでつなぐときに自分がつまずいたポイントをざっくり書いてみました。

正直、最初は「リポジトリURL入れて鍵貼るだけでしょ?」と思っていたんですが、意外と細かい落とし穴がいくつかあって…。特に「空のリポジトリはNG」だったり「パスフレーズ付きの鍵だと怒られる」といった点は、知らないとまずハマります。

この記事が、未来の自分 or 同じところでつまづく誰かの役に立てば幸いです。
また何かハマったら、こうしてメモを残していこうと思います。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です