1.2.3.5. 設定ポリシーを定義した後のハブテンプレートの解決
デフォルトでは、ConfigurationPolicy および OperatorPolicy リソースでハブテンプレートを使用する場合、ハブクラスターで定義されている Policy リソースをこれらのリソースに対応させる必要があります。
設定ポリシーはマネージドクラスター上で直接定義できます。たとえば、OpenShift GitOps を使用すると、マネージドクラスター上で直接設定ポリシーを定義できます。このような状況でマネージドクラスター上のハブテンプレートを解決するには、governance-standalone-hub-templating アドオンを有効にします。
governance-standalone-hub-templating アドオンを有効にするには、次の手順を実行します。
- ハブクラスターで、マネージドクラスターの namespace に移動します。
次の YAML サンプルを使用して、
governance-standalone-hub-templatingという名前のManagedClusterAddOnリソースを作成します。apiVersion: addon.open-cluster-management.io/v1alpha1 kind: ManagedClusterAddOn metadata: name: governance-standalone-hub-templating namespace: <cluster name> labels: cluster.open-cluster-management.io/backup: '' spec: installNamespace: open-cluster-management-agent-addon注記:
spec.installNamespaceフィールドは非推奨です。詳細は、製品の非推奨と削除 を参照してください。
デフォルトでは、マネージドクラスター上のエージェントは、ハブクラスター上の ManagedCluster リソースにのみアクセスできます。マネージドクラスターに直接デプロイされる ConfigurationPolicies 内のハブクラスターテンプレートで、.ManagedClusterLabels テンプレート変数を使用できます。
ハブテンプレートが、lookup 関数や fromConfigMap 関数の呼び出しなど、他のリソースにアクセスできるようにするには、その特定の権限をアドオングループに追加する必要があります。この権限は、Roles、ClusterRoles、RoleBindings、ClusterRoleBindings などのリソースを通じて追加できます。
アドオングループの名前は、マネージドクラスターの名前によって異なりますが、標準の形式は system:open-cluster-management:cluster:<cluster name>:addon:governance-standalone-hub-templating です。
ハブクラスターでマネージドクラスターの namespace 内にある Configmaps へのアクセスを許可するには、次の手順を実行します。
次のコマンドを実行して、
Roleリソースを追加します。oc create role -n <cluster name> cm-reader --verb=get,list,watch --resource=configmaps次のコマンドを実行して、
Rolebindingを追加します。oc create rolebinding -n <cluster name> cm-reader-binding --role=cm-reader --group=system:open-cluster-management:cluster:<cluster name>:addon:governance-standalone-hub-templating-
ハブクラスター上のこれらのリソースが確実にバックアップおよび復元されるように、作成した各リソースに
cluster.open-cluster-management.io/backupラベルを追加します。
これらのリソースを追加すると、アドオンがハブテンプレートを解決できるようになり、ポリシーの状態がマネージドクラスターのシークレットに保存されます。このシークレットは、ハブクラスターがマネージドクラスターで一時的に使用できなくなった場合に停止を防ぎます。