1.8. Red Hat OpenShift GitOps インスタンスのデプロイ (テクノロジープレビュー)
GitOps アドオンを使用すると、すべての種類の Red Hat OpenShift Container Platform および非 OpenShift Container Platform マネージドクラスターにある、ArgoCD プルモデル用の OpenShift GitOps インスタンスのライフサイクルを管理できます。
ハブクラスターのクラスター namespace に gitops-addon ManagedClusterAddOn アドオンを作成すると、OpenShift GitOps インスタンスのインストール、アップグレード、および削除を管理するマネージドクラスターに GitOps アドオンがデプロイされます。
GitOps アドオンによってデプロイされる OpenShift GitOps インスタンスは、主に Red Hat Advanced Cluster Management の ArgoCD プルモデルに使用されます。したがって、ユーザーがアクセスできるのは、マネージドクラスターにインストールされている次のコンポーネントだけです。
- OpenShift GitOps アプリケーションコントローラー
- OpenShift GitOps リポジトリーサーバー
- OpenShift GitOps Redis サーバー
ArgoCD プルモデル用の OpenShift GitOps インスタンスをデプロイするには、次のセクションの手順を実行します。
1.8.1. マネージドクラスターへの OpenShift GitOps インスタンスのインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management を最新バージョンにアップグレードすると、すべてのマネージドクラスター上の OpenShift GitOps インスタンスが自動的にアップグレードされ、GitOps アドオンとバンドルされます。
マネージドクラスターに OpenShift GitOps インスタンスをインストールするには、次の手順を実行します。
ハブクラスターの選択したクラスター namespace で、次の YAML サンプルを適用して
managedClusterAddonリソースを作成します。apiVersion: addon.open-cluster-management.io/v1alpha1 kind: ManagedClusterAddOn metadata: name: gitops-addon namespace: <Cluster-Name> spec: installNamespace: open-cluster-management-agent-addon次のコマンドを実行して、マネージドクラスター上で
gitops-addon controllerが実行されていることを確認します。oc get pods -n open-cluster-management-agent-addon次のコマンドを実行して、OpenShift GitOps Operator が
openshift-gitops-operatornamespace で実行されていることを確認します。oc get pods -n openshift-gitops-operator次のコマンドを実行して、OpenShift GitOps インスタンスが
openshift-gitopsnamespace で実行されていることを確認します。oc get pods -n openshift-gitopsOpenShift GitOps インスタンスに障害が発生した場合は、確認する必要がある障害に応じて、次の場所からログを確認します。
マネージドクラスターに移動して次のコマンドを実行し、GitOps アドオンコントローラーのログを確認します。
oc logs -n open-cluster-management-agent-addon -l app=gitops-addonマネージドクラスターに移動して次のコマンドを実行し、OpenShift Container Platform GitOps Operator マネージャーのログを確認します。
oc get pods -n openshift-gitops-operator- マネージドクラスターに移動して次のコマンドを実行し、OpenShift Container Platform GitOps コンポーネントのログを確認します。
oc get pods -n openshift-gitops
1.8.2. OpenShift GitOps インスタンスと Operator のアップグレード リンクのコピーリンクがクリップボードにコピーされました!
現在のバージョン以外のバージョンにアップグレードする場合は、OpenShift GitOps Operator とそのインスタンスを手動で目的のバージョンにアップグレードする必要があります。
AddOnDeploymentConfig を gitops-addon ClusterManagementAddon に接続すると、指定したイメージタグが常に OpenShift GitOps Operator とそのインスタンスに適用されます。Operator とそのインスタンスの最新バージョンは、自動的に更新されません。最新バージョンを適用するには、デフォルトの AddOnDeploymentConfig でカスタムイメージ設定 GITOPS_OPERATOR_IMAGE, GITOPS_IMAGE, REDIS_IMAGE を削除します。
OpenShift GitOps インスタンスと Operator をアップグレードするには、次の手順を実行します。
次の YAML サンプルを適用して、
AddOnDeploymentConfigカスタムイメージを作成します。apiVersion: addon.open-cluster-management.io/v1alpha1 kind: AddOnDeploymentConfig metadata: name: gitops-addon-config namespace: <namespace>1 spec: customizedVariables: - name: GITOPS_OPERATOR_IMAGE value: <string>2 - name: GITOPS_IMAGE value: <string>3 - name: REDIS_IMAGE value: <string>4 - 1
- 必要な namespace を追加します。
- 2
- OpenShift GitOps Operator の新しいイメージとタグを指定します。たとえば、
registry.redhat.io/openshift-gitops-1/gitops-rhel8-operator@sha256:73f13a5587bbfbea5a64bd3507120eb83b6be85088139c6d65a9aa9cd56e186aです。 - 3
- OpenShift GitOps インスタンスの新しいイメージとタグを指定します。たとえば、
registry.redhat.io/openshift-gitops-1/argocd-rhel8@sha256:706d5c99715eece77616135da2fbf90863b7aef17fd64ab03bf7dd20877490ecです。 - 4
- OpenShift GitOps Redis の新しいイメージとタグを指定します。たとえば、
registry.redhat.io/rhel8/redis-6@sha256:a848cc4edb4405846c673187dd68ce66c328dd1ad42f193f5737288c7971399dです。
次の YAML サンプルを適用して、
addondeploymentconfigsリソースのdefaultConfig名と namespace を指定し、AddOnDeploymentConfigをgitops-addon ClusterManagementAddonに接続します。apiVersion: addon.open-cluster-management.io/v1alpha1 kind: ClusterManagementAddOn metadata: name: gitops-addon annotations: addon.open-cluster-management.io/lifecycle: "gitops-addon" spec: addOnMeta: description: gitops-addon displayName: gitops-addon supportedConfigs: - group: addon.open-cluster-management.io resource: addondeploymentconfigs defaultConfig: name: gitops-addon-config namespace: ocm1 - group: addon.open-cluster-management.io resource: addontemplates defaultConfig: name: gitops-addon- 1
AddOnDeploymentConfigで指定した namespace。
- マネージドクラスターで、OpenShift GitOps Operator Pod とインスタンス Pod が新しいイメージタグを使用して再起動されていることを確認します。
OpenShift GitOps インスタンスに障害が発生した場合は、確認する必要がある障害に応じて、次の場所からログを確認します。
マネージドクラスターに移動して次のコマンドを実行し、GitOps アドオンコントローラーのログを確認します。
oc logs -n open-cluster-management-agent-addon -l app=gitops-addonマネージドクラスターに移動して次のコマンドを実行し、OpenShift Container Platform GitOps Operator マネージャーのログを確認します。
oc get pods -n openshift-gitops-operator- マネージドクラスターに移動して次のコマンドを実行し、OpenShift Container Platform GitOps コンポーネントのログを確認します。
oc get pods -n openshift-gitops
1.8.3. OpenShift GitOps インスタンスと Operator の削除 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift GitOps Operator が削除された後も、依存するすべての ArgoCD カスタムリソース定義 (CRD) は残ります。そのため、Operator の削除によって既存のすべての ArgoCD アプリケーションが削除されることはありません。
OpenShift GitOps Operator を同じデフォルトの namespace に再インストールできます。OpenShift GitOps Operator は、必ずデフォルトの namespace openshift-gitops- operator にインストールしてください。OpenShift GitOps Operator は、Operator のインストール namespace に関係なく、任意の namespace の ArgoCD リソースを監視します。
OpenShift GitOps インスタンスと Operator を削除するには、次の手順を実行します。
次の YAML サンプルを適用して、OpenShift GitOps インスタンスを削除します。
apiVersion: addon.open-cluster-management.io/v1alpha1 kind: AddOnDeploymentConfig metadata: name: gitops-addon-config namespace:<namespace>1 spec: customizedVariables: - name: ACTION value: Delete-Instance- 1
- これは、
gitop-addonClusterManagementAddOnに接続されたデフォルトのAddOnDeploymentConfigを作成したときに指定した namespace です。
次の YAML サンプルを適用して、OpenShift GitOps Operator を削除します。
apiVersion: addon.open-cluster-management.io/v1alpha1 kind: AddOnDeploymentConfig metadata: name: gitops-addon-config namespace: <namespace>1 spec: customizedVariables: - name: ACTION value: Delete-Operator- 1
- これは、
gitop-addonClusterManagementAddOnに接続されたデフォルトのAddOnDeploymentConfigを作成したときに指定した namespace です。
1.8.4. 任意の namespace で ArgoCD アプリケーションをリコンサイルする リンクのコピーリンクがクリップボードにコピーされました!
任意の namespace 内の ArgoCD アプリケーションをリコンサイルするように、OpenShift GitOps インスタンスを設定できます。
任意の namespace 内の ArgoCD アプリケーションをリコンサイルするには、次の手順を実行します。
リンクされたデフォルトの
AddOnDeploymentConfigで、次の YAML サンプルを適用して、カスタマイズした変数RECONCILE_SCOPEをAll-Namespacesに指定します。apiVersion: addon.open-cluster-management.io/v1alpha1 kind: AddOnDeploymentConfig metadata: name: gitops-addon-config namespace: <namespace>1 spec: customizedVariables: - name: RECONCILE_SCOPE value:2 - 1
- これは、
gitop-addonClusterManagementAddOnに接続されたデフォルトのAddOnDeploymentConfigを作成したときに指定した namespace です。 - 2
- この値には 2 つのオプションがあります。
All-Namespaces: GitOpsArgoCDインスタンスは、すべての namespace でアプリケーションをリコンサイルできます。Single-Namespace:GitOpsArgoCDインスタンスは、GitOpsArgoCDインスタンスが実行されている namespace でのみアプリケーションをリコンサイルできます。
1.8.5. 別の namespace に OpenShift GitOps インスタンスをインストールする リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、OpenShift GitOps インスタンスは openshift-gitops namespace にインストールされます。OpenShift GitOps インスタンスを別の namespace にインストールする場合は、次の手順を実行します。
次の YAML サンプルを適用して、OpenShift GitOps インスタンスを削除します。
apiVersion: addon.open-cluster-management.io/v1alpha1 kind: AddOnDeploymentConfig metadata: name: gitops-addon-config namespace: <namespace>1 spec: customizedVariables: - name: ACTION value: Delete-Instance- 1
- これは、
gitop-addonClusterManagementAddOnに接続されたデフォルトのAddOnDeploymentConfigを作成したときに指定した namespace です。
次のコマンドを実行して、OpenShift GitOps インスタンスが削除されたことを確認します。
oc get pods -n openshift-gitops次の YAML サンプルを適用して、OpenShift GitOps インスタンスを別の namespace にインストールします。
apiVersion: addon.open-cluster-management.io/v1alpha1 kind: AddOnDeploymentConfig metadata: name: gitops-addon-config namespace: <namespace>1 spec: customizedVariables: - name: GITOPS_NAMESPACE value: openshift-gitops-2- 1
- これは、
gitop-addonClusterManagementAddOnに接続されたデフォルトのAddOnDeploymentConfigを作成したときに指定した namespace です。
次のコマンドを実行して、OpenShift GitOps インスタンスが新しい namespace に適用されていることを確認します。
oc get pods -n openshift-gitops-2