This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.19.16. 複数のマネージドクラスターの ZTP カスタムリソースの作成
複数のマネージドクラスターをインストールする場合、zero touch provisioning (ZTP) は ArgoCD と SiteConfig を使用して、GitOps アプリローチで、100 未満のバッチにおいて、カスタムリソース (CR) を作成するプロセス作成して、複数のクラスターにポリシーを適用するプロセスを管理します。
以下に示すように、クラスターのインストールとデプロイプロセスは 2 段階的プロセスで実行できます。
19.16.1. ZTP パイプラインのデプロイの前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Container Platform クラスターバージョン 4.8 以降および Red Hat GitOps Operator がインストールされている。
- Red Hat Advanced Cluster Management (RHACM) バージョン 2.3 以降がインストールされている。
-
非接続環境では、ソースデータ Git リポジトリーおよび
ztp-site-generatorコンテナーイメージがハブクラスターからアクセスできるようにしてください。 ポリシーの追加のインストールマニフェストまたはカスタムリソース (CR) などの追加のカスタムコンテンツを
/usr/src/hook/ztp/source-crs/extra-manifest/ディレクトリーに追加します。同様に、PolicyGenTemplateから参照されている設定 CR を/usr/src/hook/ztp/source-crs/ディレクトリーに追加できます。以下のように、追加のマニフェストを Red Hat が提供するイメージに追加する
Containerfileを作成します。FROM <registry fqdn>/ztp-site-generator:latest COPY myInstallManifest.yaml /usr/src/hook/ztp/source-crs/extra-manifest/ COPY mySourceCR.yaml /usr/src/hook/ztp/source-crs/
FROM <registry fqdn>/ztp-site-generator:latest1 COPY myInstallManifest.yaml /usr/src/hook/ztp/source-crs/extra-manifest/ COPY mySourceCR.yaml /usr/src/hook/ztp/source-crs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <registry fqdn> は、Red Hat が提供する
ztp-site-generatorコンテナーイメージを含むレジストリーを参照する必要があります。
これらの追加ファイルが含まれる新しいコンテナーイメージをビルドします。
$> podman build Containerfile.example
$> podman build Containerfile.exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
19.16.2. GitOps ZTP パイプラインのインストール リンクのコピーリンクがクリップボードにコピーされました!
本セクションの手順では、以下のタスクを実行する方法を説明します。
- サイト設定データをホストするために必要な Git リポジトリーを準備します。
- 必要なインストールおよびポリシーカスタムリソース (CR) を生成するハブクラスターを設定します。
- ゼロタッチプロビジョニング (ZTP) を使用してマネージドクラスターをデプロイします。
19.16.2.1. ZTP Git リポジトリーの準備 リンクのコピーリンクがクリップボードにコピーされました!
サイト設定データをホストするための Git リポジトリーを作成します。ゼロタッチプロビジョニング (ZTP) パイプラインには、このリポジトリーへの読み取りアクセスが必要です。
手順
-
SiteConfigおよびPolicyGenTemplateカスタムリソース (CR) とは別のパスでディレクトリー構造を作成します。 -
resource-hook-example/<policygentemplates>/からPolicyGenTemplateCR のパスにpre-sync.yamlとpost-sync.yamlを追加します。 resource-hook-example/<siteconfig>/からSiteConfigCR のパスにpre-sync.yamlとpost-sync.yamlを追加します。注記ハブクラスターが非接続環境で動作する場合は、同期フック CR すべてとポスト同期フック CR の
imageを更新する必要があります。-
policygentemplates.ran.openshift.ioおよびsiteconfigs.ran.openshift.ioCR 定義を適用します。
19.16.2.2. ZTP 用のハブクラスターの準備 リンクのコピーリンクがクリップボードにコピーされました!
ゼロタッチプロビジョニング (ZTP) GitOps フローに基づいて、各サイトに必要なインストールおよびポリシーカスタムリソース (CR) を生成する ArgoCD アプリケーションのセットを使用して、ハブクラスターを設定できます。
手順
- ハブクラスターに Red Hat OpenShift GitOps Operator をインストールします。
ArgoCD の管理者パスワードを抽出します。
oc get secret openshift-gitops-cluster -n openshift-gitops -o jsonpath='{.data.admin\.password}' | base64 -d$ oc get secret openshift-gitops-cluster -n openshift-gitops -o jsonpath='{.data.admin\.password}' | base64 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow ArgoCD パイプライン設定を準備します。
最新のコンテナーイメージバージョンを使用して、ZTP サイトジェネレーターコンテナーから ArgoCD デプロイメント CR を抽出します。
mkdir ztp podman run --rm -v `pwd`/ztp:/mnt/ztp:Z registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.9.0-1 /bin/bash -c "cp -ar /usr/src/hook/ztp/* /mnt/ztp/"
$ mkdir ztp $ podman run --rm -v `pwd`/ztp:/mnt/ztp:Z registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.9.0-1 /bin/bash -c "cp -ar /usr/src/hook/ztp/* /mnt/ztp/"Copy to Clipboard Copied! Toggle word wrap Toggle overflow このセクションの残りの手順は、
ztp/gitops-subscriptions/argocd/ディレクトリーに関連しています。適切な URL、
targetRevisionブランチ、およびパス値を使用して 2 つの ArgoCD アプリケーションのソース値であるdeployment/clusters-app.yamlおよびdeployment/policies-app.yamlを変更します。パスの値は、Git リポジトリーで使用されている値と一致している必要があります。deployment/clusters-app.yamlを変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow deployment/policies-app.yamlを変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
パイプライン設定をハブクラスターに適用するには、以下のコマンドを入力します。
oc apply -k ./deployment
$ oc apply -k ./deploymentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
19.16.3. サイトシークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
サイトに必要なシークレットをハブクラスターに追加します。これらのリソースは、クラスター名に一致する名前を持つ namespace にある必要があります。
手順
サイトベースボード管理コントローラー (BMC) に対して認証するためのシークレットを作成します。シークレット名が
SiteConfigで使用される名前と一致することを確認します。この例では、シークレット名はtest-sno-bmh-secretです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サイトのプルシークレットを作成します。プルシークレットには、OpenShift およびすべてのアドオン Operator のインストールに必要なすべての認証情報を含める必要があります。この例では、シークレット名は
assisted-deployment-pull-secretです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
シークレットは、名前で SiteConfig カスタムリソース (CR) から参照されます。namespace は SiteConfig namespace と一致する必要があります。
19.16.4. SiteConfig カスタムリソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
ArgoCD は、サイトデプロイメントの GitOps メソッドのエンジンとして機能します。サイトのインストールに必要なカスタムリソースが含まれるサイトプランの完了後に、ポリシージェネレーターはマニフェストを作成し、それらをハブクラスターに適用します。
手順
クラスターの site-plan データが含まれる
site-config.yamlファイル (1 つ以上のSiteConfigカスタムリソース) を作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
UEFI SecureBootを使用している場合は、この行を追加して、無効な証明書またはローカル証明書による障害を防止します。
- ファイルを保存し、それらをハブクラスターからアクセスできるゼロな変更プロビジョニング (ZTP) Git リポジトリーにプッシュし、ArgoCD アプリケーションのソースリポジトリーとして定義します。
ArgoCD は、アプリケーションが同期していないことを検出します。同期時に、ArgoCD は PolicyGenTemplate をハブクラスターに同期し、関連付けられたリソースフックを起動します。これらのフックは、スポーククラスターに適用されるポリシーラップされた設定 CR を生成します。リソースフックはサイト定義をインストールカスタムリソースに変換し、それらをハブクラスターに適用します。
-
Namespace: サイトごとに一意 -
AgentClusterInstall -
BareMetalHost -
ClusterDeployment -
InfraEnv -
NMStateConfig -
ExtraManifestsConfigMap- Extra manifests.追加のマニフェストには、ワークロードのパーティション設定、chronyd、マウントポイントの非表示、sctp 有効化などが含まれます。 -
ManagedCluster -
KlusterletAddonConfig
Red Hat Advanced Cluster Management (RHACM) (ACM) は、ハブクラスターをデプロイします。
19.16.5. PolicyGenTemplates の作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して PolicyGenTemplates を作成します。これは、ハブクラスターの Git リポジトリーでポリシーを生成する必要があります。
手順
-
PolicyGenTemplatesを作成し、それらをハブクラスターからアクセスできるゼロタッチプロビジョニング (ZTP) Git リポジトリーに保存し、ArgoCD アプリケーションのソースリポジトリーとして定義します。 ArgoCD は、アプリケーションが同期していないことを検出します。同期時に、ArgoCD は新規
PolicyGenTemplateをハブクラスターに適用し、関連付けられたリソースフックを起動します。これらのフックは、スポーククラスターに適用されるポリシーラップされた設定 CR を生成し、以下のアクションを実行します。- 基本的な分散ユニット (DU) プロファイルおよび必要なカスタマイズに従って、Red Hat Advanced Cluster Management (RHACM) (ACM) ポリシーを作成します。
- 生成されたポリシーをハブクラスターに適用します。
ZTP プロセスでは、ACM をダイレクトするポリシーを作成し、必要な設定をクラスターノードに適用します。
19.16.6. インストールステータスの確認 リンクのコピーリンクがクリップボードにコピーされました!
ArgoCD パイプラインは、Git リポジトリーの SiteConfig および PolicyGenTemplate カスタムリソース (CR) を検出し、それらをハブクラスターに同期します。プロセスで、インストールおよびポリシー CR を生成し、それらをハブクラスターに適用します。ArgoCD ダッシュボードでこの同期の進捗をモニターできます。
手順
以下のコマンドを使用して、クラスターのインストールの進捗を監視します。
export CLUSTER=<cluster_name>
$ export CLUSTER=<cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get agentclusterinstall -n $CLUSTER $CLUSTER -o jsonpath='{.status.conditions[?(@.type=="Completed")]}' | jq$ oc get agentclusterinstall -n $CLUSTER $CLUSTER -o jsonpath='{.status.conditions[?(@.type=="Completed")]}' | jqCopy to Clipboard Copied! Toggle word wrap Toggle overflow curl -sk $(oc get agentclusterinstall -n $CLUSTER $CLUSTER -o jsonpath='{.status.debugInfo.eventsURL}') | jq '.[-2,-1]'$ curl -sk $(oc get agentclusterinstall -n $CLUSTER $CLUSTER -o jsonpath='{.status.debugInfo.eventsURL}') | jq '.[-2,-1]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Red Hat Advanced Cluster Management (RHACM) ダッシュボードを使用して、ポリシーの調整の進捗を監視します。
19.16.7. サイトのクリーンアップ リンクのコピーリンクがクリップボードにコピーされました!
サイトおよび関連するインストールおよびポリシーカスタムリソース (CR) を削除するには、Git リポジトリーから SiteConfig およびサイト固有の PolicyGenTemplate CR を削除します。Pipeline フックは生成された CR を削除します。
SiteConfig CR を削除する前に、ACM からクラスターをデタッチする必要があります。
19.16.7.1. ArgoCD パイプラインの削除 リンクのコピーリンクがクリップボードにコピーされました!
ArgoCD パイプラインおよび生成されたすべてのアーティファクトを削除する場合は、以下の手順を使用します。
手順
- ACM からすべてのクラスターをデタッチします。
-
Git リポジトリーからすべての
SiteConfigおよびPolicyGenTemplateカスタムリソース (CR) を削除します。 以下の namespace を削除します。
すべてのポリシー namespace:
oc get policy -A
$ oc get policy -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow -
clusters-sub -
policies-sub
Kustomize ツールを使用してディレクトリーを処理します。
oc delete -k cnf-features-deploy/ztp/gitops-subscriptions/argocd/deployment
$ oc delete -k cnf-features-deploy/ztp/gitops-subscriptions/argocd/deploymentCopy to Clipboard Copied! Toggle word wrap Toggle overflow