第9章 ClusterInstance リソースを使用した高度なマネージドクラスター設定
ClusterInstance の カスタムリソース (CR) を使用すると、インストール時に管理対象クラスターにカスタム機能や設定をデプロイできます。
9.1. GitOps ZTP パイプラインでの追加インストールマニフェストのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
GitOps Zero Touch Provisioning (ZTP) パイプラインのインストールフェーズに追加するマニフェストセットを定義できます。これらのマニフェストは、ClusterInstance の カスタムリソース (CR) にリンクされており、インストール時にクラスターに適用されます。インストール時に MachineConfig CR を含めると、インストール作業が効率的になります。
追加のマニフェストは ConfigMap リソースにパッケージ化し、ClusterInstance CR の extraManifestsRefs フィールドで参照する必要があります。
前提条件
- カスタムサイトの設定データを管理する Git リポジトリーを作成している。リポジトリーはハブクラスターからアクセス可能で、Argo CD アプリケーションのソースリポジトリーとして定義されている必要があります。
手順
- GitOps ZTP パイプラインがクラスターインストールのカスタマイズ使用する、追加のマニフェスト CR のセットを作成します。
/clusterinstanceディレクトリー内に、追加のマニフェストを格納するサブディレクトリーを作成します。以下の例は、フォルダー構造のサンプルを示しています。clusterinstance/ ├── site1-sno-du.yaml ├── extra-manifest/ │ ├── 01-example-machine-config.yaml │ ├── enable-crun-master.yaml │ └── enable-crun-worker.yaml └── kustomization.yaml追加マニフェストを
ConfigMapにパッケージ化するためにconfigMapGeneratorを使用するには、kustomization.yamlファイルを作成または更新します。apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - site1-sno-du.yaml configMapGenerator: - name: extra-manifests-cm namespace: site1-sno-du1 files: - extra-manifest/01-example-machine-config.yaml - extra-manifest/enable-crun-master.yaml - extra-manifest/enable-crun-worker.yaml generatorOptions: disableNameSuffixHash: true2 ClusterInstanceCR のextraManifestsRefsフィールドでConfigMap を参照します。apiVersion: siteconfig.open-cluster-management.io/v1alpha1 kind: ClusterInstance metadata: name: "site1-sno-du" namespace: "site1-sno-du" spec: clusterName: "site1-sno-du" networkType: "OVNKubernetes" extraManifestsRefs: - name: extra-manifests-cm1 # ...- 1
- 追加のマニフェストを含む
ConfigMapへの参照。
-
ClusterInstanceCR、追加のマニフェストファイル、およびkustomization.yamlを Git リポジトリーにコミットし、変更をプッシュしてください。
クラスターのプロビジョニング中に、SiteConfig Operator は参照される ConfigMap リソースに含まれる CR を追加のマニフェストとして適用します。
extraManifestsRefs では、複数の ConfigMap リソースを参照することで、マニフェストを論理的に整理できます。たとえば、実行設定、カスタム MachineConfig CR、その他の初期設定用に、それぞれ別の ConfigMap リソースを用意することができます。