2.10. コンポーザブルサービスアーキテクチャーの考察
コア heat テンプレートコレクションには、コンポーザブルサービスのテンプレートセットが 2 つ含まれています。
-
deployment
には、主要な OpenStack サービスのテンプレートが含まれます。 -
puppet/services
には、コンポーザブルサービスを設定するためのレガシーテンプレートが含まれます。互換性を維持するために、一部のコンポーザブルサービスは、このディレクトリーからのテンプレートを使用する場合があります。多くの場合、コンポーザブルサービスはdeployment
ディレクトリーのテンプレートを使用します。
各テンプレートには目的を特定する記述が含まれています。たとえば、deployment/time/ntp-baremetal-puppet.yaml
サービステンプレートには以下のような記述が含まれます。
description: > NTP service deployment using puppet, this YAML file creates the interface between the HOT template and the puppet manifest that actually installs and configure NTP.
description: >
NTP service deployment using puppet, this YAML file
creates the interface between the HOT template
and the puppet manifest that actually installs
and configure NTP.
これらのサービステンプレートは、Red Hat OpenStack Platform デプロイメント固有のリソースとして登録されます。これは、overcloud-resource-registry-puppet.j2.yaml
ファイルで定義されている一意な heat リソース名前空間を使用して、各リソースを呼び出すことができることを意味します。サービスはすべて、リソース種別に OS::TripleO::Services
名前空間を使用します。
一部のリソースは、直接コンポーザブルサービスのベーステンプレートを使用します。
resource_registry: ... OS::TripleO::Services::Ntp: deployment/time/ntp-baremetal-puppet.yaml ...
resource_registry:
...
OS::TripleO::Services::Ntp: deployment/time/ntp-baremetal-puppet.yaml
...
ただし、コアサービスにはコンテナーが必要なので、コンテナー化されたサービステンプレートを使用します。たとえば、コンテナー化された keystone
サービスでは、以下のリソースを使用します。
resource_registry: ... OS::TripleO::Services::Keystone: deployment/keystone/keystone-container-puppet.yaml ...
resource_registry:
...
OS::TripleO::Services::Keystone: deployment/keystone/keystone-container-puppet.yaml
...
通常、これらのコンテナー化されたテンプレートは、依存関係を追加するために他のテンプレートを参照します。たとえば、deployment/keystone/keystone-container-puppet.yaml
テンプレートは、ContainersCommon
リソースにベーステンプレートの出力を保管します。
resources: ContainersCommon: type: ../containers-common.yaml
resources:
ContainersCommon:
type: ../containers-common.yaml
これにより、コンテナー化されたテンプレートは、containers-common.yaml
テンプレートからの機能やデータを取り込むことができます。
overcloud.j2.yaml
heat テンプレートには、roles_data.yaml
ファイル内の各カスタムロールのサービスリストを定義するための Jinja2-based コードのセクションが含まれています。
デフォルトのロールの場合は、これにより次のサービスリストパラメーターが作成されます: ControllerServices
、ComputeServices
、BlockStorageServices
、ObjectStorageServices
、CephStorageServices
roles_data.yaml
ファイル内の各カスタムロールのデフォルトのサービスを定義します。たとえば、デフォルトの Controller ロールには、以下の内容が含まれます。
これらのサービスは、次に ControllerServices
パラメーターのデフォルトリストとして定義されます。
環境ファイルを使用してサービスパラメーターのデフォルトリストを上書きすることもできます。たとえば、環境ファイルで ControllerServices
を parameter_default
として定義して、roles_data.yaml
ファイルからのサービスリストを上書きすることができます。