Giter Site home page Giter Site logo

Comments (18)

dhellmann avatar dhellmann commented on July 3, 2024

The host is supposed to be registered with ironic using the boot interface specified by the BMC. See https://github.com/metal3-io/baremetal-operator/blob/master/pkg/provisioner/ironic/ironic.go#L245

If you look at the node in ironic, does it have the right boot interface set?

from ironic-image.

ankit-kumar5 avatar ankit-kumar5 commented on July 3, 2024

Actually for every driver, boot interface is defined (For Ex: https://github.com/metal3-io/baremetal-operator/blob/master/pkg/bmc/redfish.go#L110)

In my case if i am adding hardware_type ilo, then ir-cond fails to start with the above error. It is not reaching to that point where node creation can happen since ilo doesn't support ipxe boot interface and its being set in default_boot_interface.

from ironic-image.

dhellmann avatar dhellmann commented on July 3, 2024

It sounds like you are saying that the ironic-conductor will not start because a default value, which we don't use, is incompatible with one of the drivers. Is that right?

@dtantsur @juliakreger do you have any insight on this? Should we remove the default boot interface setting, or choose a different one?

from ironic-image.

juliakreger avatar juliakreger commented on July 3, 2024

Greetings,

@ankit-kumar5 You'll need to set the boot interface to the special ilo-ipxe wrapper.... or just get rid of the interface wrapper and declare support for the stock ipxe driver.

https://github.com/openstack/ironic/blob/master/ironic/drivers/ilo.py#L41
https://github.com/openstack/ironic/blob/master/setup.cfg#L70

from ironic-image.

ankit-kumar5 avatar ankit-kumar5 commented on July 3, 2024

It sounds like you are saying that the ironic-conductor will not start because a default value, which we don't use, is incompatible with one of the drivers. Is that right?

@dtantsur @juliakreger do you have any insight on this? Should we remove the default boot interface setting, or choose a different one?

Yeah.. i am saying that only.

from ironic-image.

ankit-kumar5 avatar ankit-kumar5 commented on July 3, 2024

Greetings,
@ankit-kumar5 You'll need to set the boot interface to the special ilo-ipxe wrapper.... or just get rid of the interface wrapper and declare support for the stock ipxe driver.
https://github.com/openstack/ironic/blob/master/ironic/drivers/ilo.py#L41
https://github.com/openstack/ironic/blob/master/setup.cfg#L70

Sorry i didnt quite understand by set the boot interface to the special ilo-ipxe wrapper . By this you means setting the default_boot_interface. Am i correct?

I tried the first approach declaring ilo-ipxe as default_boot_interface and it failed because ilo-ipxe is not supported by other hardware types which is obvious that it fails.
For the second approach, i can do that. I was just confirming whether default_boot_interface can be removed from the config or not.

from ironic-image.

dhellmann avatar dhellmann commented on July 3, 2024

We need to be able to add drivers without the user having to customize the default boot interface. If they have to change the default, it's not really a default.

Why won't conductor start with the default set the way it is now?

from ironic-image.

ankit-kumar5 avatar ankit-kumar5 commented on July 3, 2024

We need to be able to add drivers without the user having to customize the default boot interface. If they have to change the default, it's not really a default.

Why won't conductor start with the default set the way it is now?

Because this default(ipxe) is not supported by ilo hardware type, thats why its failing.

from ironic-image.

dhellmann avatar dhellmann commented on July 3, 2024

Why does ironic care if the default isn't supported by all of the drivers? Why not wait to fail at the point where the boot interface and driver for a given host are both known to be incompatible?

from ironic-image.

ankit-kumar5 avatar ankit-kumar5 commented on July 3, 2024

We need to be able to add drivers without the user having to customize the default boot interface. If they have to change the default, it's not really a default.

Why won't conductor start with the default set the way it is now?

I will make changes to ilo drivers to support ipxe and pxe boot interfaces.

from ironic-image.

juliakreger avatar juliakreger commented on July 3, 2024

So a few different thoughts:

  1. Default is only if a node is created with just a "driver" field, and no other specific interface choices. It is handy, but I'm 99.95% sure the operator, when defining nodes allows all of the interfaces to be defined. If the operator is doing this in two steps against the API, that is likely not ideal.
  2. If the list of enabled hardware types includes priority, where the preferred default is the first element in that list, then the "default" can be completely removed. The union of enabled and supported interfaces by the driver will choose the one to use in order of highest to lowest priority.

What I meant by set the boot interface to ilo-ipxe, was to actually do that in the baremetal operator. Similar to how redfish-virtual-media works. See: https://github.com/metal3-io/baremetal-operator/blob/master/pkg/bmc/redfish.go#L132

from ironic-image.

ankit-kumar5 avatar ankit-kumar5 commented on July 3, 2024

So a few different thoughts:

  1. Default is only if a node is created with just a "driver" field, and no other specific interface choices. It is handy, but I'm 99.95% sure the operator, when defining nodes allows all of the interfaces to be defined. If the operator is doing this in two steps against the API, that is likely not ideal.
  2. If the list of enabled hardware types includes priority, where the preferred default is the first element in that list, then the "default" can be completely removed. The union of enabled and supported interfaces by the driver will choose the one to use in order of highest to lowest priority.

What I meant by set the boot interface to ilo-ipxe, was to actually do that in the baremetal operator. Similar to how redfish-virtual-media works. See: https://github.com/metal3-io/baremetal-operator/blob/master/pkg/bmc/redfish.go#L132

I have been doing this. You can see here
metal3-io/baremetal-operator@ba6dc38#diff-ce770aa06cd9fa55727a51d6584280b1R70

But its failing way before executing this, when i am adding in conf file(/etc/ironic/ironic.conf)

default_boot_interface = ipxe
default_deploy_interface = direct
default_inspect_interface = inspector
default_network_interface = noop
enabled_boot_interfaces = pxe,ipxe,fake,redfish-virtual-media,idrac-redfish-virtual-media,ilo-ipxe
enabled_deploy_interfaces = direct,fake
enabled_hardware_types = ipmi,idrac,irmc,fake-hardware,redfish,ibmc,ilo
enabled_inspect_interfaces = inspector,idrac,irmc,fake,redfish
enabled_management_interfaces = ipmitool,idrac,irmc,fake,redfish,idrac-redfish,ibmc,ilo
enabled_power_interfaces = ipmitool,idrac,irmc,fake,redfish,idrac-redfish,ibmc,ilo
enabled_raid_interfaces = no-raid,irmc,agent,fake
enabled_vendor_interfaces = ipmitool,no-vendor,idrac,fake,ibmc,ilo

from ironic-image.

juliakreger avatar juliakreger commented on July 3, 2024

Remove the default_boot_interface line, and change the enabled_boot_interfaces to:

enabled_boot_interfaces = ipxe,pxe,fake,redfish-virtual-media,idrac-redfish-virtual-media,ilo-ipxe

It will have the same effective configuration for all users and you'll be able to explicitly ask for ilo-ipxe.

from ironic-image.

ankit-kumar5 avatar ankit-kumar5 commented on July 3, 2024

Remove the default_boot_interface line, and change the enabled_boot_interfaces to:

enabled_boot_interfaces = ipxe,pxe,fake,redfish-virtual-media,idrac-redfish-virtual-media,ilo-ipxe

It will have the same effective configuration for all users and you'll be able to explicitly ask for ilo-ipxe.

Thanks @juliakreger.. I was asking for this clarification only.

from ironic-image.

stbenjam avatar stbenjam commented on July 3, 2024

/kind feature

from ironic-image.

metal3-io-bot avatar metal3-io-bot commented on July 3, 2024

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues will close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

/lifecycle stale

from ironic-image.

metal3-io-bot avatar metal3-io-bot commented on July 3, 2024

Stale issues close after 30d of inactivity. Reopen the issue with /reopen. Mark the issue as fresh with /remove-lifecycle stale.

/close

from ironic-image.

metal3-io-bot avatar metal3-io-bot commented on July 3, 2024

@metal3-io-bot: Closing this issue.

In response to this:

Stale issues close after 30d of inactivity. Reopen the issue with /reopen. Mark the issue as fresh with /remove-lifecycle stale.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

from ironic-image.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.