2.9. GitOps ZTP サイト設定リポジトリーの準備


GitOps Zero Touch Provisioning (ZTP) パイプラインを使用する前に、サイト設定データをホストする Git リポジトリーを準備する必要があります。

前提条件

  • 必要なインストールおよびポリシーのカスタムリソース (CR) を生成するためのハブクラスター GitOps アプリケーションを設定している。
  • GitOps ZTP を使用してマネージドクラスターをデプロイしている。

手順

  1. SiteConfig CR と PolicyGenTemplate CR の個別のパスを持つディレクトリー構造を作成します。

    注記

    SiteConfig および PolicyGenTemplate CR を個別のディレクトリーで保持します。SiteConfig ディレクトリーおよび PolicyGenTemplate ディレクトリーには、そのディレクトリー内のファイルを明示的に含める kustomization.yaml ファイルが含まれている必要があります。

  2. 以下のコマンドを使用して 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 ./out
  3. out ディレクトリーに以下のサブディレクトリーが含まれていることを確認します。

    • out/extra-manifest には、SiteConfig が追加の manifest configMap の生成に使用するソース CR ファイルが含まれます。
    • out/source-crs には、PolicyGenTemplate が Red Hat Advanced Cluster Management (RHACM) ポリシーを生成するために使用するソース CR ファイルが含まれています。
    • out/argocd/deployment には、この手順の次のステップで使用するハブクラスターに適用するパッチおよび YAML ファイルが含まれます。
    • out/argocd/example には、推奨の設定を表す SiteConfig ファイルおよび PolicyGenTemplate ファイルのサンプルが含まれています。
  4. out/source-crs フォルダーとその内容を PolicyGentemplate ディレクトリーにコピーします。
  5. 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
  6. ディレクトリー構造と 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/ 1
        ├── custom-manifests/ 2
        ├── KlusterletAddonConfigOverride.yaml
        └── kustomization.yaml
1
ztp-container からの参照マニフェストが含まれます。
2
カスタムマニフェストが含まれます。

2.9.1. バージョンに依存しないように GitOps ZTP サイト設定リポジトリーを準備する

GitOps ZTP を使用して、OpenShift Container Platform のさまざまなバージョンを実行しているマネージドクラスターのソースカスタムリソース (CR) を管理できます。これは、ハブクラスター上で実行している OpenShift Container Platform のバージョンが、マネージドクラスター上で実行しているバージョンから独立している可能性があることを意味します。

手順

  1. SiteConfig CR と PolicyGenTemplate CR の個別のパスを持つディレクトリー構造を作成します。
  2. PolicyGenTemplate ディレクトリー内に、使用可能にする OpenShift Container Platform バージョンごとにディレクトリーを作成します。バージョンごとに、次のリソースを作成します。

    • そのディレクトリー内のファイルを明示的に含む kustomization.yaml ファイル
    • source-crs ディレクトリーには、ztp-site-generate コンテナーからの参照 CR 設定ファイルが含まれます。

      ユーザー提供の CR を使用する場合は、CR 用に別のディレクトリーを作成する必要があります。

  3. /siteconfig ディレクトリーに、使用可能にする OpenShift Container Platform バージョンごとにサブディレクトリーを作成します。バージョンごとに、コンテナーからコピーされる参照 CR 用のディレクトリーを少なくとも 1 つ作成します。ディレクトリーの名前や参照ディレクトリーの数に制限はありません。カスタムマニフェストを使用する場合は、個別のディレクトリーを作成する必要があります。

    次の例では、OpenShift Container Platform のさまざまなバージョンのユーザー提供のマニフェストと CR を使用した構造を説明します。

    ├── policygentemplates
    │   ├── kustomization.yaml 1
    │   ├── version_4.13 2
    │   │   ├── common-ranGen.yaml
    │   │   ├── group-du-sno-ranGen.yaml
    │   │   ├── group-du-sno-validator-ranGen.yaml
    │   │   ├── helix56-v413.yaml
    │   │   ├── kustomization.yaml 3
    │   │   ├── ns.yaml
    │   │   └── source-crs/ 4
    │   │      └── reference-crs/ 5
    │   │      └── custom-crs/ 6
    │   └── version_4.14 7
    │       ├── common-ranGen.yaml
    │       ├── group-du-sno-ranGen.yaml
    │       ├── group-du-sno-validator-ranGen.yaml
    │       ├── helix56-v414.yaml
    │       ├── kustomization.yaml 8
    │       ├── 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
    最上位の kustomization YAML ファイルを作成します。
    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 を使用する場合は、SiteConfig CR の extraManifests.searchPaths の下にリストされている最後のディレクトリーが、ユーザー提供の CR を含むディレクトリーである必要があります。

  4. SiteConfig CR を編集して、作成したディレクトリーの検索パスを含めます。extraManifests.searchPaths の下にリストされる最初のディレクトリーは、参照マニフェストを含むディレクトリーである必要があります。ディレクトリーがリストされている順序を考慮してください。ディレクトリーに同じ名前のファイルが含まれている場合は、最後のディレクトリーにあるファイルが優先されます。

    SiteConfig CR の例

    extraManifests:
        searchPaths:
        - extra-manifest/ 1
        - custom-manifest/ 2

    1
    参照マニフェストを含むディレクトリーは、extraManifests.searchPaths の下に最初にリストされる必要があります。
    2
    ユーザー提供の CR を使用している場合は、SiteConfig CR の extraManifests.searchPaths の下にリストされている最後のディレクトリーが、ユーザー提供の CR を含むディレクトリーである必要があります。
  5. トップレベルの kustomization.yaml ファイルを編集して、アクティブな OpenShift Container Platform バージョンを制御します。以下は、最上位レベルの kustomization.yaml ファイルの例です。

    resources:
    - version_4.13 1
    #- version_4.14 2
    1
    バージョン 4.13 をアクティブ化します。
    2
    コメントを使用してバージョンを非アクティブ化します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.