ArgoCDをOpenShift環境にデプロイする
はじめに
調査のための検証のメモです。(あくまで、簡易検証の作業のメモです。本番環境などではご自身で適切な手順を調査/検証してください。)
環境
- Red Hat OpenShift on IBM Cloud
- 4.7.16_1523
- ArgoCD
- v2.0.4+0842d44
- 端末はWindows10
- ocコマンド導入済み
- ocコマンド導入済み
参考にした情報
- https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.7/html/cli_tools/openshift-cli-oc
- How To Install ArgoCD on OpenShift Cluster ★主にこちら...
- Argo CD - Declarative GitOps CD for Kubernete
- Argo CD Operator - OpenShift Install
- 第7章 OpenShift Container Platform での ArgoCD の使用 ※4.3
- OpenShift 4 (CodeReady Containers)でのArgo CDの導入・利用
作業メモ
プロジェクト(namespace)の作成
※oc login
済みである前提です。
-
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サーバーのパスワード取得
-
FAQより
- https://argoproj.github.io/argo-cd/faq/#i-forgot-the-admin-password-how-do-i-reset-it
For Argo CD v1.9 and later, the initial password is available from a secret named argocd-initial-admin-secret
-
SeacretをWeb Consoleから確認
- [argocd]プロジェクト内のsecretを参照
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. ブラウザーからアクセス
Adminパスワードのリセット
1. 初回のログイン
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]の詳細画面を開きます
- [Action]⇒[Edit Secret]メニューをクリックします
- [admin.password]を編集します
- 編集後は忘れず[Save]します
- 新しいパスワードでログインできることも確認してください
ArgoCD CLIのダウンロード
- 以下から最新のモジュールをダウンロードしてインストールします
- 今回は以下を利用しました
感想
特に躓かずに作業できましたが、以下には手を出せていません。
以上。
Author And Source
この問題について(ArgoCDをOpenShift環境にデプロイする), 我々は、より多くの情報をここで見つけました https://qiita.com/nykym/items/c61a8f98334692c85ec2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .