最近、「そろそろGitOpsっぽい運用をやってみたいなぁ」と思い始めました。手動でkubectl apply
とかするの、正直だんだん面倒になってきますし…。
ということで、ArgoCDを使ってGitOpsの第一歩を踏み出してみよう!と思ったのですが、導入のハードルがちょっと高く感じて、なかなか腰が重かったんですよね。
今回は、「とりあえずコマンドだけでArgoCDを入れて、GUIをローカルから覗けるようにする」というところまでを、シンプルにやってみようと思います。
Bootstrappingとかリポジトリ追加とか、そのへんはまた別の記事で!まずはArgoCDの顔を見ることを目標に、最短距離でやっていきます。
Contents
前提
kubernetesは導入済であるとします。まだの方は以下とかを参考にどうぞ
手順
ArgoCDを導入
ラクをするためにhelmを使います
参考: https://github.com/argoproj/argo-helm/tree/main/charts/argo-cd
kubectl create namespace my-namespace
helm repo add argo https://argoproj.github.io/argo-helm
helm install argocd argo/argo-cd --namespace argocd
ArgoCD ServiceのtypeをNodePortに変更する
CLIでmanifestをいじります。
kubectl get svc argocd-server -n argocd
以下の箇所を修正。ポート番号を省略した場合は自動で割り振られます。
spec:
ports:
- name: http
nodePort: 30992 # 行を追加(任意)
port: 80
protocol: TCP
targetPort: 8080
- name: https
nodePort: 30080 # 行を追加(任意)
port: 443
protocol: TCP
targetPort: 8080
type: NodePort # ClusterIPから変更
※ デフォルトのエディタがvimなので慣れてない人は頑張ってください。とりあえず以下を把握してれば編集はできそうな気がします。
- i 編集モードに移動する
- esc 編集モードから出る
- :w 保存する
- :q エディタを終了する
- :wq 保存して終了
- :q! 強制的に終了
GUIにアクセスする
ブラウザからhttps://{NodeのIPアドレス}:30080にアクセスしてみます。オレオレ証明書なので接続時にwarningが出ますが無視しましょう。以下のような画面が出れば成功です。

ログインしてみる
管理者用の初期パスワードを取得
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
ログイン
以下の情報でログインする
- user: admin
- password: 先ほど取得したパスワード

気になりポイント
ログアウト後にexample.argocd.comに遷移する
configmapに設定項目があるので修正します。
kubectl edit configmap argocd-cm -n argocd
以下の箇所を実際の値に変更。
data:
# https://argocd.example.comから変更
url: https://{NodeのIPアドレス}:30080
終わり
というわけで、今回はArgoCDをとりあえずローカルで触ってみるところまでをCLIだけでやってみました。Helmでインストールして、ServiceのtypeをNodePortにして、GUIにアクセス。
ついでにログイン情報を拾って、ダッシュボードに入るところまでできれば、あとはもう「ArgoCD使ってる人」って名乗っていいんじゃないかと思います(たぶん)。
まだまだ「やりたいこと」はたくさんあるんですが、今回はこのへんでいったん一区切りにします。Bootstrappingとかアプリの自動同期とか、触ってみて「おっ」と思ったことはまた記事にしていく予定なので、よかったらまた遊びに来てください!