6.4. SiteConfig CR から ClusterInstance CR への移行の実行


古いパイプラインから SiteConfig CR を削除し、対応する ClusterInstance CR を新しいパイプラインに追加して、単一ノードの OpenShift クラスターから SiteConfig CR の使用から ClusterInstance CR を移行します。

前提条件

  • cluster-admin 権限を持つユーザーとしてハブクラスターにログインしている。
  • ClusterInstance CR を使用してクラスターを管理する Argo CD プロジェクトおよびアプリケーションを含む並列 Argo CD パイプラインをセットアップしている。
  • 元の SiteConfig CR パイプラインを管理する Argo CD アプリケーションは、同期ポリシー prune=false で設定されます。この設定により、ターゲットクラスターをこのアプリケーションから削除しても、リソースがそのまま残ります。
  • 単一ノードの OpenShift クラスター設定を含む Git リポジトリーにアクセスできる。
  • Red Hat Advanced Cluster Management (RHACM)バージョン 2.12 以降がハブクラスターにインストールされている。
  • SiteConfig Operator がハブクラスターにインストールされ、実行されている。
  • Podman をインストールし、registry.redhat.io コンテナーイメージレジストリーにアクセスできる。

手順

  1. site-configs フォルダー構造を ClusterInstance CR が含まれる新しい site-configs-v2 ディレクトリーにミラーリングします。次に例を示します。

    site-configs-v2/
    ├── hub-1/ 
    1
    
    │   └── extra-manifest/
    ├── pre-reqs/
    │   └── sno1/ 
    2
    
    ├── reference-manifest/
    │   └── 4.20/
    └── resources/
    Copy to Clipboard Toggle word wrap
    1
    hub-1/ フォルダーには、各クラスターの ClusterInstance CR が含まれます。
    2
    この例では sno1 をミラーリングして、イメージレジストリープルシークレット、ベースボード管理コントローラーの認証情報などの必要な前提条件のリソースを含めます。
  2. Git の関連ファイルのリソースをコメントアウトして、元の Argo CD アプリケーションからターゲットクラスターを削除します。

    1. site-configs/kustomization.yaml ファイルからターゲットクラスターをコメントアウトします。次に例を示します。

      $ cat site-configs/kustomization.yaml
      Copy to Clipboard Toggle word wrap

      更新された site-configs/kustomization.yaml ファイルの例

      apiVersion: kustomize.config.k8s.io/v1beta1
      kind: Kustomization
      resources:
         - pre-reqs/
         #- resources/
      generators:
         #- hub-1/sno1.yaml
         - hub-1/sno2.yaml
         - hub-1/sno3.yaml
      Copy to Clipboard Toggle word wrap

    2. site-configs/pre-reqs/kustomization.yaml ファイルからターゲットクラスターをコメントアウトします。これにより、site-configs/pre-reqs/sno1 フォルダーが削除されます。このフォルダーには、イメージレジストリーのプルシークレット、ベースボード管理コントローラーの認証情報などのリソースもあります。次に例を示します。

      $ cat site-configs/pre-reqs/kustomization.yaml
      Copy to Clipboard Toggle word wrap

      例:更新された site-configs/pre-reqs/kustomization.yaml ファイル

      apiVersion: kustomize.config.k8s.io/v1beta1
      kind: Kustomization
      resources:
        #- sno1/
        - sno2/
        - sno3/
      Copy to Clipboard Toggle word wrap

  3. Git リポジトリーに変更をコミットします。

    注記

    変更をコミットした後、Argo CD アプリケーションはタグクラスターのリソースのステータスをモニターしようとするため、元の Argo CD アプリケーションは OutOfSync sync ステータスを報告します。ただし、同期ポリシーが prune=false に設定されているため、Argo CD アプリケーションはリソースを削除しません。

  4. 元の Argo CD アプリケーションがクラスターリソースを管理しないようにするには、次のコマンドを実行して、リソースから Argo CD アプリケーションラベルを削除できます。

    $ for cr in bmh,hfs,clusterdeployment,agentclusterinstall,infraenv,nmstateconfig,configmap,klusterletaddonconfig,secrets; do oc label $cr app.kubernetes.io/instance- --all -n sno1; done && oc label ns sno1 app.kubernetes.io/instance- && oc label managedclusters sno1 app.kubernetes.io/instance-
    Copy to Clipboard Toggle word wrap

    Argo CD アプリケーションラベルは sno1 namespace のすべてのリソースから削除され、同期ステータスが Synced に戻ります。

  5. ztp-site-generate コンテナーイメージにパッケージ化された siteconfig-converter ツールを使用して、ターゲットクラスターの ClusterInstance CR を作成します。

    注記

    siteconfig-converter ツールは、SiteConfig CR で次の非推奨フィールドを使用する AgentClusterInstall リソースの以前のバージョンを変換できません。

    • apiVIP
    • ingressVIP
    • manifestsConfigMapRef

    この問題を解決するには、次のいずれかのオプションを行います。

    • これらのフィールドを含むカスタムクラスターテンプレートを作成します。カスタムテンプレートの作成の詳細については、SiteConfig 演算子を使用したカスタムテンプレートの作成 を参照してください。
    • AgentClusterInstall リソースの作成を ClusterInstance CR の suppressedManifests リストに追加するか、siteconfig-converter ツールの -s フラグを使用して、作成を抑制します。クラスターを再インストールする際に、リソースを suppressedManifests リストから削除する必要があります。
    1. 次のコマンドを実行して、ztp-site-generate コンテナーイメージをプルします。

      podman pull registry.redhat.io/openshift4/ztp-site-generate-rhel8:4.20
      Copy to Clipboard Toggle word wrap
    2. 次のコマンドを実行して、コンテナーを介して siteconfig-converter ツールを対話的に実行します。

      $ podman run -v "${PWD}":/resources:Z,U -it registry.redhat.io/openshift4/ztp-site-generate-rhel8:{product-version} siteconfig-converter -d /resources/<output_folder> /resources/<path_to_siteconfig_resource>
      Copy to Clipboard Toggle word wrap
      • &lt ;output_folder> を、生成されたファイルの出力ディレクトリーに置き換えます。
      • & lt;path_to_siteconfig_resource> をターゲット SiteConfig CR ファイルへのパスに置き換えます。

        出力例

        Successfully read SiteConfig: sno1/sno1
        Converted cluster 1 (sno1) to ClusterInstance: /resources/output/sno1.yaml
        WARNING: extraManifests field is not supported in ClusterInstance and will be ignored. Create one or more configmaps with the exact desired set of CRs for the cluster and include them in the extraManifestsRefs.
        WARNING: Added default extraManifest ConfigMap 'extra-manifests-cm' to extraManifestsRefs. This configmap is created automatically.
        Successfully converted 1 cluster(s) to ClusterInstance files in /resources/output: sno1.yaml
        Generating ConfigMap kustomization files...
        Using ConfigMap name: extra-manifests-cm, namespace: sno1, manifests directory: extra-manifests
        Generating ConfigMap kustomization files with name: extra-manifests-cm, namespace: sno1, manifests directory: extra-manifests
        Generating extraManifests for SiteConfig: /resources/sno1.yaml
        Using absolute path for input file: /resources/sno1.yaml
        Running siteconfig-generator from directory: /resources
        Found extraManifests directory: /resources/output/extra-manifests/sno1
        Moved sno1_containerruntimeconfig_enable-crun-master.yaml to /resources/output/extra-manifests/sno1_containerruntimeconfig_enable-crun-master.yaml
        Moved sno1_containerruntimeconfig_enable-crun-worker.yaml to /resources/output/extra-manifests/sno1_containerruntimeconfig_enable-crun-worker.yaml
        Moved 2 extraManifest files from /resources/output/extra-manifests/sno1 to /resources/output/extra-manifests
        Removed directory: /resources/output/extra-manifests/sno1
        --- Kustomization.yaml Generator ---
        Scanning directory: /resources/output/extra-manifests
        Found and adding: extra-manifests/sno1_containerruntimeconfig_enable-crun-master.yaml
        Found and adding: extra-manifests/sno1_containerruntimeconfig_enable-crun-worker.yaml
        ------------------------------------
        kustomization-configMapGenerator-snippet.yaml generated successfully at: /resources/output/kustomization-configMapGenerator-snippet.yaml
        Content:
        apiVersion: kustomize.config.k8s.io/v1beta1
        kind: Kustomization
        configMapGenerator:
            - files:
                - extra-manifests/sno1_containerruntimeconfig_enable-crun-master.yaml
                - extra-manifests/sno1_containerruntimeconfig_enable-crun-worker.yaml
              name: extra-manifests-cm
              namespace: sno1
        generatorOptions:
            disableNameSuffixHash: true
        
        ------------------------------------
        Copy to Clipboard Toggle word wrap

        注記

        ClusterInstance CR では、追加のマニフェストを ConfigMap リソースで定義する必要があります。

        この要件を満たすために、siteconfig-converter ツールは kustomization.yaml スニペットを生成します。生成されたスニペットは Kustomize の configMapGenerator を使用して、マニフェストファイルを必要な ConfigMap リソースに自動的にパッケージ化します。このスニペットを元の kustomization.yaml ファイルにマージして、ConfigMap リソースが他のクラスターリソースと一緒に作成および管理されることを確認する必要があります。

  6. 新しい Argo CD アプリケーションを設定し、新しいパイプライン Kustomization ファイルでターゲットクラスターを参照します。次に例を示します。

    $ cat site-configs-v2/kustomization.yaml
    Copy to Clipboard Toggle word wrap

    例:更新された site-configs-v2/kustomization.yaml ファイル

    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    resources:
      - resources/
      - pre-reqs/
      - hub-1/sno1.yaml
    Copy to Clipboard Toggle word wrap

    $ cat  site-configs-v2/pre-reqs/kustomization.yaml
    Copy to Clipboard Toggle word wrap

    例:更新された site-configs-v2/pre-reqs/kustomization.yaml ファイル

    apiVersion: kustomize.config.k8s.io/v1beta1
    kind: Kustomization
    resources:
      - sno1/
    Copy to Clipboard Toggle word wrap

  7. Git リポジトリーに変更をコミットします。

検証

  1. 次のコマンドを実行して、ClusterInstance CR が正常にデプロイされ、プロビジョニングのステータスが完了したことを確認します。

    $ oc get clusterinstance -A
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                                         PAUSED   PROVISIONSTATUS   PROVISIONDETAILS         AGE
    clusterinstance.siteconfig.open-cluster-management.io/sno1            Completed         Provisioning completed   27s
    Copy to Clipboard Toggle word wrap

    この時点で、ClusterInstance CR を使用する新規の Argo CD アプリケーションは sno1 クラスターを管理します。すべてのターゲットクラスターが新しいパイプラインに移行するまで、これらの手順を繰り返して、一度に 1 つ以上のクラスターを移行できます。

  2. site-configs-v2/ ディレクトリーのフォルダー構造とファイルに、sno1 クラスターの移行したリソースが含まれていることを確認します。次に例を示します。

    site-configs-v2/
    ├── hub-1/
    │   ├── sno1.yaml 
    1
    
    ├── extra-manifest/
    │   ├── enable-crun-worker.yaml 
    2
    
    │   └── enable-crun-master.yaml
    ├── kustomization.yaml 
    3
    
    ├── pre-reqs/
    │   └── sno1/
    │       ├── bmc-credentials.yaml
    │       ├── namespace.yaml
    │       └── pull-secret.yaml
    ├── kustomization.yaml
    ├── reference-manifest/
    │   └── 4.20/
    └── resources/
        ├── active-ocp-version.yaml
        └── kustomization.yaml
    Copy to Clipboard Toggle word wrap
    1
    sno1 クラスターのこの ClusterInstance CR。
    2
    このツールは、ClusterInstance CR によって参照される追加のマニフェストを自動的に生成します。生成後に、ファイル名が変更される可能性があります。ファイルの名前を変更して、関連する kustomization.yaml ファイルの元の命名規則に一致させることができます。
    3
    このツールは、kuztomization.yaml ファイルスニペットを生成して、追加のマニフェストを指定する ConfigMap リソースを作成します。生成された kustomization スニペットを元の kuztomization.yaml ファイルにマージできます。

6.4.1. siteconfig-converter ツールの参照フラグ

以下のマトリックスは、siteconfig-converter ツールのフラグについて説明しています。

Expand
フラグタイプ説明

-d

string

変換された ClusterInstance カスタムリソース(CR)の出力ディレクトリーを定義します。このフラグは必須です。

-t

string

クラスターのテンプレート参照のコンマ区切りリストを namespace/name 形式で定義します。デフォルト値は open-cluster-management/ai-cluster-templates-v1 です。

-n

string

ノードのテンプレート参照のコンマ区切りリストを namespace/name 形式で定義します。デフォルト値は open-cluster-management/ai-node-templates-v1 です。

-m

string

追加のマニフェスト参照に使用する ConfigMap 名のコンマ区切りリストを定義します。

-s

string

クラスターレベルで抑制するように、マニフェスト名のコンマ区切りリストを定義します。

-w

boolean

変換された YAML ファイルのヘッドに、変換警告をコメントとして記述します。デフォルト値は false です。

-c

boolean

元の SiteConfig CR から変換された ClusterInstance CR にコメントをコピーします。デフォルトは false です。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat