5.3. 事前にプロビジョニングされたノードが含まれるネットワーカーノードセットの OpenStackDataPlaneNodeSet CR を作成する


データプレーン内の事前プロビジョニングされたノード (ネットワーカーノード) の論理グループごとに、OpenStackDataPlaneNodeSet CR を定義できます。デプロイメントに応じて必要な数のノードセットを定義できます。各ノードは、1 つの OpenStackDataPlaneNodeSet CR にのみ含めることができます。

nodeTemplate フィールドを使用して OpenStackDataPlaneNodeSet CR 内のすべてのノードに適用する共通プロパティーを設定し、nodes フィールドを使用してノード固有のプロパティーを設定します。ノード固有の設定は、nodeTemplate から継承された値をオーバーライドします。

ヒント

事前にプロビジョニングされたネットワーカーノードから OVS-DPDK なしでネットワーカーノードセットを設定する OpenStackDataPlaneNodeSet CR の例については、事前にプロビジョニングされたネットワーカーノードの OpenStackDataPlaneNodeSet CR の例 を参照してください。

+ 事前にプロビジョニングされたネットワーカーノードから OVS-DPDK を使用してネットワーカーノードのセットを設定する OpenStackDataPlaneNodeSet CR の例については、事前にプロビジョニングされた DPDK 対応ネットワーカーノードの OpenStackDataPlaneNodeSet CR の例 を参照してください。

手順

  1. openstack_preprovisioned_networker_node_set.yaml という名前のワークステーションにファイルを作成し、OpenStackDataPlaneNodeSet CR を定義します。

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneNodeSet
    metadata:
      name: networker-nodes 
    1
    
      namespace: openstack
    spec:
      env: 
    2
    
        - name: ANSIBLE_FORCE_COLOR
          value: "True"
    1
    OpenStackDataPlaneNodeSet CR 名は、一意であり、小文字の英数字と - (ハイフン) または . (ピリオド) のみが含まれ、先頭と末尾は英数字で、最大長 53 文字である必要があります。必要に応じて、例の名前 networker-nodes をノードセットをより正確に表す名前に置き換えます。
    2
    オプション: Pod に渡す環境変数のリスト。
  2. services フィールドを追加してデフォルトサービスをオーバーライドします。ネットワーカーノードに必要ない novalibvirt、その他のサービスを削除します。

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneNodeSet
    metadata:
      name: networker-nodes
      namespace: openstack
    spec:
    ...
      services:
       - redhat
       - bootstrap
       - download-cache
       - reboot-os
       - configure-ovs-dpdk  
    1
    
       - configure-network
       - validate-network
       - install-os
       - configure-os
       - ssh-known-hosts
       - run-os
       - install-certs
       - ovn
       - neutron-metadata   
    2
    
       - neutron-dhcp       
    3
    1
    configure-ovs-dpdk サービスは、デプロイメントで DPDK NIC が使用される場合にのみ必要です。
    2
    neutron-metadata サービスは、デプロイメントで SR-IOV ポートが使用される場合にのみ必要です。
    3
    必要に応じて、ネットワーカーノードで neutron-dhcp サービスを実行できます。デプロイメントで DHCP リレーを使用する場合や、dnsmasq ではサポートされているが OVN DHCP 実装ではサポートされていない高度な DHCP オプションを使用する場合、OVN で neutron-dhcp を使用する必要がない可能性があります。
  3. データプレーンをコントロールプレーンネットワークに接続します。

    spec:
      ...
      networkAttachments:
        - ctlplane
  4. シャーシをゲートウェイとして有効にします。

    spec:
    ...
      nodeTemplate:
        ansible:
        ...
        edpm_enable_chassis_gw: true
  5. このセット内のノードが事前にプロビジョニングされていることを指定します。

    spec:
    ...
      nodeTemplate:
        ansible:
        ...
        edpm_enable_chassis_gw: true
        ...
       preProvisioned: true
  6. Ansible がデータプレーンノードに接続できるように、作成した SSH キーシークレットを追加します。

      nodeTemplate:
        ansibleSSHPrivateKeySecret: <secret-key>
    • <secret-key> は、<link>[データプレーンシークレットの作成] でこのノードセット用に作成した SSH 鍵の Secret CR の名前 (例: dataplane-ansible-ssh-private-key-secret) に置き換えます。
  7. ログを保存するために、Red Hat OpenShift Container Platform (RHOCP) クラスターの openstack namespace に永続ボリューム要求 (PVC) を作成します。volumeModeFilesystem に、accessModesReadWriteOnce に設定します。NFS ボリュームプラグインを使用する PersistentVolume (PV) からのログのストレージを要求しないでください。NFS は FIFO と互換性がないため、ansible-runner はログを保存するために FIFO ファイルを作成します。PVC の詳細は、RHOCP ストレージ ガイドの 永続ストレージについて、および デプロイメントのプランニングRed Hat OpenShift Container Platform クラスターの要件 を参照してください。
  8. ネットワーカーノードの永続的なロギングを有効にします。

      nodeTemplate:
        ...
        extraMounts:
          - extraVolType: Logs
            volumes:
            - name: ansible-logs
              persistentVolumeClaim:
                claimName: <pvc_name>
            mounts:
            - name: ansible-logs
              mountPath: "/runner/artifacts"
    • <pvc_name> を、RHOCP クラスター上の PVC ストレージの名前に置き換えます。
  9. 管理ネットワークを指定します。

      nodeTemplate:
        ...
        managementNetwork: ctlplane
  10. Red Hat カスタマーポータルに登録されていないノードのオペレーティングシステムを登録するためのユーザー名とパスワードの取得に使用する Secret CR を指定し、ノードのリポジトリーを有効にします。次の例は、ノードを Red Hat コンテンツ配信ネットワーク (CDN) に登録する方法を示しています。Red Hat Satellite 6.13 でノードを登録する方法については、ホストの管理 を参照してください。

      nodeTemplate:
        ...
        ansible:
          ansibleUser: cloud-admin 
    1
    
          ansiblePort: 22
          ansibleVarsFrom:
            - secretRef:
                name: subscription-manager
            - secretRef:
                name: redhat-registry
          ansibleVars: 
    2
    
            rhc_release: 9.4
            rhc_repositories:
                - {name: "*", state: disabled}
                - {name: "rhel-9-for-x86_64-baseos-eus-rpms", state: enabled}
                - {name: "rhel-9-for-x86_64-appstream-eus-rpms", state: enabled}
                - {name: "rhel-9-for-x86_64-highavailability-eus-rpms", state: enabled}
                - {name: "fast-datapath-for-rhel-9-x86_64-rpms", state: enabled}
                - {name: "rhoso-18.0-for-rhel-9-x86_64-rpms", state: enabled}
                - {name: "rhceph-7-tools-for-rhel-9-x86_64-rpms", state: enabled}
            edpm_bootstrap_release_version_package: []
    1
    <link>[データプレーンシークレットの作成] で作成したシークレットに関連付けられているユーザー。
    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 を参照してください。

  11. ネットワーカーノードに適用するネットワーク設定テンプレートを追加します。

      nodeTemplate:
        ...
        ansible:
          ...
          ansibleVars:
          ...
      nodes:
    
           ...
            neutron_physical_bridge_name: br-ex
            neutron_public_interface_name: eth0
            edpm_network_config_nmstate: true 
    1
    
            edpm_network_config_update: false 
    2
    1
    os-net-config プロバイダーを nmstate に設定します。デフォルト値は false です。nmstate プロバイダーの特定の制限により ifcfg プロバイダーを使用する必要がある場合を除き、これを true に変更します。nmstate プロバイダーの利点と制限の詳細は、「デプロイメントのプランニング」の https://docs.redhat.com/en/documentation/red_hat_openstack_services_on_openshift/18.0/html/planning_your_deployment/plan-networks_planning#plan-os-net-config_plan-network を参照してください。
    2
    ノードセットの初回デプロイ時には、edpm_network_config_update 変数を false に設定します。ノードセットを更新または導入する場合は、edpm_network_config_update 変数を true に設定して、更新時にネットワーク設定の変更を適用します。この変数は、更新後または導入後に false にリセットします。これを false にリセットしないと、configure-network サービスが含まれる OpenStackDataPlaneDeployment CR が作成されるたびに、更新されたネットワーク設定が再適用されます。

    次の例では、DPDK を使用してデータプレーンネットワーカーノードのセットに VLAN ネットワーク設定を適用します。

            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_user_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: ovs_dpdk_port
                  name: dpdk0
                  members:
                  - type: interface
                    name: nic1
    
    
              - type: linux_bond
                name: bond_api
                use_dhcp: false
                bonding_options: "mode=active-backup"
                dns_servers: {{ ctlplane_dns_nameservers }}
                members:
                - type: interface
                  name: nic2
                  primary: true
    
    
              - type: vlan
                vlan_id: {{ lookup('vars', networks_lower['internalapi'] ~ '_vlan_id') }}
                device: bond_api
                addresses:
                - ip_netmask: {{ lookup('vars', networks_lower['internalapi'] ~ '_ip') }}/{{ lookup('vars', networks_lower['internalapi'] ~ '_cidr') }}
    
    
              - type: ovs_user_bridge
                name: br-link0
                use_dhcp: false
                ovs_extra: "set port br-link0 tag={{ lookup('vars', networks_lower['tenant'] ~ '_vlan_id') }}"
                addresses:
                - ip_netmask: {{ lookup('vars', networks_lower['tenant'] ~ '_ip') }}/{{ lookup('vars', networks_lower['tenant'] ~ '_cidr')}}
                members:
                - type: ovs_dpdk_bond
                  name: dpdkbond0
                  mtu: 9000
                  rx_queue: 1
                  ovs_extra: "set port dpdkbond0 bond_mode=balance-slb"
                  members:
                  - type: ovs_dpdk_port
                    name: dpdk1
                    members:
                    - type: interface
                      name: nic3
                  - type: ovs_dpdk_port
                    name: dpdk2
                    members:
                    - type: interface
                      name: nic4
    
    
              - type: ovs_user_bridge
                name: br-link1
                use_dhcp: false
                members:
                - type: ovs_dpdk_bond
                  name: dpdkbond1
                  mtu: 9000
                  rx_queue: 1
                  ovs_extra: "set port dpdkbond1 bond_mode=balance-slb"
                  members:
                  - type: ovs_dpdk_port
                    name: dpdk3
                    members:
                    - type: interface
                      name: nic5
                  - type: ovs_dpdk_port
                    name: dpdk4
                    members:
                    - type: interface
                      name: nic6
            neutron_physical_bridge_name: br-ex

    次の例では、DPDK を使用せずに VLAN ネットワーク設定をデータプレーンネットワーカーノードのセットに適用します。

    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: nic2
                      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 %}

    データプレーンネットワーク設定の詳細は、ネットワークサービスの設定データプレーンネットワークのカスタマイズ を参照してください。

  12. このグループ内のノードセットの共通設定を nodeTemplate セクションに追加します。この OpenStackDataPlaneNodeSet 内の各ノードがこの設定を継承します。共通のノード属性を設定するために使用できるプロパティーの詳細は、Red Hat OpenStack Services on OpenShift のデプロイ ガイドの OpenStackDataPlaneNodeSet CR の spec プロパティー を参照してください。
  13. このノードセット内の各ノードを定義します。

    ...
      nodes:
        edpm-networker-0: 
    1
    
          hostName: networker-0
          networks: 
    2
    
          - name: ctlplane
            subnetName: subnet1
            defaultRoute: true
            fixedIP: 192.168.122.100 
    3
    
          - 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: 
    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
          ansible:
            ansibleHost: 192.168.122.101
            ansibleUser: cloud-admin
            ansibleVars:
              fqdn_internal_api: edpm-networker-1.example.com
    1
    ノード定義の参照 (例: edpm-networker-0)。ノードセット内の各ノードにノード定義が必要です。
    2
    ノードの IPAM と DNS レコードを定義します。
    3
    ネットワークの予測可能な IP アドレスを指定します。この場合、NetConfig CR でネットワークに定義された割り当て範囲内のアドレスでなければなりません。
    4
    ノードをカスタマイズするノード固有の Ansible 変数。
    注記
    • nodes セクションに定義するノードには、nodeTemplate セクションで設定されているのと同じ Ansible 変数を設定できます。Ansible 変数が特定のノードと nodeTemplate セクション内の両方に設定されている場合は、ノード固有の値が nodeTemplate セクションの値をオーバーライドします。
    • ノードのすべての nodeTemplate Ansible 変数を複製してデフォルトをオーバーライドし、ノード固有の値を設定する必要はありません。設定する必要があるのは、オーバーライドするノードの Ansible 変数だけです。
    • 多くの ansibleVars の名前には edpm が含まれています。これは "External Data Plane Management (外部データプレーン管理)" の略です。

    ノード属性を設定するために使用できるプロパティーの詳細は、Red Hat OpenStack Services on OpenShift のデプロイ ガイドの OpenStackDataPlaneNodeSet CR の spec プロパティー を参照してください。

  14. openstack_preprovisioned_networker_node_set.yaml 定義ファイルを保存します。
  15. データプレーンリソースを作成します。

    $ oc create --save-config -f openstack_preprovisioned_networker_node_set.yaml -n openstack
  16. ステータスが SetupReady であることを確認して、データプレーンリソースが作成されたことを確認します。

    $ oc wait openstackdataplanenodeset openstack-data-plane --for condition=SetupReady --timeout=10m

    ステータスが SetupReady の場合、コマンドは condition met メッセージを返し、それ以外の場合はタイムアウトエラーを返します。

    データプレーンの条件と状態の詳細は、Red Hat OpenStack Services on OpenShift のデプロイデータプレーンの条件と状態 を参照してください。

  17. ノードセットの Secret リソースが作成されたことを確認します。

    $ oc get secret | grep openstack-data-plane
    dataplanenodeset-openstack-data-plane Opaque 1 3m50s
  18. サービスが作成されたことを確認します。

    $ oc get openstackdataplaneservice -n openstack
    NAME                AGE
    bootstrap           46m
    ceph-client         46m
    ceph-hci-pre        46m
    configure-network   46m
    configure-os        46m
    ...

5.3.1. 事前プロビジョニングされたネットワーカーノードの OpenStackDataPlaneNodeSet CR の例

次の OpenStackDataPlaneNodeSet CR の例では、ノード固有の設定を使用して、事前にプロビジョニングされたネットワーカーノードからノードセットを作成します。この例の OpenStackDataPlaneNodeSet CR の名前を、セット内のノードを表す名前に更新してください。OpenStackDataPlaneNodeSet CR 名は、一意であり、小文字の英数字と - (ハイフン) または . (ピリオド) のみが含まれ、先頭と末尾は英数字で、最大長 53 文字である必要があります。

apiVersion: dataplane.openstack.org/v1beta1
kind: OpenStackDataPlaneNodeSet
metadata:
  name: openstack-networker-nodes
  namespace: openstack
spec:
  services:
      - bootstrap
      - download-cache
      - reboot-os
      - configure-network
      - validate-network
      - install-os
      - configure-os
      - ssh-known-hosts
      - run-os
      - install-certs
      - ovn

  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:
        - secretRef:
            name: subscription-manager
        - secretRef:
            name: redhat-registry
      ansibleVars:
        edpm_bootstrap_command: |
          rhc_release: 9.4
          rhc_repositories:
            - {name: "*", state: disabled}
            - {name: "rhel-9-for-x86_64-baseos-eus-rpms", state: enabled}
            - {name: "rhel-9-for-x86_64-appstream-eus-rpms", state: enabled}
            - {name: "rhel-9-for-x86_64-highavailability-eus-rpms", state: enabled}
            - {name: "fast-datapath-for-rhel-9-x86_64-rpms", state: enabled}
            - {name: "rhoso-18.0-for-rhel-9-x86_64-rpms", state: enabled}
            - {name: "rhceph-7-tools-for-rhel-9-x86_64-rpms", state: enabled}
        edpm_bootstrap_release_version_package: []
        ...
        neutron_physical_bridge_name: br-ex
        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-networker-0:
      hostName: edpm-networker-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-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
      ansible:
        ansibleHost: 192.168.122.101
        ansibleUser: cloud-admin
        ansibleVars:
          fqdn_internal_api: edpm-networker-1.example.com

次の OpenStackDataPlaneNodeSet CR の例では、OVS-DPDK とノード固有の設定を使用して、事前にプロビジョニングされたネットワーカーノードからノードセットを作成します。この例の OpenStackDataPlaneNodeSet CR の名前は、セット内のノードを表す名前に更新してください。OpenStackDataPlaneNodeSet CR 名は、一意であり、小文字の英数字と - (ハイフン) または . (ピリオド) のみが含まれ、先頭と末尾は英数字で、最大長 53 文字である必要があります。

apiVersion: v1
kind: ConfigMap
metadata:
  name: networker-nodeset-values
  annotations:
    config.kubernetes.io/local-config: "true"
data:
  root_password: cmVkaGF0Cg==
  preProvisioned: false
  baremetalSetTemplate:
    ctlplaneInterface: <control plane interface>
    cloudUserName: cloud-admin
    provisioningInterface: <provisioning network interface>
    bmhLabelSelector:
      app: openstack-networker
    passwordSecret:
      name: baremetalset-password-secret
      namespace: openstack
  ssh_keys:
    # Authorized keys that will have access to the dataplane networkers via SSH
    authorized: <authorized key>
    # The private key that will have access to the dataplane networkers via SSH
    private: <private key>
    # The public key that will have access to the dataplane networkers via SSH
    public: <public key>
  nodeset:
    ansible:
      ansibleUser: cloud-admin
      ansiblePort: 22
      ansibleVars:
        edpm_enable_chassis_gw: true
        ...
       ansibleVarsFrom:
        - secretRef:
            name: subscription-manager
        - secretRef:
            name: redhat-registry
      ansibleVars:
        edpm_bootstrap_command: |
        rhc_release: 9.4
        rhc_repositories:
            - {name: "*", state: disabled}
            - {name: "rhel-9-for-x86_64-baseos-eus-rpms", state: enabled}
            - {name: "rhel-9-for-x86_64-appstream-eus-rpms", state: enabled}
            - {name: "rhel-9-for-x86_64-highavailability-eus-rpms", state: enabled}
            - {name: "fast-datapath-for-rhel-9-x86_64-rpms", state: enabled}
            - {name: "rhoso-18.0-for-rhel-9-x86_64-rpms", state: enabled}
            - {name: "rhceph-7-tools-for-rhel-9-x86_64-rpms", state: enabled}

          edpm_bootstrap_release_version_package: []
        ...
        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: interface
            name: nic1
            use_dhcp: false


          - type: interface
            name: nic2
            use_dhcp: false


          - type: ovs_user_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: ovs_dpdk_port
              rx_queue: 1
              name: dpdk0
              members:
              - type: interface
                name: nic3
        # These vars are for the network config templates themselves and are
        # considered EDPM network defaults.
        neutron_physical_bridge_name: br-ex
        neutron_public_interface_name: nic1
        # edpm_nodes_validation
        edpm_nodes_validation_validate_controllers_icmp: false
        edpm_nodes_validation_validate_gateway_icmp: false
        dns_search_domains: []
        gather_facts: false
        # edpm firewall, change the allowed CIDR if needed
        edpm_sshd_configure_firewall: true
        edpm_sshd_allowed_ranges:
          - 192.168.122.0/24
    networks:
      - defaultRoute: true
        name: ctlplane
        subnetName: subnet1
      - name: internalapi
        subnetName: subnet1
      - name: storage
        subnetName: subnet1
      - name: tenant
        subnetName: subnet1
    nodes:
      edpm-networker-0:
        hostName: edpm-networker-0
    services:
      - bootstrap
      - download-cache
      - reboot-os
      - configure-ovs-dpdk
      - configure-network
      - validate-network
      - install-os
      - configure-os
      - ssh-known-hosts
      - run-os
      - install-certs
      - ovn
      - neutron-metadata
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る