#初めに
現場で、argoCDを用いた簡易動作の調査の依頼を受けてはまったので備忘録として残します。
#argoCDについて
Argo CDは、KubernetesのためのGitOpsに則ったCD(Continuous Delivery)ツール
"CD" という名前のとおり、継続的デリバリーに特化したツールであり、CI(Continuous Integration)の機能はありません。そのため、CIツールとは別途、他の方法で統合する必要があります。
#argoCD環境構築方法
●DockerDesktopにkubernetesをインストール
画面右上の歯車マークを押下して Kubernetesを選択します。
その後、Enable Kubernetesにチェックを入れた後 Apply&Restartを押下することでインストールが完了します。
インストール後は、CLIで kubectlコマンドが実行できるか確認してください。
※openshiftなどを使った事があるマシンで行うと実行できない場合があります。(私がそうでした)
その場合、docker configで設定を行う必要があります。
●argoCD用のnamespaceとpod作成
以下のコマンドを押下してください。
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
●port-forwardを用いてargoCDのGUI画面を作成する
kubectl port-forward svc/argocd-server -n argocd 8080:443
webでlocalhost:8080で接続する事ができます。
接続できると以下のような画面が出ます。
●web GUIにログインする
Usernameは固定されていて、 admin で入る事ができます。
パスワードは次のコマンドを実行することで確認する事ができます。
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
windowsなどを使っていてbase64が入っていなくても得られた値をネットのbase64変換サイトでデコードしたものでもログインする事ができました。
●Githubとの連携
・publicリポジトリの場合
左にある歯車を押下後、Repositoriesを選択
Repository URLに接続したいgitのHTTPSから始まるコードを入れて CONNECTを押下
・privateリポジトリの場合(※大はまりしました)
業務で導入したい方は、publicだとセキュリティ上厳しいと思いますのでこちらを参考にしていただきたいです。
ここまではpublicと同じです。
--------------------間違えたやり方-------------------------------
privateで接続するので、URLは先ほどと同様接続したいリポジトリ(private)のURLを選択
Usernameには、githubのユーザ名
Passwordには、githubのパスワード
よし!、これでつながるだろ!!CONNECT押下
エラー 認証ができません
なんでや!!
冷静に調査してみると、気になる記事が
記事によると、GitHubでは2021年8月13日にパスワード認証が廃止されたとのこと
なんだと、、、
直近の事象だったので、Webに上がっている情報はパスワード認証前の情報ばかりだったのでそのおかげで大はまりする事ができました、ありがとうございます。(畜生、、、)
わかるか笑!!
じゃあどうやって連携するのかというとタイトル通りトークンで連携します。
まず、トークンを取得します。
取得方法は、以下の記事がわかりやすかったので指示に従ってください
トークンが取得できたら以下の画面に戻り
Repository URL :接続したいprivate レポジトリのURL
Username :接続したリポジトリのアカウントのUsername
Password :先ほど取得したトークンの値(コピーしたやつです)
CONNECTを押下すると接続できると思います。
#最後に(感想みたいなもの)
今回、直近で公式の仕様が変わってしまうとネットの記事が使い物にならなくなってしまうことを学びました。
直近で仕様が変わっても対処できるよう、ITの基礎知識と最新情報を取得していきたいと思います。