7.3. 動的ルーティング用に事前プロビジョニングされたノードを含む OpenStackDataPlaneNodeSet CR を作成する
事前にプロビジョニングされたノードを使用した Red Hat OpenStack Services on OpenShift (RHOSO) 環境で動的ルーティング用にデータプレーンを設定するには、Compute ノードの OpenStackDataPlaneNodeSet CR と Networker ノードの OpenStackDataPlaneNodeSet CR を作成します。Networker ノードに OVN ゲートウェイシャーシが含まれています。
7.3.1. 事前にプロビジョニングされたノードを使用した Compute ノードの OpenStackDataPlaneNodeSet CR の作成 リンクのコピーリンクがクリップボードにコピーされました!
Compute ノードであるデータプレーン内の事前にプロビジョニングされたノードの論理グループ用に OpenStackDataPlaneNodeSet カスタムリソース (CR) を定義します。デプロイメントに必要な数だけ、Compute ノードセットを定義できます。各ノードは、1 つの OpenStackDataPlaneNodeSet CR にのみ含めることができます。各ノードセットは、1 つの Compute セルにのみ接続できます。デフォルトでは、ノードセットは cell1 に接続されます。コントロールプレーンをカスタマイズして Compute セルを追加する場合は、ノードセットの接続先のセルを指定する必要があります。Compute セルの追加の詳細は、Red Hat OpenStack Services on OpenShift デプロイメントのカスタマイズ ガイドの OpenStackDataPlaneNodeSet CR を Compute セルに接続する を参照してください。
現在、動的ルーティング環境では、RHOSO コントロールプレーンを分散できないという制限があります。このため、OVN ゲートウェイシャーシをホストする専用の Networker ノードが必要です。この制限は、今後の RHOSO リリースで解決される予定です。詳細は、OSPRH-661 を参照してください。
nodeTemplate フィールドを使用して OpenStackDataPlaneNodeSet CR 内のすべてのノードに適用する共通プロパティーを設定し、nodeTemplate.nodes フィールドを使用してノード固有のプロパティーを設定します。ノード固有の設定は、nodeTemplate から継承された値をオーバーライドします。
事前にプロビジョニングされた Compute ノードからノードが設定する OpenStackDataPlaneNodeSet CR の例は、事前にプロビジョニングされたノードの OpenStackDataPlaneNodeSet CR の例 を参照してください。
手順
openstack_compute_node_set.yamlという名前のワークステーションにファイルを作成し、OpenStackDataPlaneNodeSetCR を定義します。apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneNodeSet metadata: name: openstack-compute-nodes1 namespace: openstack spec: env:2 - name: ANSIBLE_FORCE_COLOR value: "True"データプレーン上の Compute ノードをコントロールプレーンネットワークに接続します。
spec: ... networkAttachments: - ctlplaneこのセット内のノードが事前にプロビジョニングされていることを指定します。
preProvisioned: true作成した SSH キーシークレットを追加して、Ansible がデータプレーン上の Compute ノードに接続できるようにします。
nodeTemplate: ansibleSSHPrivateKeySecret: <secret-key>-
<secret-key>は、データプレーンシークレットの作成 でこのノードセット用に作成した SSH 鍵のSecretCR の名前 (例:dataplane-ansible-ssh-private-key-secret) に置き換えます。
-
-
ログを保存するために、Red Hat OpenShift Container Platform (RHOCP) クラスターの
openstacknamespace に永続ボリューム要求 (PVC) を作成します。volumeModeをFilesystemに、accessModesをReadWriteOnceに設定します。NFS ボリュームプラグインを使用する PersistentVolume (PV) からのログのストレージを要求しないでください。NFS は FIFO と互換性がないため、ansible-runnerはログを保存するために書き込む FIFO ファイルを作成します。PVC の詳細は、RHOCP ストレージ ガイドの 永続ストレージについて、および デプロイメントのプランニング の Red Hat OpenShift Container Platform クラスターの要件 を参照してください。 データプレーンノードの永続的なロギングを有効にします。
nodeTemplate: ... extraMounts: - extraVolType: Logs volumes: - name: ansible-logs persistentVolumeClaim: claimName: <pvc_name> mounts: - name: ansible-logs mountPath: "/runner/artifacts"-
<pvc_name>を、RHOCP クラスター上の PVC ストレージの名前に置き換えます。
-
管理ネットワークを指定します。
nodeTemplate: ... managementNetwork: ctlplaneノードのオペレーティングシステムを登録し、リポジトリーを有効にするためのユーザー名とパスワードの取得に使用される
SecretCR を指定します。次の例は、ノードを CDN に登録する方法を示しています。Red Hat Satellite 6.13 にノードを登録する方法の詳細は、ホストの管理 を参照してください。nodeTemplate: ... ansible: ansibleUser: cloud-admin1 ansiblePort: 22 ansibleVarsFrom: - prefix: subscription_manager_ secretRef: name: subscription-manager - prefix: registry_ secretRef: name: redhat-registry ansibleVars:2 edpm_bootstrap_command: | subscription-manager register --username {{ subscription_manager_username }} --password {{ subscription_manager_password }} subscription-manager release --set=9.4 subscription-manager repos --disable=* subscription-manager repos --enable=rhel-9-for-x86_64-baseos-eus-rpms --enable=rhel-9-for-x86_64-appstream-eus-rpms --enable=rhel-9-for-x86_64-highavailability-eus-rpms --enable=fast-datapath-for-rhel-9-x86_64-rpms --enable=rhoso-18.0-for-rhel-9-x86_64-rpms --enable=rhceph-7-tools-for-rhel-9-x86_64-rpms edpm_bootstrap_release_version_package: []- 1
- データプレーンシークレットの作成 で作成したシークレットに関連付けられているユーザー。
- 2
- ノードのセットをカスタマイズする Ansible 変数。使用できる Ansible 変数のリストは、https://openstack-k8s-operators.github.io/edpm-ansible/ を参照してください。
Red Hat カスタマーポータル登録コマンドの完全なリストは、https://access.redhat.com/solutions/253273 を参照してください。
registry.redhat.ioにログインする方法は、https://access.redhat.com/RegistryAuthentication#creating-registry-service-accounts-6 を参照してください。Compute ノードに適用するネットワーク設定テンプレートを追加します。次の例では、1 つの NIC VLAN ネットワーク設定をデータプレーンノードに適用します。
nodeTemplate: ... ansible: ... ansibleVars: ... edpm_network_config_os_net_config_mappings: edpm-compute-0: nic1: 52:54:04:60:55:221 neutron_physical_bridge_name: br-ex neutron_public_interface_name: eth0 edpm_network_config_template: | --- {% set mtu_list = [ctlplane_mtu] %} {% for network in nodeset_networks %} {{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }} {%- endfor %} {% set min_viable_mtu = mtu_list | max %} network_config: - type: ovs_bridge name: {{ neutron_physical_bridge_name }} use_dhcp: false use_dhcpv6: true - type: interface name: nic1 use_dhcp: true defroute: false - type: interface name: nic2 use_dhcp: false defroute: false dns_servers: {{ ctlplane_dns_nameservers }} domain: {{ dns_search_domains }} addresses: - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }} - type: interface name: nic3 use_dhcp: false addresses: - ip_netmask: {{ lookup('vars', 'bgpnet0_ip') }}/30 - type: interface name: nic4 use_dhcp: false addresses: - ip_netmask: {{ lookup('vars', 'bgpnet1_ip') }}/30 - type: interface name: lo addresses: - ip_netmask: {{ lookup('vars', 'bgpmainnet_ip') }}/32 - ip_netmask: {{ lookup('vars', 'bgpmainnetv6_ip') }}/128 - ip_netmask: {{ lookup('vars', 'internalapi_ip') }}/32 - ip_netmask: {{ lookup('vars', 'storage_ip') }}/32 - ip_netmask: {{ lookup('vars', 'tenant_ip') }}/32 - ip_netmask: {{ lookup('vars', 'octavia_ip') }}/32- 1
nic1を、Compute ノードのネットワーク設定に使用する NIC に割り当てられた MAC アドレスに更新します。
別のテンプレートは、
roles/edpm_network_config/templatesを参照してください。データプレーンネットワーク設定の詳細は、ネットワークサービスの設定 の データプレーンネットワークのカスタマイズ を参照してください。このグループの Compute ノードセットの共通設定を
nodeTemplateセクションに追加します。このOpenStackDataPlaneNodeSet内の各ノードがこの設定を継承します。- 例
edpm_frr_bgp_ipv4_src_network: bgpmainnet edpm_frr_bgp_neighbor_password: f00barZ edpm_frr_bgp_uplinks: - nic3 - nic4 edpm_ovn_encap_ip: '{{ lookup(''vars'', ''bgpmainnet_ip'') }}'共通のノード属性の設定に使用できるプロパティーの詳細は、動的ルーティングの
OpenStackDataPlaneNodeSetCRspecプロパティー を参照してください。
このノードセット内の各ノードを定義します。
nodes: edpm-compute-0:1 hostName: edpm-compute-0 networks:2 - name: ctlplane subnetName: subnet1 defaultRoute: true fixedIP: 192.168.122.1003 - name: internalapi subnetName: subnet1 fixedIP: 172.17.0.100 - name: storage subnetName: subnet1 fixedIP: 172.18.0.100 - name: tenant subnetName: subnet1 fixedIP: 172.19.0.100 - name: BgpNet0 subnetName: subnet0 fixedIP: 100.64.0.2 - name: BgpNet1 subnetName: subnet0 fixedIP: 100.65.0.2 - name: BgpMainNet subnetName: subnet0 fixedIP: 172.30.0.2 ansible: ansibleHost: 192.168.122.100 ansibleUser: cloud-admin ansibleVars:4 fqdn_internal_api: edpm-compute-0.example.com edpm-compute-1: hostName: edpm-compute-1 networks: - name: ctlplane subnetName: subnet1 defaultRoute: true fixedIP: 192.168.122.101 - name: internalapi subnetName: subnet1 fixedIP: 172.17.0.101 - name: storage subnetName: subnet1 fixedIP: 172.18.0.101 - name: tenant subnetName: subnet1 fixedIP: 172.19.0.101 - name: BgpNet0 subnetName: subnet0 fixedIP: 100.64.1.2 - name: BgpNet1 subnetName: subnet0 fixedIP: 100.65.1.2 - name: BgpMainNet subnetName: subnet0 fixedIP: 172.30.1.2 ansible: ansibleHost: 192.168.122.101 ansibleUser: cloud-admin ansibleVars: fqdn_internal_api: edpm-compute-1.example.com注記-
nodesセクションに定義するノードには、nodeTemplateセクションで設定されているのと同じ Ansible 変数を設定できます。Ansible 変数が特定のノードとnodeTemplateセクション内の両方に設定されている場合は、ノード固有の値がnodeTemplateセクションの値をオーバーライドします。 -
ノードのすべての
nodeTemplateAnsible 変数を複製してデフォルトをオーバーライドし、ノード固有の値を設定する必要はありません。設定する必要があるのは、オーバーライドするノードの Ansible 変数だけです。 -
多くの
ansibleVarsの名前にはedpmが含まれています。これは "External Data Plane Management (外部データプレーン管理)" の略です。
ノード属性を設定するために使用できるプロパティーの詳細は、
OpenStackDataPlaneNodeSetCR のプロパティー を参照してください。-
servicesセクションに、frrおよびovn-bgp-agentサービスが含まれていることを確認します。- 例
services: - download-cache - redhat - bootstrap - configure-network - install-os - configure-os - frr - validate-network - ssh-known-hosts - run-os - reboot-os - install-certs - ovn - neutron-metadata - ovn-bgp-agent - libvirt - nova
-
openstack_compute_node_set.yaml定義ファイルを保存します。 データプレーンリソースを作成します。
$ oc create --save-config -f openstack_compute_node_set.yaml -n openstackステータスが
SetupReadyであることを確認して、データプレーンリソースが作成されたことを確認します。$ oc wait openstackdataplanenodeset openstack-compute-nodes \ --for condition=SetupReady --timeout=10mステータスが
SetupReadyの場合、コマンドはcondition metメッセージを返し、それ以外の場合はタイムアウトエラーを返します。データプレーンの状態の詳細は、データプレーンの状態 を参照してください。
ノードセットの
Secretリソースが作成されたことを確認します。$ oc get secret | grep openstack-compute-nodes dataplanenodeset-openstack-compute-nodes Opaque 1 3m50sサービスが作成されたことを確認します。
$ oc get openstackdataplaneservice -n openstack NAME AGE download-cache 46m bootstrap 46m configure-network 46m validate-network 46m frr 46m install-os 46m ...
7.3.2. 事前にプロビジョニングされたノードを使用した Networker ノードの OpenStackDataPlaneNodeSet CR の作成 リンクのコピーリンクがクリップボードにコピーされました!
Networker ノードであるデータプレーン内の事前にプロビジョニングされたノードの論理グループ用に OpenStackDataPlaneNodeSet カスタムリソース (CR) を定義します。デプロイメントに必要な数の Networker ノードセットを定義できます。
現在、動的ルーティング環境では、RHOSO コントロールプレーンを分散できないという制限があります。このため、OVN ゲートウェイシャーシをホストする専用の Networker ノードが必要です。この制限は、今後の RHOSO リリースで解決される予定です。詳細は、OSPRH-661 を参照してください。
nodeTemplate フィールドを使用して OpenStackDataPlaneNodeSet CR 内のすべてのノードに適用する共通プロパティーを設定し、nodeTemplate.nodes フィールドを使用してノード固有のプロパティーを設定します。ノード固有の設定は、nodeTemplate から継承された値をオーバーライドします。
事前にプロビジョニングされた Networker ノードからノードを設定する OpenStackDataPlaneNodeSet CR の例は、事前にプロビジョニングされたノードの OpenStackDataPlaneNodeSet CR の例 を参照してください。
手順
openstack_networker_node_set.yamlという名前のワークステーションにファイルを作成し、OpenStackDataPlaneNodeSetCR を定義します。apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneNodeSet metadata: name: openstack-networker-nodes1 namespace: openstack spec: env:2 - name: ANSIBLE_FORCE_COLOR value: "True"データプレーン上の Networker ノードをコントロールプレーンネットワークに接続します。
spec: ... networkAttachments: - ctlplaneこのセット内のノードが事前にプロビジョニングされていることを指定します。
preProvisioned: true作成した SSH キーシークレットを追加して、Ansible がデータプレーン上の Networker ノードに接続できるようにします。
nodeTemplate: ansibleSSHPrivateKeySecret: <secret-key>-
<secret-key>は、データプレーンシークレットの作成 でこのノードセット用に作成した SSH 鍵のSecretCR の名前 (例:dataplane-ansible-ssh-private-key-secret) に置き換えます。
-
-
ログを保存するために、Red Hat OpenShift Container Platform (RHOCP) クラスターの
openstacknamespace に永続ボリューム要求 (PVC) を作成します。volumeModeをFilesystemに、accessModesをReadWriteOnceに設定します。NFS ボリュームプラグインを使用する PersistentVolume (PV) からのログのストレージを要求しないでください。NFS は FIFO と互換性がないため、ansible-runnerはログを保存するために書き込む FIFO ファイルを作成します。PVC の詳細は、RHOCP ストレージ ガイドの 永続ストレージについて、および デプロイメントのプランニング の Red Hat OpenShift Container Platform クラスターの要件 を参照してください。 データプレーンノードの永続的なロギングを有効にします。
nodeTemplate: ... extraMounts: - extraVolType: Logs volumes: - name: ansible-logs persistentVolumeClaim: claimName: <pvc_name> mounts: - name: ansible-logs mountPath: "/runner/artifacts"-
<pvc_name>を、RHOCP クラスター上の PVC ストレージの名前に置き換えます。
-
管理ネットワークを指定します。
nodeTemplate: ... managementNetwork: ctlplaneノードのオペレーティングシステムを登録し、リポジトリーを有効にするためのユーザー名とパスワードの取得に使用される
SecretCR を指定します。次の例は、ノードを CDN に登録する方法を示しています。Red Hat Satellite 6.13 にノードを登録する方法の詳細は、ホストの管理 を参照してください。nodeTemplate: ... ansible: ansibleUser: cloud-admin1 ansiblePort: 22 ansibleVarsFrom: - prefix: subscription_manager_ secretRef: name: subscription-manager - prefix: registry_ secretRef: name: redhat-registry ansibleVars:2 edpm_bootstrap_command: | subscription-manager register --username {{ subscription_manager_username }} --password {{ subscription_manager_password }} subscription-manager release --set=9.4 subscription-manager repos --disable=* subscription-manager repos --enable=rhel-9-for-x86_64-baseos-eus-rpms --enable=rhel-9-for-x86_64-appstream-eus-rpms --enable=rhel-9-for-x86_64-highavailability-eus-rpms --enable=fast-datapath-for-rhel-9-x86_64-rpms --enable=rhoso-18.0-for-rhel-9-x86_64-rpms --enable=rhceph-7-tools-for-rhel-9-x86_64-rpms edpm_bootstrap_release_version_package: []- 1
- データプレーンシークレットの作成 で作成したシークレットに関連付けられているユーザー。
- 2
- ノードのセットをカスタマイズする Ansible 変数。使用できる Ansible 変数のリストは、https://openstack-k8s-operators.github.io/edpm-ansible/ を参照してください。
Red Hat カスタマーポータル登録コマンドの完全なリストは、https://access.redhat.com/solutions/253273 を参照してください。
registry.redhat.ioにログインする方法は、https://access.redhat.com/RegistryAuthentication#creating-registry-service-accounts-6 を参照してください。Networker ノードに適用するネットワーク設定テンプレートを追加します。次の例では、1 つの NIC VLAN ネットワーク設定をデータプレーンノードに適用します。
nodeTemplate: ... ansible: ... ansibleVars: ... edpm_network_config_os_net_config_mappings: edpm-networker-0: nic1: 52:54:04:60:55:221 neutron_physical_bridge_name: br-ex neutron_public_interface_name: eth0 edpm_network_config_template: | --- {% set mtu_list = [ctlplane_mtu] %} {% for network in nodeset_networks %} {{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }} {%- endfor %} {% set min_viable_mtu = mtu_list | max %} network_config: - type: ovs_bridge name: {{ neutron_physical_bridge_name }} use_dhcp: false use_dhcpv6: true - type: interface name: nic1 use_dhcp: true defroute: false - type: interface name: nic2 use_dhcp: false defroute: false dns_servers: {{ ctlplane_dns_nameservers }} domain: {{ dns_search_domains }} addresses: - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }} - type: interface name: nic3 use_dhcp: false addresses: - ip_netmask: {{ lookup('vars', 'bgpnet0_ip') }}/30 - type: interface name: nic4 use_dhcp: false addresses: - ip_netmask: {{ lookup('vars', 'bgpnet1_ip') }}/30 - type: interface name: lo addresses: - ip_netmask: {{ lookup('vars', 'bgpmainnet_ip') }}/32 - ip_netmask: {{ lookup('vars', 'bgpmainnetv6_ip') }}/128 - ip_netmask: {{ lookup('vars', 'internalapi_ip') }}/32 - ip_netmask: {{ lookup('vars', 'storage_ip') }}/32 - ip_netmask: {{ lookup('vars', 'tenant_ip') }}/32 - ip_netmask: {{ lookup('vars', 'octavia_ip') }}/32- 1
nic1を、Compute ノードのネットワーク設定に使用する NIC に割り当てられた MAC アドレスに更新します。
別のテンプレートは、
roles/edpm_network_config/templatesを参照してください。データプレーンネットワーク設定の詳細は、ネットワークサービスの設定 ガイドの データプレーンネットワークのカスタマイズ を参照してください。このグループの Networker ノードセットの共通設定を
nodeTemplateセクションの下に追加します。このOpenStackDataPlaneNodeSet内の各ノードがこの設定を継承します。- 例
edpm_frr_bgp_ipv4_src_network: bgpmainnet edpm_frr_bgp_neighbor_password: f00barZ edpm_frr_bgp_uplinks: - nic3 - nic4 edpm_ovn_encap_ip: '{{ lookup(''vars'', ''bgpmainnet_ip'') }}'共通のノード属性の設定に使用できるプロパティーの詳細は、動的ルーティングの
OpenStackDataPlaneNodeSetCRspecプロパティー を参照してください。
このノードセット内の各ノードを定義します。
nodes: edpm-networker-0:1 hostName: edpm-networker-0 networks:2 - name: ctlplane subnetName: subnet1 defaultRoute: true fixedIP: 192.168.122.1003 - name: internalapi subnetName: subnet1 fixedIP: 172.17.0.100 - name: storage subnetName: subnet1 fixedIP: 172.18.0.100 - name: tenant subnetName: subnet1 fixedIP: 172.19.0.100 - name: BgpNet0 subnetName: subnet0 fixedIP: 100.64.0.2 - name: BgpNet1 subnetName: subnet0 fixedIP: 100.65.0.2 - name: BgpMainNet subnetName: subnet0 fixedIP: 172.30.0.2 ansible: ansibleHost: 192.168.122.100 ansibleUser: cloud-admin ansibleVars:4 fqdn_internal_api: edpm-networker-0.example.com edpm-networker-1: hostName: edpm-networker-1 networks: - name: ctlplane subnetName: subnet1 defaultRoute: true fixedIP: 192.168.122.101 - name: internalapi subnetName: subnet1 fixedIP: 172.17.0.101 - name: storage subnetName: subnet1 fixedIP: 172.18.0.101 - name: tenant subnetName: subnet1 fixedIP: 172.19.0.101 - name: BgpNet0 subnetName: subnet0 fixedIP: 100.64.0.2 - name: BgpNet1 subnetName: subnet0 fixedIP: 100.65.0.2 - name: BgpMainNet subnetName: subnet0 fixedIP: 172.30.0.2 ansible: ansibleHost: 192.168.122.101 ansibleUser: cloud-admin ansibleVars: fqdn_internal_api: edpm-networker-1.example.com注記-
nodesセクションに定義するノードには、nodeTemplateセクションで設定されているのと同じ Ansible 変数を設定できます。Ansible 変数が特定のノードとnodeTemplateセクション内の両方に設定されている場合は、ノード固有の値がnodeTemplateセクションの値をオーバーライドします。 -
ノードのすべての
nodeTemplateAnsible 変数を複製してデフォルトをオーバーライドし、ノード固有の値を設定する必要はありません。設定する必要があるのは、オーバーライドするノードの Ansible 変数だけです。 -
多くの
ansibleVarsの名前にはedpmが含まれています。これは "External Data Plane Management (外部データプレーン管理)" の略です。
ノード属性を設定するために使用できるプロパティーの詳細は、
OpenStackDataPlaneNodeSetCR のプロパティー を参照してください。-
servicesセクションに、frrサービスおよびovn-bgp-agentサービスが含まれていることを確認します。注記ssh-known-hostsサービスは Compute ノードセット CR にすでに含まれているため、このノードセットには 追加しない でください。このサービスはグローバルサービスであるため、単一のノードセット CR のみ に含まれています。- 例
services: - download-cache - bootstrap - configure-network - install-os - configure-os - frr - validate-network - run-os - reboot-os - install-certs - ovn - neutron-metadata - ovn-bgp-agent
-
openstack_networker_node_set.yaml定義ファイルを保存します。 データプレーンの Networker ノードリソースを作成します。
$ oc create --save-config -f openstack_networker_node_set.yaml -n openstackステータスが
SetupReadyであることを確認して、データプレーンリソースが作成されたことを確認します。$ oc wait openstackdataplanenodeset openstack-networker-nodes --for condition=SetupReady --timeout=10mステータスが
SetupReadyの場合、コマンドはcondition metメッセージを返し、それ以外の場合はタイムアウトエラーを返します。データプレーンの状態の詳細は、データプレーンの状態 を参照してください。
ノードセットの
Secretリソースが作成されたことを確認します。$ oc get secret | grep openstack-networker-nodes dataplanenodeset-openstack-networker-nodes Opaque 1 3m50sサービスが作成されたことを確認します。
$ oc get openstackdataplaneservice -n openstack NAME AGE download-cache 46m bootstrap 46m configure-network 46m validate-network 46m frr 46m install-os 46m ...
7.3.3. 動的ルーティング用に事前プロビジョニングされたノードの OpenStackDataPlaneNodeSet CR の例 リンクのコピーリンクがクリップボードにコピーされました!
次の OpenStackDataPlaneNodeSet CR の例では、ノード固有の設定を使用して、事前にプロビジョニングされた Compute ノードからノードセットを作成します。例にはオプションのフィールドが含まれています。この例を確認し、オプションのフィールドを環境に適した値に更新するか、削除します。その後、Red Hat OpenStack Services on OpenShift (RHOSO) デプロイメントでこの例を使用します。
この例の OpenStackDataPlaneNodeSet CR の名前を、セット内のノードを表す名前に更新してください。OpenStackDataPlaneNodeSet CR 名は、一意であり、小文字の英数字と - (ハイフン) または . (ピリオド) のみが含まれ、先頭と末尾は英数字で、最大長 53 文字である必要があります。
apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneNodeSet
metadata:
name: openstack-compute-nodes
namespace: openstack
spec:
env:
- name: ANSIBLE_FORCE_COLOR
value: "True"
networkAttachments:
- ctlplane
preProvisioned: true
nodeTemplate:
ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret
extraMounts:
- extraVolType: Logs
volumes:
- name: ansible-logs
persistentVolumeClaim:
claimName: <pvc_name>
mounts:
- name: ansible-logs
mountPath: "/runner/artifacts"
managementNetwork: ctlplane
ansible:
ansibleUser: cloud-admin
ansiblePort: 22
ansibleVarsFrom:
- prefix: subscription_manager_
secretRef:
name: subscription-manager
- prefix: registry_
secretRef:
name: redhat-registry
ansibleVars:
edpm_bootstrap_command: |
subscription-manager register --username {{ subscription_manager_username }} --password {{ subscription_manager_password }}
subscription-manager release --set=9.4
subscription-manager repos --disable=*
subscription-manager repos --enable=rhel-9-for-x86_64-baseos-eus-rpms --enable=rhel-9-for-x86_64-appstream-eus-rpms --enable=rhel-9-for-x86_64-highavailability-eus-rpms --enable=fast-datapath-for-rhel-9-x86_64-rpms --enable=rhoso-18.0-for-rhel-9-x86_64-rpms --enable=rhceph-7-tools-for-rhel-9-x86_64-rpms
edpm_bootstrap_release_version_package: []
edpm_network_config_os_net_config_mappings:
edpm-compute-0:
nic1: 52:54:04:60:55:22
neutron_physical_bridge_name: br-ex
neutron_public_interface_name: eth0
edpm_network_config_template: |
---
{% set mtu_list = [ctlplane_mtu] %}
{% for network in nodeset_networks %}
{{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
{%- endfor %}
{% set min_viable_mtu = mtu_list | max %}
network_config:
- type: ovs_bridge
name: {{ neutron_physical_bridge_name }}
mtu: {{ min_viable_mtu }}
use_dhcp: false
dns_servers: {{ ctlplane_dns_nameservers }}
domain: {{ dns_search_domains }}
addresses:
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
routes: {{ ctlplane_host_routes }}
members:
- type: interface
name: nic1
mtu: {{ min_viable_mtu }}
# force the MAC address of the bridge to this interface
primary: true
{% for network in nodeset_networks %}
- type: vlan
mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }}
addresses:
- ip_netmask:
{{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }}
{% endfor %}
nodes:
edpm-compute-0:
hostName: edpm-compute-0
networks:
- name: ctlplane
subnetName: subnet1
defaultRoute: true
fixedIP: 192.168.122.100
- name: internalapi
subnetName: subnet1
fixedIP: 172.17.0.100
- name: storage
subnetName: subnet1
fixedIP: 172.18.0.100
- name: tenant
subnetName: subnet1
fixedIP: 172.19.0.100
ansible:
ansibleHost: 192.168.122.100
ansibleUser: cloud-admin
ansibleVars:
fqdn_internal_api: edpm-compute-0.example.com
edpm-compute-1:
hostName: edpm-compute-1
networks:
- name: ctlplane
subnetName: subnet1
defaultRoute: true
fixedIP: 192.168.122.101
- name: internalapi
subnetName: subnet1
fixedIP: 172.17.0.101
- name: storage
subnetName: subnet1
fixedIP: 172.18.0.101
- name: tenant
subnetName: subnet1
fixedIP: 172.19.0.101
ansible:
ansibleHost: 192.168.122.101
ansibleUser: cloud-admin
ansibleVars:
fqdn_internal_api: edpm-compute-1.example.com