Fixed IP assignment to physical node during openstack deployment

Bug #1639172 reported by Petr Barta
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
tripleo
Triaged
Wishlist
Unassigned

Bug Description

During OpenStack deployment it's possible to assign fixed IP addresses to node class (compute, controller, storage etc.), according to http://docs.openstack.org/developer/tripleo-docs/advanced_deployment/node_placement.html, but as far as I understand it's not possible to specify exact relation between specific node from each class to IP address. As such, when deployng the cloud, it's not possible to ensure that specific node from a class will get specific IP.

For instance, when creating cloud with three controller nodes, it;s possible to say that IPs used for the contollers are 172.16.1.100, 172.16.1.101 and 172.16.1.102, but it's not possible to say that physical machine with specific UUID as reported in ironic node-list gets IP ...100, another one gets ...101 and third gets ...102.

I think it would be good if it would be possible to specify relation between ironic UUID and IP this node gets during deployment.

Use case:
I want to have three controllers in three different places, and want to know the when connecting to IP ...100 (identified as overcloud-controller-0 in nova list) I'll get always to machine in place1 after each deployment.

Zane Bitter (zaneb)
affects: openstack-requirements → tripleo
Changed in tripleo:
assignee: nobody → j.zimnowoda (j-zimnowoda)
Revision history for this message
Jehoszafat Zimnowoda (j-zimnowoda) wrote :

So, basically you want to relate IP with Ironic UUID

Would below template file solve your problem (not implemented yet)?

---
parameter_defaults:
  NodeUUIDs:
    Controller:
    - c433b9c7-7a57-4919-bdca-9abc41bc7ba3
    Compute:
    - 2a901b66-f757-46fc-9c59-529d47f31a55
    - 92ccf53d-e894-41e4-adab-ce67c6aaed30

  NodeConfigs:
    c433b9c7-7a57-4919-bdca-9abc41bc7ba3:
      net_ip_map:
        ctlplane: 10.0.0.111
        external: 10.10.0.111
        internal_api: 10.11.0.111
        storage: 10.12.0.111
        storage_mgmt: 10.13.0.111
        tenant: 10.14.0.111
        management: 10.15.0.111

    2a901b66-f757-46fc-9c59-529d47f31a55:
      net_ip_map:
        ctlplane: 10.0.0.112
        internal_api: 10.0.0.112
        storage: 10.12.0.112
        tenant: 10.14.0.112
        management: 10.15.0.112

    92ccf53d-e894-41e4-adab-ce67c6aaed30:
      net_ip_map:
        ctlplane: 10.0.0.113
        internal_api: 10.11.0.113
        storage: 10.12.0.113
        tenant: 10.14.0.113
        management: 10.15.0.113

Revision history for this message
Jehoszafat Zimnowoda (j-zimnowoda) wrote :

BTW. As far as I know, you can use scheduler hints to implicitly assign fixed IP to a given node:
e.g.:

ironic node-update <id-1> replace properties/capabilities='node:controller-0,boot_option:local'
ironic node-update <id-2> replace properties/capabilities='node:controller-1,boot_option:local'
ironic node-update <id-3> replace properties/capabilities='node:controller-2,boot_option:local'

So you have controller-0, controller-1 and controller-2.

You can modify an example tripleo-heat-templates/environments/ips-from-pool.yaml like below"

parameter_defaults:
  ControllerIPs:
    # Each controller will get an IP from the lists below, first controller, first IP
    external:
    - 10.0.0.251 # scheduler parses controller-0 to index 0
    - 10.0.0.252 # scheduler parses controller-1 to index 1
    - 10.0.0.253 # scheduler parses controller-2 to index 2
    internal_api:
    - 172.16.2.251
    - 172.16.2.252
    - 172.16.2.253
    storage:
    - 172.16.1.251
    - 172.16.2.252
    - 172.16.2.253
    storage_mgmt:
    - 172.16.3.251
    - 172.16.3.252
    - 172.16.3.253
    tenant:
    - 172.16.0.251
    - 172.16.0.252
    - 172.16.0.253

Revision history for this message
Emilien Macchi (emilienm) wrote :

There are no currently open reviews on this bug, changing the status back to the previous state and unassigning. If there are active reviews related to this bug, please include links in comments.

Changed in tripleo:
assignee: Jehoszafat Zimnowoda (j-zimnowoda) → nobody
Changed in tripleo:
importance: Undecided → Wishlist
milestone: none → queens-3
status: New → Triaged
milestone: queens-3 → queens-1
Changed in tripleo:
milestone: queens-1 → queens-2
Changed in tripleo:
milestone: queens-2 → queens-3
Changed in tripleo:
milestone: queens-3 → queens-rc1
Changed in tripleo:
milestone: queens-rc1 → rocky-1
Changed in tripleo:
milestone: rocky-1 → rocky-2
Changed in tripleo:
milestone: rocky-2 → rocky-3
Changed in tripleo:
milestone: rocky-3 → rocky-rc1
Changed in tripleo:
milestone: rocky-rc1 → stein-1
Changed in tripleo:
milestone: stein-1 → stein-2
Changed in tripleo:
milestone: stein-2 → stein-3
Changed in tripleo:
milestone: stein-3 → train-1
Changed in tripleo:
milestone: train-1 → train-2
Changed in tripleo:
milestone: train-2 → train-3
Changed in tripleo:
milestone: train-3 → ussuri-1
Changed in tripleo:
milestone: ussuri-1 → ussuri-2
wes hayutin (weshayutin)
Changed in tripleo:
milestone: ussuri-2 → ussuri-3
wes hayutin (weshayutin)
Changed in tripleo:
milestone: ussuri-3 → ussuri-rc3
wes hayutin (weshayutin)
Changed in tripleo:
milestone: ussuri-rc3 → victoria-1
Changed in tripleo:
milestone: victoria-1 → victoria-3
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.