LoginSignup
2
0

More than 1 year has passed since last update.

ArgoCDをOpenShift環境にデプロイする

Last updated at Posted at 2021-07-09

はじめに

調査のための検証のメモです。(あくまで、簡易検証の作業のメモです。本番環境などではご自身で適切な手順を調査/検証してください。)

環境

  • Red Hat OpenShift on IBM Cloud
    • 4.7.16_1523
  • ArgoCD
    • v2.0.4+0842d44
  • 端末はWindows10
    • ocコマンド導入済み

参考にした情報

作業メモ

プロジェクト(namespace)の作成

oc login済みである前提です。

  1. oc new-project argocdを実施
PS C:\mywork> oc new-project argocd
Now using project "argocd" on server "https://XXXX.jp-tok.containers.cloud.ibm.com:31105".

You can add applications to this project with the 'new-app' command. For example, try:

    oc new-app rails-postgresql-example

to build a new example application in Ruby. Or use kubectl to deploy a simple Kubernetes application:

    kubectl create deployment hello-node --image=k8s.gcr.io/serve_hostname

PS C:\mywork>

ArgoCDのマニフェストをApply

1. 作業用ディレクトリの作成

PS C:\mywork> mkdir argocd


    ディレクトリ: C:\mywork


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2021/07/09     10:42                argocd


PS C:\mywork> cd .\argocd\
PS C:\mywork\argocd>

2. install.yamlの入手

PS C:\mywork\argocd> Invoke-WebRequest -Uri https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml -OutFile install.yaml
PS C:\mywork\argocd> dir


    ディレクトリ: C:\mywork\argocd


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2021/07/09     10:44         136926 install.yaml


PS C:\mywork\argocd>

3. install.yamlのapply

PS C:\mywork\argocd> oc apply -n argocd -f ./install.yaml
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
networkpolicy.networking.k8s.io/argocd-application-controller-network-policy created
networkpolicy.networking.k8s.io/argocd-dex-server-network-policy created
networkpolicy.networking.k8s.io/argocd-redis-network-policy created
networkpolicy.networking.k8s.io/argocd-repo-server-network-policy created
networkpolicy.networking.k8s.io/argocd-server-network-policy created
PS C:\mywork\argocd>

4. podの状態確認

  • oc get podsコマンドを使い、argocdのnamespaceに存在しているpodの状態を確認します(エラーが出ているPodが無いか)
PS C:\mywork\argocd> oc project
Using project "argocd" on server "https://XXXXXX.jp-tok.containers.cloud.ibm.com:31105".
PS C:\mywork\argocd> 
PS C:\mywork\argocd> oc get pods
NAME                                  READY   STATUS    RESTARTS   AGE
argocd-application-controller-0       1/1     Running   0          2m42s
argocd-dex-server-76ff776f97-8pfmc    1/1     Running   0          2m42s
argocd-redis-747b678f89-ltjk9         1/1     Running   0          2m42s
argocd-repo-server-6fc4456c89-wvb2j   1/1     Running   0          2m42s
argocd-server-7d57bc994b-xs8hm        1/1     Running   0          2m42s
PS C:\mywork\argocd>
PS C:\mywork\argocd> oc get pods -n argocd
NAME                                  READY   STATUS    RESTARTS   AGE
argocd-application-controller-0       1/1     Running   0          2m38s
argocd-dex-server-76ff776f97-8pfmc    1/1     Running   0          2m38s
argocd-redis-747b678f89-ltjk9         1/1     Running   0          2m38s
argocd-repo-server-6fc4456c89-wvb2j   1/1     Running   0          2m38s
argocd-server-7d57bc994b-xs8hm        1/1     Running   0          2m38s
PS C:\mywork\argocd> 
  • 後続作業の前提として、以下の2つのPodの状態は要チェックします
PS C:\mywork\argocd> oc -n argocd get pod -l "app.kubernetes.io/name=argocd-server"                                     NAME                             READY   STATUS    RESTARTS   AGE
argocd-server-7d57bc994b-xs8hm   1/1     Running   0          6m22s
PS C:\mywork\argocd> oc -n argocd get pod -l "app.kubernetes.io/name=argocd-dex-server"
NAME                                 READY   STATUS    RESTARTS   AGE
argocd-dex-server-76ff776f97-8pfmc   1/1     Running   0          6m43s
PS C:\mywork\argocd>

ArgoCDサーバーのパスワード取得

image.png

  • [argocd-initial-admin-secret]を選択し、詳細画面を開く image.png
  • 画面をスクロール(ここで[Reveal values]リンクをクリックすると表示される) image.png

ArgoCDサーバーのExposeおよびRouteの作成

1. patchの適用

  • 詳細は調べていないのですが(恥)、、検証した人のブログ等を参考に対応しました(--insecureの設定を追加したりしていました。)
PS C:\mywork\argocd> oc -n argocd patch deployment argocd-server --patch-file argocd-server-deployment.yaml
deployment.apps/argocd-server patched
PS C:\mywork\argocd>

2. Route作成

PS C:\mywork\argocd> oc -n argocd create route edge argocd-server --service=argocd-server --port=http --insecure-policy=Redirect
route.route.openshift.io/argocd-server created
PS C:\mywork\argocd>
PS C:\mywork\argocd> oc get route -n argocd
NAME            HOST/PORT                                                                                                              PATH   SERVICES        PORT   TERMINATION     WILDCARD
argocd-server   argocd-server-argocd.mycluster-jp-tok-123456-0XXXXXXXXXXXXXXXXXXX0-0000.jp-tok.containers.appdomain.cloud          argocd-server   http   edge/Redirect   None
PS C:\mywork\argocd>

3. ブラウザーからアクセス

  • get routeコマンドで確認したHOST/PORTの値をブラウザーのアドレスバーに入力し、アクセスします image.png

Adminパスワードのリセット

1. 初回のログイン

  • [Username]には「admin」、[Password]にはsecretから確認した値を指定し[SIGIN IN]をクリックします image.png
  • ログインできることを確認します image.png

2. パスワードの変更

  • FAQより、ガイドを抜粋します
    • To change the password, edit the argocd-secret secret and update the admin.password field with a new bcrypt hash.
  • Web Console上で[argocd-secret]の詳細画面を開きます image.png
  • [Action]⇒[Edit Secret]メニューをクリックします image.png
  • [admin.password]を編集します
    • FAQを参考に暗号化します(You can use a site like https://www.browserling.com/tools/bcrypt to generate a new hashimage.png
  • 編集後は忘れず[Save]します

image.png

  • 新しいパスワードでログインできることも確認してください

ArgoCD CLIのダウンロード

感想

特に躓かずに作業できましたが、以下には手を出せていません。

以上。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0