Argo CDはじめました

Container
スポンサーリンク

Argo CD

CDとは、継続的デプロイ(Continuous Deploy)のことですね。
Argo CDは、GitOpsとよばれる環境を提供します。

Argo CD - Declarative GitOps CD for Kubernetes

アーキテクチャは、サイトにある下の画像のようなものになります。

アーキテクチャ

Architectural Overview - Argo CD - Declarative GitOps CD for Kubernetes

Argo CD CLIをセットアップ

始まる前の準備です。

$ brew install argocd

セットアップ

ネームスペースを作成

$ kubectl create namespace argocd
namespace/argocd created

Argo CDをアプライ

$ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Warning: apiextensions.k8s.io/v1beta1 CustomResourceDefinition is deprecated in v1.16+, unavailable in v1.22+; use apiextensions.k8s.io/v1 CustomResourceDefinition
customresourcedefinition.apiextensions.k8s.io/applications.argoproj.io created
customresourcedefinition.apiextensions.k8s.io/appprojects.argoproj.io created
serviceaccount/argocd-application-controller created
serviceaccount/argocd-dex-server created
serviceaccount/argocd-redis created
serviceaccount/argocd-server created
role.rbac.authorization.k8s.io/argocd-application-controller created
role.rbac.authorization.k8s.io/argocd-dex-server created
role.rbac.authorization.k8s.io/argocd-redis created
role.rbac.authorization.k8s.io/argocd-server created
clusterrole.rbac.authorization.k8s.io/argocd-application-controller created
clusterrole.rbac.authorization.k8s.io/argocd-server created
rolebinding.rbac.authorization.k8s.io/argocd-application-controller created
rolebinding.rbac.authorization.k8s.io/argocd-dex-server created
rolebinding.rbac.authorization.k8s.io/argocd-redis created
rolebinding.rbac.authorization.k8s.io/argocd-server created
clusterrolebinding.rbac.authorization.k8s.io/argocd-application-controller created
clusterrolebinding.rbac.authorization.k8s.io/argocd-server created
configmap/argocd-cm created
configmap/argocd-gpg-keys-cm created
configmap/argocd-rbac-cm created
configmap/argocd-ssh-known-hosts-cm created
configmap/argocd-tls-certs-cm created
secret/argocd-secret created
service/argocd-dex-server created
service/argocd-metrics created
service/argocd-redis created
service/argocd-repo-server created
service/argocd-server created
service/argocd-server-metrics created
deployment.apps/argocd-dex-server created
deployment.apps/argocd-redis created
deployment.apps/argocd-repo-server created
deployment.apps/argocd-server created
statefulset.apps/argocd-application-controller created

ポートフォアードを設定

$ kubectl port-forward svc/argocd-server -n argocd 8080:443

https://localhost:8080 にアクセス

ログインをセットアップする

ログインができないので、パスワードを設定します。
デフォルトで
admin
ユーザーが用意されています。

$ kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2

argocd-server-547d9bb879-bfq4v
$ argocd login localhost:8080
WARNING: server certificate had error: x509: certificate signed by unknown authority. Proceed insecurely (y/n)? y
Username: admin
Password:
FATA[0010] rpc error: code = Unauthenticated desc = Invalid username or password

ここはエラーになります。

argo-cd/faq.md at master · argoproj/argo-cd · GitHub
にあるように

adminユーザーのパスワードを password に変更します。

kubectl -n argocd patch secret argocd-secret \
  -p '{"stringData": {
    "admin.password": "$2a$10$rRyBsGSHK6.uc8fntPwVIuLVHgsAhAX7TcdrqW/RADU0uh7CaChLa",
    "admin.passwordMtime": "'$(date +%FT%T%Z)'"
  }}'

成功すると

secret/argocd-secret patched

となります。その後、再度試すと

$ argocd login localhost:8080
WARNING: server certificate had error: x509: certificate signed by unknown authority. Proceed insecurely (y/n)? y
Username: admin
Password:
'admin' logged in successfully
Context 'localhost:8080' updated

成功しました!

Web画面でログイン

これで、ひとまず終了です。

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