Skip to content

Deployment of MicroCloud with a preseed files fails when validates node-specific by-id disk paths #1465

Description

@mseralessandri

When running MicroCloud preseed with different per-node storage paths under /dev/disk/by-id, initialization fails with this error: Failed to find specified disk path: stat /dev/disk/by-id/<peer-disk-id>: no such file or directory. Here is an example of preseed file that reproduces the issue.

initiator: pc7b-ra8-n1
lookup_subnet: 10.20.7.0/24
lookup_timeout: 300

session_passphrase: "CHANGE_ME"
session_timeout: 900

systems:
  - name: pc7b-ra8-n1
    ovn_uplink_interface: bond1.3684
    ovn_underlay_ip: 10.20.7.11
    storage:
      local:
        path: /dev/disk/by-id/nvme-eui.0100000000000000c8d6b731514f0f50
        wipe: true
      ceph:
        - path: /dev/disk/by-id/nvme-eui.0100000000000000c8d6b71d512c0050
          wipe: true
          encrypt: false

  - name: pc7b-ra8-n2
    ovn_uplink_interface: bond1.3684
    ovn_underlay_ip: 10.20.7.12
    storage:
      local:
        path: /dev/disk/by-id/nvme-eui.0100000000000000c8d6b7ae674f0f50
        wipe: true
      ceph:
        - path: /dev/disk/by-id/nvme-eui.0100000000000000c8d6b77eda4e0f50
          wipe: true
          encrypt: false

  - name: pc7b-ra8-n3
    ovn_uplink_interface: bond1.3684
    ovn_underlay_ip: 10.20.7.13
    storage:
      local:
        path: /dev/disk/by-id/nvme-eui.0100000000000000c8d6b729034f0f50
        wipe: true
      ceph:
        - path: /dev/disk/by-id/nvme-eui.0100000000000000c8d6b71fbf4e0f50
          wipe: true
          encrypt: false

ceph:
  cephfs: true
  internal_network: 10.20.7.0/24
  public_network: 10.20.7.0/24

ovn:
  ipv4_gateway: 91.189.94.17/28
  ipv4_range: 91.189.94.18-91.189.94.30
  ipv6_gateway: ""
  dns_servers: ""

Each node has different by-id paths, and those paths exist only on the owning node. Since paths are validated with local os.Stat during iteration over all systems, peer node by-id paths are checked on the wrong machine, causing no such file errors on the initiator. This doesn't happen when manually deploying MicroCloud without a preseed file.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugConfirmed to be a bugJiraAllows the synchronization of a GitHub issue in Jira

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions