Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-18342

cloud-init network configuration not generated properly from preprovisioningnetworkdata when there is a vlan

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not a Bug
    • Icon: Undefined Undefined
    • None
    • None
    • edpm-ansible
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • ?
    • None
    • Important

      Defined the following BareMetalHost:

      apiVersion: metal3.io/v1alpha1
      kind: BareMetalHost
      metadata:
          annotations:
              inspect.metal3.io: disabled
          labels:
              app: openstack
              workload: compute
          name: compute-0
          namespace: openstack
      spec:
          bmc:
              address: ipmi://tigon06-bmc.mgmt.lab.eng.tlv2.redhat.com
              credentialsName: compute-0-bmc-secret
              disableCertificateVerification: true
          bootMACAddress: 80:18:44:f2:88:b1
          bootMode: UEFI
          online: false
          rootDeviceHints:
              wwnWithExtension: '0x55cd2e414e372c76'
          preprovisioningNetworkDataName: openstack-edpm-preprovisioningnetworkdata-compute-0
       

      It contains preprovisioningNetworkData:

      [zuul@controller-0 1]$ cat openstack-edpm-preprovisioningnetworkdata-compute-0 
      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: openstack-edpm-preprovisioningnetworkdata-compute-0
        namespace: openstack
      data:
        nmstate: aW50ZXJmYWNlczoKICAtIG5hbWU6IGVucDEzMHMwZjAKICAgIHR5cGU6IHBoeXNpY2FsCiAgICBzdGF0ZTogdXAKICAtIG5hbWU6IHZsYW4xNDAKICAgIHR5cGU6IHZsYW4KICAgIHN0YXRlOiB1cAogICAgaXB2NDoKICAgICAgYWRkcmVzczoKICAgICAgICAtIGlwOiAxOTIuMTY4LjEyMi4xMDAKICAgICAgICAgIHByZWZpeC1sZW5ndGg6IDI0CiAgICAgIGVuYWJsZWQ6IHRydWUKICAgICAgZGhjcDogZmFsc2UKICAgIHZsYW46CiAgICAgIGJhc2UtaWZhY2U6IGVucDEzMHMwZjAKICAgICAgaWQ6IDE0MAogICAgICBwcm90b2NvbDogODAyLjFxCg==
      type: Opaque
       

      This is network-config:

      [zuul@controller-0 1]$ echo aW50ZXJmYWNlczoKICAtIG5hbWU6IGVucDEzMHMwZjAKICAgIHR5cGU6IHBoeXNpY2FsCiAgICBzdGF0ZTogdXAKICAtIG5hbWU6IHZsYW4xNDAKICAgIHR5cGU6IHZsYW4KICAgIHN0YXRlOiB1cAogICAgaXB2NDoKICAgICAgYWRkcmVzczoKICAgICAgICAtIGlwOiAxOTIuMTY4LjEyMi4xMDAKICAgICAgICAgIHByZWZpeC1sZW5ndGg6IDI0CiAgICAgIGVuYWJsZWQ6IHRydWUKICAgICAgZGhjcDogZmFsc2UKICAgIHZsYW46CiAgICAgIGJhc2UtaWZhY2U6IGVucDEzMHMwZjAKICAgICAgaWQ6IDE0MAogICAgICBwcm90b2NvbDogODAyLjFxCg== | base64 -d
      interfaces:
        - name: enp130s0f0
          type: physical
          state: up
        - name: vlan140
          type: vlan
          state: up
          ipv4:
            address:
              - ip: 192.168.122.100
                prefix-length: 24
            enabled: true
            dhcp: false
          vlan:
            base-iface: enp130s0f0
            id: 140
            protocol: 802.1q
       

      When provisioning, I see that image is configured properly and network configuration is ok, but the connectivity is lost when the server is rebooted and cloud-init is executed.

       

      The following secret is generated:

      [zuul@controller-0 1]$ oc get secret openstack-edpm-cloudinit-networkdata-compute-0 -o yaml
      apiVersion: v1
      data:
        networkData: bGlua3M6Ci0gbmFtZTogdmxhbjE0MAogIGlkOiB2bGFuMTQwCiAgdHlwZTogdmlmCm5ldHdvcmtzOgotIGxpbms6IHZsYW4xNDAKICBpZDogdmxhbjE0MAogIHR5cGU6IGlwdjQKICBpcF9hZGRyZXNzOiAxOTIuMTY4LjEyMi4xMDAKICBuZXRtYXNrOiAiMjU1LjI1NS4yNTUuMCIKICByb3V0ZXM6CiAgLSBuZXR3b3JrOiAwLjAuMC4wCiAgICBuZXRtYXNrOiAwLjAuMC4wCiAgICBnYXRld2F5OiAxOTIuMTY4LjEyMi4xCnNlcnZpY2VzOgotIHR5cGU6IGRucy1uYW1lc2VydmVyCiAgYWRkcmVzczoKICAgIC0gMTkyLjE2OC4xMjIuODAKICBzZWFyY2g6CiAgICAtIGN0bHBsYW5lLmV4YW1wbGUuY29tCg==
      kind: Secret
      metadata:
        creationTimestamp: "2025-07-18T07:52:57Z"
        labels:
          baremetal.openstack.org/must-gather-secret: "yes"
          openstackbaremetalset.openstack.org/name: openstack-edpm
          openstackbaremetalset.openstack.org/namespace: openstack
          openstackbaremetalset.openstack.org/uid: 064b427d-46ac-41a0-80c9-e16476f6ee28
        name: openstack-edpm-cloudinit-networkdata-compute-0
        namespace: openstack
        ownerReferences:
        - apiVersion: baremetal.openstack.org/v1beta1
          blockOwnerDeletion: true
          controller: true
          kind: OpenStackBaremetalSet
          name: openstack-edpm
          uid: 064b427d-46ac-41a0-80c9-e16476f6ee28
        resourceVersion: "3129052"
        uid: ba64e47a-3f38-4508-a5fb-ca66b9926235
      type: Opaque
       

      Its content decoded:

      [zuul@controller-0 1]$ echo bGlua3M6Ci0gbmFtZTogdmxhbjE0MAogIGlkOiB2bGFuMTQwCiAgdHlwZTogdmlmCm5ldHdvcmtzOgotIGxpbms6IHZsYW4xNDAKICBpZDogdmxhbjE0MAogIHR5cGU6IGlwdjQKICBpcF9hZGRyZXNzOiAxOTIuMTY4LjEyMi4xMDAKICBuZXRtYXNrOiAiMjU1LjI1NS4yNTUuMCIKICByb3V0ZXM6CiAgLSBuZXR3b3JrOiAwLjAuMC4wCiAgICBuZXRtYXNrOiAwLjAuMC4wCiAgICBnYXRld2F5OiAxOTIuMTY4LjEyMi4xCnNlcnZpY2VzOgotIHR5cGU6IGRucy1uYW1lc2VydmVyCiAgYWRkcmVzczoKICAgIC0gMTkyLjE2OC4xMjIuODAKICBzZWFyY2g6CiAgICAtIGN0bHBsYW5lLmV4YW1wbGUuY29tCg== | base64 -d
      links:
      - name: vlan140
        id: vlan140
        type: vif
      networks:
      - link: vlan140
        id: vlan140
        type: ipv4
        ip_address: 192.168.122.100
        netmask: "255.255.255.0"
        routes:
        - network: 0.0.0.0
          netmask: 0.0.0.0
          gateway: 192.168.122.1
      services:
      - type: dns-nameserver
        address:
          - 192.168.122.80
        search:
          - ctlplane.example.com
       

      This configuration is wrong, it should be generated something like this:

      links:
      - name: enp130s0f0
        id: enp130s0f0
        type: vif
      - name: vlan140
        id: vlan140
        type: vlan
        vlan_id: 140
        vlan_link: enp130s0f0
        vlan_mac_address: "f8:f2:1e:03:61:a0"
      networks:
      - link: vlan140
        id: vlan140
        type: ipv4
        ip_address: 192.168.122.100
        netmask: "255.255.255.0"
        routes:
        - network: 0.0.0.0
          netmask: 0.0.0.0
          gateway: 192.168.122.1
      services:
      - type: dns-nameserver
        address:
          - 192.168.122.80
        search:
          - ctlplane.example.com
       

      I tried to use my configuration in BareMetalHost adding the following lines and creating a new CR, but it is not taken into account because it is always overwritten. Is this a bug? should it be overwritten if it is defined?

          networkData:
            name: openstack-edpm-cloudinit-networkdata-user-compute-0
            namespace: openstack
       

      The workaround that i have used and works is wait until resource openstack-edpm-cloudinit-networkdata-compute-0 is created (the default one), and inmediately overwrite it with my configuration

       

              jpalanis@redhat.com Jaganathan Palanisamy
              mnietoji@redhat.com Miguel Angel Nieto Jimenez
              rhos-dfg-df
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: