Comments (18)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
So a few different thoughts:
- 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.
- 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.
So a few different thoughts:
- 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.
- 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.
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.
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.
/kind feature
from ironic-image.
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.
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: 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)
- runmariadb seems to fail with MariaDB 10.3.28 HOT 3
- machine partition creation issue when qcow2 user image is supplied HOT 8
- Security scan reports high level vulnerabilities in ironic and ironic-inspector images HOT 5
- ProvisioningError :blkid returns with Exit code:2 HOT 9
- Split up separate components into seperate Images HOT 17
- ironic.common.exception.InvalidMAC: Expected a MAC address but received (WWN) HOT 6
- Image metal3-io/ironic:capm3-v0.4.3 unavailable. HOT 3
- Change default branch to "main" HOT 4
- Ironic image cache cleaning removes some of the images
- Image metal3-io/ironic:capm3-v0.5.4 unavailable HOT 3
- Error setting up bootloader. Error UTF-16 stream does not start with BOM: UnicodeError: UTF-16 stream does not start with BOM HOT 11
- unable to build base image HOT 4
- Missing idrac-redfish interface for raid HOT 1
- Feature request: Environment variable to change IPA collectors HOT 1
- Introducing ipxe security hardening options HOT 9
- Nova power notification warning in log HOT 2
- Allow overriding/specifying IRONIC_IP/IRONIC_URL_HOST HOT 8
- Proposal: Extract configuration generation to init-container HOT 20
- Support building for multiple architectures HOT 4
- Ironic-image can't use to be as a http HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ironic-image.