💨
Argo CD と Github リポジトリを Github App で連携する
対象読者
- Argo CD を利用しており、Github リポジトリと連携している
- PAT による連携から Github App へ切り替えて少しでも属人的な設定を減らしたい方向け
- 設定手順をサッと知りたい方向け
前提・用語など
- Argo CD
- 外部に保存されている k8s マニフェストを読み取り、任意の k8s クラスタに適用する OSS
- 定期的に Github リポジトリをチェックし、変更を検出、適用することができる
- GitHub
- Git リポジトリのマネージドサービス
- PAT
- Personal Access Token
- ここでは Github の個人ユーザにより作成された Github API Token を指す
課題
Argo CD と Github リポジトリを連携する方法はいくつかある
一番簡単なのは、PATを利用して連携する方法だが、PATはその名からわかるように個人に紐付く情報であるため、属人的な設定となる
対応概要
Github Organization に、Githu App を作成、インストールし、Argo CD と連携する
これにより属人的な要素を排除できる
対応詳細
- Github Organization 配下で Github App を作成する
- 組織のGithubAppページ(https://github.com/organizations/{your-org}/settings/apps)へ移動し、[New Github App]で作成可能
- Homepage URL は、任意の URL を設定
- Webhook は利用する必要がないので、Active のチェックを外す
- Permission の項目で、「Contents」を、「Read」に設定
- 組織のGithubAppページ(https://github.com/organizations/{your-org}/settings/apps)へ移動し、[New Github App]で作成可能
- プライベートキーの生成
- Github App 作成後、アプリの設定画面に遷移するので、画面下の「Private keys」で秘密鍵を生成する
- Generate a private key をクリックすると鍵が生成される
- その名から分かるように、この鍵は関係者にのみ共有し、外部へ流出させてはならない
- Github App 作成後、アプリの設定画面に遷移するので、画面下の「Private keys」で秘密鍵を生成する
- Github App のインストール
- 組織のGithubAppページ(https://github.com/organizations/{your-org}/settings/apps)へ移動し、作成した Github App の Edit をクリック
- 左上の「Install App」リンクをクリックして、インストール先の組織をクリック
- 組織全体にインストールするか、明示的に選択したリポジトリを対象にインストールするかを問われるので、選択
- 特にこだわりがないのなら、必要なリポジトリに限定すると良い
- インストールすると、インストールID(${install-id} が URL 上に表示されるのでこれを控えておく
- https://github.com/organizations/{your-org}/settings/installations/{install-id}
- Argo CD に Github 連携の設定を行う
- Argo CD の「Settings」>「Repositories」>「Connect Repo」に遷移し以下を設定の上 CONNECT
項目 | 値 |
---|---|
Choose your connection method | VIA GITHUB APP |
Type | GitHub |
Project | 利用を許可する任意のプロジェクト |
Repository URL | Github リポジトリの URL |
Github App ID | https://github.com/organizations/{your-org}/settings/installations/ > 作成した Github App の Configure > App settings から確認可能 |
github App Installation ID | 手順 3. で確認したIDを入力。忘れたときは、https://github.com/organizations/{your-org}/settings/installations/ > 作成した Github App の Configure へ遷移すると URL からインストールIDがわかる |
Github App private key | 手順 2. でダウンロードしたプライベートキーの内容を貼り付け |
参考とした資料など
- https://argo-cd.readthedocs.io/en/release-2.0/user-guide/private-repositories/#github-app-credential
- サーバ関連のご相談(お仕事含)がありましたら、X のDMまでお気軽にご連絡ください
Discussion