Argo CD プライベートレポジトリを登録してアプリケーションをデプロイ

Argo CDをもうちょっと触りたいので、今回はgithubプライベートレポジトリからArgo CDを用いてkubernetesクラスターにアプリケーションをデプロイしてみようと思います。

前提条件

  • すでに Argo CD がKubernetes上にインストール・起動されていること
  • Argo CDのWeb GUI(UI)にログインできること
  • デプロイしたいアプリケーションのプライベートリポジトリ(GitHubなど)が用意されている
  • GitHubでの例を中心に説明しますが、他のGitプラットフォームでも同様です

SSHキーの作成(ローカルPC側)

まずプライベートレポジトリをArgo CDに登録するにはGitHubに登録する「公開鍵(.pub)」と、Argo CDに登録する「秘密鍵」が必要です。
もしすでにSSHキーをお持ちの場合は、このステップはスキップしてください。

  1. ターミナル(macOS / Linuxなど)またはGit Bash(Windows)を起動
  2. 以下のコマンドで新規SSHキーを作成します。ファイル名は任意でOKです。
ssh-keygen -t ed25519 -C "<任意のコメント>" -f ~/.ssh/id_ed25519_argocd
  • -C はコメント(メールアドレスなど)を設定できるオプションです
  • ファイル名を id_ed25519_argocd とすることで、他の既存鍵と混同しづらくなります
  • パスフレーズは設定しません

 3. 作成後、以下の2ファイルができます:

秘密鍵: ~/.ssh/id_ed25519_argocd

公開鍵: ~/.ssh/id_ed25519_argocd.pub

GitHubへのSSH公開鍵登録

  1. GitHubにログイン
  2. 右上のプロフィールアイコン → Settings → 左メニューの SSH and GPG keys を選択
  3. 「New SSH key」ボタン をクリック
  4. Title: 任意の名前(例: Argo CD key
  5. Key 欄に、先ほど作成したファイル ~/.ssh/id_ed25519_argocd.pub の内容をコピペ
  6. 「Add SSH key」ボタンを押して登録完了

GitHubプライベートリポジトリのSSHクローンURLが git@github.com:<ORG>/<REPO>.git の形式であることも確認しておきます。

Argo CDのGUIでプライベートレポジトリを登録

次に、Argo CDのUIへログインしてSSH秘密鍵を登録します。

  1. Argo CDのWeb UIにアクセスし、ログイン
  2. 上部メニューもしくはサイドバーにある「Settings」から「Repositories」を選択
    • バージョンやUIによって表記が異なる場合があります
  3. 「Connect Repo」ボタン をクリック
  4. レジストリ追加画面で、以下のように入力・設定します:
    1. Repository Type: 「Git」
    2. Repository URL: SSH形式のURLを入力(例: git@github.com:<ORG>/<REPO>.git
    3. SSH Private Key:
      • 「SSH」タブや「SSHキーを利用する」等の選択肢があれば選択
      • 先ほど作成した 秘密鍵の中身 をコピペ(~/.ssh/id_ed25519_argocdの中身)
  5. 入力が完了したら 「Save」 ボタンをクリックし、登録完了です
    • 登録後、リポジトリ一覧画面に表示され、Connection Status などが「Successful」や「Connection successful」となればOK

Argo CDでアプリケーション作成・デプロイ

SSHレポジトリの登録が成功したら、いよいよKubernetesクラスターへのデプロイ設定を行います。

  1. Argo CD UIのトップページや上部メニューから 「Applications」 を選択
  2. 「New App」 ボタンをクリック
  3. General タブ(または基本情報入力画面)で以下を入力:
    • Application Name: 任意(例: my-application
    • Project: 基本的には default を利用(カスタムプロジェクトを使っている場合は適宜選択)
    • Sync Policy: ManualかAutoか選択(自動同期にするとプッシュ後すぐにデプロイが走ります)
  4. Source タブで以下を設定:
    • Repository URL: 先ほど登録したレポジトリを選択
    • Revision: デプロイしたいブランチ名(例: main
    • Path: リポジトリ内のKubernetesマニフェストがあるディレクトリパス(例: manifests/
  5. Destination タブで以下を設定:
    • Cluster: デプロイ先のKubernetesクラスター
      • 通常は https://kubernetes.default.svc (同一クラスタ) か、別途登録済みの外部クラスタを選択
    • Namespace: デプロイ先のNamespace(例: defaultargo-rollouts
  6. 入力が完了したら 「Create」 ボタンをクリック
  7. アプリケーション一覧に戻ると、新しく作成したアプリケーションが表示されます
    • 「Sync」や「Auto-Sync」が有効の場合は、数秒~数分でDeploymentやServiceなどのリソースが作成されます
    • 画面上にデプロイ状況やSyncステータスが表示され、問題なく動作していれば完了です
    • Manualの場合はアプリケーションをクリックしてSyncボタンを教えてください

まとめ

  1. SSHキーを作成(ローカルPCで公開鍵と秘密鍵を生成)
  2. GitHubに公開鍵を登録
  3. Argo CDのGUIで秘密鍵を登録
  4. Argo CD UIでアプリケーションを作成 → デプロイ先クラスターに自動または手動でデプロイ

上記の流れで設定を行えば、プライベートなGitHubリポジトリをArgo CDで監視・デプロイできるようになります。
パイプラインを自動化する場合は Sync PolicyAutomated を利用し、GitOpsスタイルの運用をスムーズにしてみてください。

タイトルとURLをコピーしました