Argo CD アプリケーション
Argo CD ダッシュボード、oc ツール、または GitOps CLI を使用して OpenShift クラスター上にアプリケーションを作成し、デプロイする
概要
第1章 Argo CD を使用した Spring Boot アプリケーションのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Argo CD を使用すると、Argo CD ダッシュボードまたは oc ツールを使用して、アプリケーションを OpenShift Container Platform クラスターにデプロイできます。
1.1. Argo CD ダッシュボードを使用したアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
Argo CD は、アプリケーションを作成できるダッシュボードを提供します。
前提条件
- OpenShift Container Platform クラスターに管理者としてログインしている。
- Red Hat OpenShift GitOps Operator を OpenShift Container Platform クラスターにインストールしている。
- Argo CD インスタンスにログインしている。
手順
- Argo CD ダッシュボードで、New App をクリックして新規の Argo CD アプリケーションを追加します。
このワークフローでは、以下の設定で spring-petclinic アプリケーションを作成します。
- アプリケーション名
-
spring-petclinic - プロジェクト
-
default - 同期ポリシー
-
Automatic - リポジトリー URL
-
https://github.com/redhat-developer/openshift-gitops-getting-started - リビジョン
-
HEAD - パス
-
app - 宛先
-
https://kubernetes.default.svc - namespace
-
spring-petclinic
- Create をクリックしてアプリケーションを作成します。
- Web コンソールの Administrator パースペクティブを開き、Administration → Namespaces を展開します。
-
namespace を検索、選択してから Label フィールドに
argocd.argoproj.io/managed-by=openshift-gitopsを入力し、openshift-gitopsnamespace にある Argo CD インスタンスが namespace を管理できるようにします。
1.2. oc ツールを使用したアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
oc ツールを使用して、ターミナルで Argo CD アプリケーションを作成できます。
前提条件
- Red Hat OpenShift GitOps Operator を OpenShift Container Platform クラスターにインストールしている。
- Argo CD インスタンスにログインしている。
手順
サンプルアプリケーション をダウンロードします。
git clone git@github.com:redhat-developer/openshift-gitops-getting-started.git
$ git clone git@github.com:redhat-developer/openshift-gitops-getting-started.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションを作成します。
oc create -f openshift-gitops-getting-started/argo/app.yaml
$ oc create -f openshift-gitops-getting-started/argo/app.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc getコマンドを実行して、作成されたアプリケーションを確認します。oc get application -n openshift-gitops
$ oc get application -n openshift-gitopsCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションがデプロイされている namespace にラベルを追加し、
openshift-gitopsnamespace の Argo CD インスタンスが管理できるようにします。oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitops
$ oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitopsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. Argo CD の自己修復動作の確認 リンクのコピーリンクがクリップボードにコピーされました!
Argo CD は、デプロイされたアプリケーションの状態を常に監視し、Git の指定されたマニフェストとクラスターのライブの変更の違いを検出し、それらを自動的に修正します。この動作は自己修復として言及されます。
Argo CD で自己修復動作をテストし、確認することができます。
前提条件
- Red Hat OpenShift GitOps Operator を OpenShift Container Platform クラスターにインストールしている。
- Argo CD インスタンスにログインしている。
-
サンプル
app-spring-petclinicアプリケーションがデプロイされ、設定されている。
手順
-
Argo CD ダッシュボードで、アプリケーションに
Syncedステータスがあることを確認します。 -
Argo CD ダッシュボードの
app-spring-petclinicタイルをクリックし、クラスターにデプロイされたアプリケーションのリソースを表示します。 - OpenShift Container Platform Web コンソールで、Developer パースペクティブに移動します。
Spring PetClinic デプロイメントを変更し、Git リポジトリーの
app/ディレクトリーに変更をコミットします。Argo CD は変更をクラスターに自動的にデプロイします。- OpenShift GitOps 開始のリポジトリー をフォークします。
-
deployment.yamlファイルでfailureThresholdの値を5に変更します。 デプロイメントクラスターで、以下のコマンドを実行し、
failureThresholdフィールドの値を確認します。oc edit deployment spring-petclinic -n spring-petclinic
$ oc edit deployment spring-petclinic -n spring-petclinicCopy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift Container Platform Web コンソールでアプリケーションを監視している間に、クラスターでデプロイメントを変更し、これを 2 つの Pod にスケールアップして自己修復動作をテストします。
以下のコマンドを実行してデプロイメントを変更します。
oc scale deployment spring-petclinic --replicas 2 -n spring-petclinic
$ oc scale deployment spring-petclinic --replicas 2 -n spring-petclinicCopy to Clipboard Copied! Toggle word wrap Toggle overflow - OpenShift Container Platform Web コンソールでは、デプロイメントは 2 つの Pod にスケールアップし、すぐに再び 1 つの Pod にスケールダウンすることに注意してください。Argo CD は Git リポジトリーとの差異を検知し、OpenShift Container Platform クラスターでアプリケーションを自動的に修復しました。
- Argo CD ダッシュボードで、app-spring-petclinic タイル → APP DETAILS → EVENTS をクリックします。EVENTS タブには、以下のイベントが表示されます。Argo CD がクラスターのデプロイメントリソースが同期されていないことを検知し、Git リポジトリーを再同期してこれを修正します。
第2章 GitOps CLI を使用したアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
Argo CD を使用すると、GitOps argocd CLI を使用して、OpenShift Container Platform クラスターにアプリケーションを作成できます。
2.1. GitOps CLI を使用したデフォルトモードでのアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
GitOps argocd CLI を使用して、default モードでアプリケーションを作成できます。
前提条件
- Red Hat OpenShift GitOps Operator を OpenShift Container Platform クラスターにインストールしている。
-
OpenShift CLI (
oc) がインストールされている。 -
Red Hat OpenShift GitOps
argocdCLI がインストールされている。 - Argo CD インスタンスにログインしている。
手順
Argo CD サーバーの
adminアカウントのパスワードを取得します。ADMIN_PASSWD=$(oc get secret openshift-gitops-cluster -n openshift-gitops -o jsonpath='{.data.admin\.password}' | base64 -d)$ ADMIN_PASSWD=$(oc get secret openshift-gitops-cluster -n openshift-gitops -o jsonpath='{.data.admin\.password}' | base64 -d)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Argo CD サーバーの URL を取得します。
SERVER_URL=$(oc get routes openshift-gitops-server -n openshift-gitops -o jsonpath='{.status.ingress[0].host}')$ SERVER_URL=$(oc get routes openshift-gitops-server -n openshift-gitops -o jsonpath='{.status.ingress[0].host}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow adminアカウントのパスワードを使用して Argo CD サーバーにログインし、一重引用符で囲みます。重要パスワードを一重引用符で囲むと、
$などの特殊文字がシェルによって誤って解釈されなくなります。パスワードのリテラル値を囲むには常に一重引用符を使用してください。argocd login --username admin --password ${ADMIN_PASSWD} ${SERVER_URL}$ argocd login --username admin --password ${ADMIN_PASSWD} ${SERVER_URL}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
argocd login --username admin --password '<password>' openshift-gitops.openshift-gitops.apps-crc.testing
$ argocd login --username admin --password '<password>' openshift-gitops.openshift-gitops.apps-crc.testingCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのアプリケーションを表示して、
argocdコマンドをデフォルトモードで実行できることを確認します。argocd app list
$ argocd app listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 設定が正しい場合は、既存のアプリケーションが次のヘッダーとともにリストされます。
出力例
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGETCopy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトモードでアプリケーションを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow openshif-gitopsArgo CD インスタンスによって管理されるspring-petclinic宛先 namespace にラベルを付けます。oc label ns spring-petclinic "argocd.argoproj.io/managed-by=openshift-gitops"
$ oc label ns spring-petclinic "argocd.argoproj.io/managed-by=openshift-gitops"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用可能なアプリケーションをリストして、アプリケーションが正常に作成されたことを確認し、アプリケーションのステータスが
HealthyおよびSyncedになるまでコマンドを繰り返します。argocd app list
$ argocd app listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. GitOps CLI を使用したコアモードでのアプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
GitOps argocd CLI を使用して、core モードでアプリケーションを作成できます。
前提条件
- Red Hat OpenShift GitOps Operator を OpenShift Container Platform クラスターにインストールしている。
-
OpenShift CLI (
oc) がインストールされている。 -
Red Hat OpenShift GitOps
argocdCLI がインストールされている。
手順
ocCLI ツールを使用して OpenShift Container Platform クラスターにログインします。oc login -u <username> -p <password> <server_url>
$ oc login -u <username> -p <password> <server_url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
oc login -u kubeadmin -p '<password>' https://api.crc.testing:6443
$ oc login -u kubeadmin -p '<password>' https://api.crc.testing:6443Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテキストが
kubeconfigファイルで正しく設定されているかどうかを確認します。oc config current-context
$ oc config current-contextCopy to Clipboard Copied! Toggle word wrap Toggle overflow 現在のコンテキストのデフォルトの namespace を
openshift-gitopsに設定します。oc config set-context --current --namespace openshift-gitops
$ oc config set-context --current --namespace openshift-gitopsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の環境変数を設定して、Argo CD コンポーネント名をオーバーライドします。
export ARGOCD_REPO_SERVER_NAME=openshift-gitops-repo-server
$ export ARGOCD_REPO_SERVER_NAME=openshift-gitops-repo-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのアプリケーションを一覧表示して、
coreモードでargocdコマンドを実行できることを確認します。argocd app list --core
$ argocd app list --coreCopy to Clipboard Copied! Toggle word wrap Toggle overflow 設定が正しい場合は、既存のアプリケーションが次のヘッダーとともにリストされます。
出力例
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGET
NAME CLUSTER NAMESPACE PROJECT STATUS HEALTH SYNCPOLICY CONDITIONS REPO PATH TARGETCopy to Clipboard Copied! Toggle word wrap Toggle overflow coreモードでアプリケーションを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow openshif-gitopsArgo CD インスタンスによって管理されるspring-petclinic宛先 namespace にラベルを付けます。oc label ns spring-petclinic "argocd.argoproj.io/managed-by=openshift-gitops"
$ oc label ns spring-petclinic "argocd.argoproj.io/managed-by=openshift-gitops"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用可能なアプリケーションをリストして、アプリケーションが正常に作成されたことを確認し、アプリケーションのステータスが
HealthyおよびSyncedになるまでコマンドを繰り返します。argocd app list --core
$ argocd app list --coreCopy to Clipboard Copied! Toggle word wrap Toggle overflow