2.9. GitOps ZTP サイト設定リポジトリーの準備
GitOps Zero Touch Provisioning (ZTP) パイプラインを使用する前に、サイト設定データをホストする Git リポジトリーを準備する必要があります。
前提条件
- 必要なインストールおよびポリシーのカスタムリソース (CR) を生成するためのハブクラスター GitOps アプリケーションを設定している。
- GitOps ZTP を使用してマネージドクラスターをデプロイしている。
手順
SiteConfigCR とPolicyGenTemplateCR の個別のパスを持つディレクトリー構造を作成します。注記SiteConfigおよびPolicyGenTemplateCR を個別のディレクトリーで保持します。SiteConfigディレクトリーおよびPolicyGenTemplateディレクトリーには、そのディレクトリー内のファイルを明示的に含めるkustomization.yamlファイルが含まれている必要があります。以下のコマンドを使用して
ztp-site-generateコンテナーイメージからargocdディレクトリーをエクスポートします。$ podman pull registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.15$ mkdir -p ./out$ podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.15 extract /home/ztp --tar | tar x -C ./outoutディレクトリーに以下のサブディレクトリーが含まれていることを確認します。-
out/extra-manifestには、SiteConfigが追加の manifestconfigMapの生成に使用するソース CR ファイルが含まれます。 -
out/source-crsには、PolicyGenTemplate がRed Hat Advanced Cluster Management (RHACM) ポリシーを生成するために使用するソース CR ファイルが含まれています。 -
out/argocd/deploymentには、この手順の次のステップで使用するハブクラスターに適用するパッチおよび YAML ファイルが含まれます。 -
out/argocd/exampleには、推奨の設定を表すSiteConfigファイルおよびPolicyGenTemplateファイルのサンプルが含まれています。
-
-
out/source-crsフォルダーとその内容をPolicyGentemplateディレクトリーにコピーします。 out/extra-manifests ディレクトリーには、RAN DU クラスターの参照マニフェストが含まれています。
out/extra-manifestsディレクトリーをSiteConfigフォルダーにコピーします。このディレクトリーには、ztp-site-generateコンテナーからの CR のみを含める必要があります。ユーザー提供の CR をここに追加しないでください。ユーザー提供の CR を使用する場合は、そのコンテンツ用に別のディレクトリーを作成する必要があります。以下に例を示します。example/ ├── policygentemplates │ ├── kustomization.yaml │ └── source-crs/ └── siteconfig ├── extra-manifests └── kustomization.yaml-
ディレクトリー構造と
kustomization.yamlファイルをコミットし、Git リポジトリーにプッシュします。Git への最初のプッシュには、kustomization.yamlファイルが含まれている必要があります。
out/argocd/example のディレクトリー構造は、Git リポジトリーの構造およびコンテンツの参照として使用します。この構造には、単一ノード、3 ノード、標準クラスターの SiteConfig および PolicyGenTemplate の参照 CR が含まれます。使用されていないクラスタータイプの参照を削除します。
すべてのクラスタータイプについて、次のことを行う必要があります。
-
source-crsサブディレクトリーをpolicygentemplateディレクトリーに追加します。 -
extra-manifestsディレクトリーをsiteconfigディレクトリーに追加します。
以下の例では、シングルノードクラスターのネットワークの CR のセットを説明しています。
example/
├── policygentemplates
│ ├── common-ranGen.yaml
│ ├── example-sno-site.yaml
│ ├── group-du-sno-ranGen.yaml
│ ├── group-du-sno-validator-ranGen.yaml
│ ├── kustomization.yaml
│ ├── source-crs/
│ └── ns.yaml
└── siteconfig
├── example-sno.yaml
├── extra-manifests/
├── custom-manifests/
├── KlusterletAddonConfigOverride.yaml
└── kustomization.yaml
2.9.1. バージョンに依存しないように GitOps ZTP サイト設定リポジトリーを準備する リンクのコピーリンクがクリップボードにコピーされました!
GitOps ZTP を使用して、OpenShift Container Platform のさまざまなバージョンを実行しているマネージドクラスターのソースカスタムリソース (CR) を管理できます。これは、ハブクラスター上で実行している OpenShift Container Platform のバージョンが、マネージドクラスター上で実行しているバージョンから独立している可能性があることを意味します。
手順
-
SiteConfigCR とPolicyGenTemplateCR の個別のパスを持つディレクトリー構造を作成します。 PolicyGenTemplateディレクトリー内に、使用可能にする OpenShift Container Platform バージョンごとにディレクトリーを作成します。バージョンごとに、次のリソースを作成します。-
そのディレクトリー内のファイルを明示的に含む
kustomization.yamlファイル source-crsディレクトリーには、ztp-site-generateコンテナーからの参照 CR 設定ファイルが含まれます。ユーザー提供の CR を使用する場合は、CR 用に別のディレクトリーを作成する必要があります。
-
そのディレクトリー内のファイルを明示的に含む
/siteconfigディレクトリーに、使用可能にする OpenShift Container Platform バージョンごとにサブディレクトリーを作成します。バージョンごとに、コンテナーからコピーされる参照 CR 用のディレクトリーを少なくとも 1 つ作成します。ディレクトリーの名前や参照ディレクトリーの数に制限はありません。カスタムマニフェストを使用する場合は、個別のディレクトリーを作成する必要があります。次の例では、OpenShift Container Platform のさまざまなバージョンのユーザー提供のマニフェストと CR を使用した構造を説明します。
├── policygentemplates │ ├── kustomization.yaml1 │ ├── version_4.132 │ │ ├── common-ranGen.yaml │ │ ├── group-du-sno-ranGen.yaml │ │ ├── group-du-sno-validator-ranGen.yaml │ │ ├── helix56-v413.yaml │ │ ├── kustomization.yaml3 │ │ ├── ns.yaml │ │ └── source-crs/4 │ │ └── reference-crs/5 │ │ └── custom-crs/6 │ └── version_4.147 │ ├── common-ranGen.yaml │ ├── group-du-sno-ranGen.yaml │ ├── group-du-sno-validator-ranGen.yaml │ ├── helix56-v414.yaml │ ├── kustomization.yaml8 │ ├── ns.yaml │ └── source-crs/9 │ └── reference-crs/10 │ └── custom-crs/11 └── siteconfig ├── kustomization.yaml ├── version_4.13 │ ├── helix56-v413.yaml │ ├── kustomization.yaml │ ├── extra-manifest/12 │ └── custom-manifest/13 └── version_4.14 ├── helix57-v414.yaml ├── kustomization.yaml ├── extra-manifest/14 └── custom-manifest/15 - 1
- 最上位の
kustomizationYAML ファイルを作成します。 - 2 7
- カスタム
/policygentemplatesディレクトリー内にバージョン固有のディレクトリーを作成します。 - 3 8
- バージョンごとに
kustomization.yamlファイルを作成します。 - 4 9
ztp-site-generateコンテナーからの参照 CR を含めるために、バージョンごとにsource-crsディレクトリーを作成します。- 5 10
- ZTP コンテナーから展開されるポリシー CR の
reference-crsディレクトリーを作成します。 - 6 11
- オプション: ユーザー提供の CR 用に
custom-crsディレクトリーを作成します。 - 12 14
- カスタム
/siteconfigディレクトリー内にディレクトリーを作成し、ztp-site-generateコンテナーからの追加のマニフェストを含めます。 - 13 15
- ユーザーによって提供されるマニフェストを保持するフォルダーを作成します。
注記前の例では、カスタム
/siteconfigディレクトリー内の各バージョンサブディレクトリーにはさらに 2 つのサブディレクトリーが含まれており、1 つはコンテナーからコピーされた参照マニフェストを含み、もう 1 つは提供するカスタムマニフェスト用です。これらのディレクトリーに割り当てられた名前は一例です。ユーザー提供の CR を使用する場合は、SiteConfigCR のextraManifests.searchPathsの下にリストされている最後のディレクトリーが、ユーザー提供の CR を含むディレクトリーである必要があります。SiteConfigCR を編集して、作成したディレクトリーの検索パスを含めます。extraManifests.searchPathsの下にリストされる最初のディレクトリーは、参照マニフェストを含むディレクトリーである必要があります。ディレクトリーがリストされている順序を考慮してください。ディレクトリーに同じ名前のファイルが含まれている場合は、最後のディレクトリーにあるファイルが優先されます。SiteConfig CR の例
extraManifests: searchPaths: - extra-manifest/1 - custom-manifest/2 トップレベルの
kustomization.yamlファイルを編集して、アクティブな OpenShift Container Platform バージョンを制御します。以下は、最上位レベルのkustomization.yamlファイルの例です。resources: - version_4.131 #- version_4.142