This is a significant improvement and update to Ironic contributor
documentation, as an attempt to make it easier for new Ironic
contributors to onboard.
It is not perfect, but it's significantly better than the existing
What this change does:
- Improve dev-quickstart guide, make it easier to find
- Removes information that can bit-rot over time and replaces with
more generic information.
- Provides an actual working, tested, Ironic+Nova devstack conf
What hasn't been done:
- Testing of Ironic BFV or Multitenant networking devstack confs
- Validation that the local development method still works
- There is a ton more information about how to use these testing
envs (both bifrost and devstack) which could be added.
- System prerequsities and Python prerequisites under the unit
tests section has bitrotted considerably; they have not been
significantly modified and will be fixed in a future commit.
In trying to figure out why I was unable to run
all of the test_migrations tests, I realized we need
to fix and clean up our unicode declarations.
Specifically, the way I found this was my local mysql
install was defaulted to using 4 Byte Unicode characters,
however some of our fields are 255 characters, which do not
fit inside of InnoDB tables.
They do, however fit with the "utf8" storage alias, which is
presently short for UTF8MB3, as opposed to UTF8MB4 which is
what my local database server was configured for. Because this
was in opportunistic tests, I wasn't able to really sort out
what was going on and thought we needed to shorten the fields.
In reality, it turns out we never defined the allocations
table to use UTF8 and Innodb for storage.
Storage engine wise, this is not a big deal, but may mean a
DBA will one day need to dump and reload the allocation table
of a deployment.
Character set wise... It is not great, but there is not a good
way for us to do this programatically. In my opinion, the chance
of an issue being encountered by an operator is unlikely, which
out weighs the risk and impact of dumping the entire table,
deleting the table, recreating the table with the updated schema
and then repopulating the entries. Of course, if operators are not
using allocations, then it really doesn't matter for them.
Along the way, I discovered we had used the "UTF8" type alias,
which may change one day, which would break Ironic. As such,
I've also updated the definitions used to create databases
and updated our documentation.
The devstack default limit enforcement for glance defaults
to 1GB, and unfortunately this is too small for many to use
larger images such as centos which includes hardware firmware
images for execution on baremetal where drivers need the vendor
blobs in order to load/run.
Sets ironic-base to 5GB, and updates examples accordingly.
The iSCSI deploy was very easy to start with, but it has since become
apparently that it suffers from scalability and maintenance issues.
It was deprecated in the Victoria cycle and can now be removed.
Hide the guide to upgrade to hardware types since it's very outdated.
I had to remove the iBMC diagram since my SVG-fu is not enough to fix it.
Updating the local.conf example basic configuration for development
quickstart based on recent updates.
This has been tested on ubuntu focal, current base opearting system used
for CI jobs.
The OS_AUTH_TYPE=token_endpoint plugin has been removed from Keystoneauth1
Setting that value as an envvar triggers a stack trace when performing
baremetal driver list
Based on recent changes that make dib image to be default in CI,
the base RAM in the local.conf example should be increased to
2048, which is the minimum recommended to run the centos8 ramdisk.
To run the ironic tempest tests in DevStack locally it's
necessary to clone the ironic-tempest-plugin repository, and
add TEMPEST_PLUGINS in the local.conf
changes the variables that must be exported to use ironic in standalone
mode. The old env. variables:
must be replaced by:
Signed-off-by: Manuel Buil <firstname.lastname@example.org>
This is a mechanically generated change to replace openstack.org
git:// URLs with https:// equivalents.
This is in aid of a planned future move of the git hosting
infrastructure to a self-hosted instance of gitea (https://gitea.io),
which does not support the git wire protocol at this stage.
This update should result in no functional change.
For more information see the thread at
The running tempest section has a deprecated option "all-plugin",
if developer follows the steps, he will get an InvocationError.
This patch is going to fix it and a broken URL.
Co-Authored-By: Iury Gregory Melo Ferreira <email@example.com>
The files for Vagrants are too outdated, this patch removes the
information about Vagrant in the documentation and the old files
used to set up a Vagrant environment.
Follow up to "Ironic behind mod wsgi" documentation .
This reformats instructions and clears TODOs in the document,
similar places were found and fixed in this patch as well.
References to Fedora 21 are removed.
The quickstart doc was missing the step of installing
python-openstackclient which has become necessary to provide
the `openstack` command. This was not required when the doc
was originally written as we then used the `ironic` command.
Nova network service does not exist anymore, so no need to disable
it, as well as enable neutron as it is enabled by default. Heat is
not enabled by default, so there is no need to disable it.
First, "Enabling Drivers" is a really confusing title, since this page
links to complete driver documentation. It also links to IPA docs and
the PXE driver interface.
Next, our documentation is full of remarks about e.g. "pxe_* family of
drivers", which are misleading in the presence of hardware types and
the pxe_agent_cimc driver. We also have mentions of "iscsi deploy method"
without detailed explanation of how this method relates to hardware types
and classic drivers.
This change consolidates drivers and interfaces documentation under
the more clearly named root page. A new page is created with sections for
both deploy interfaces to use for linking from wherever a link to
a particular deploy interface is required.
Recent update brought os-testr 1.0.0 that already uses stestr test
runner instead of testrepository.
This patch migrates those places using testrepository to using stestr.
For the contributor documents, all the 'ironic' CLI commands are
replaced with their equivalent 'openstack baremetal' CLI commands.
This corrects the URLs in the contributor documentation as well as the
main index. The changes include:
- changing http to https
- changing absolute links to relative links (where applicable)
SSH drivers are being unsupported for about a year now. All current
stable branches of ironic are officially supporting IPMI-capable HW
simulation via virtualbmc.
All ironic-related gate jobs have already been switched
to not use or enable those drivers.
This patch finally removes SSH-based power and managemtnt driver interfaces
and all classic drivers using those from ironic code and documentation.
Related exceptions and `ssh_connect` function, together with dependency
on `paramiko` package are removed as well.
This patch does the following:
* Adds osprofiler wsgi middleware
This middleware is used for 2 things:
- It checks that person who wants to trace is trusted and knows
secret HMAC key.
- It starts tracing in case of proper trace headers
and adds first wsgi trace point, with info about HTTP request.
* Adds initialization of osprofiler at start of service
- Initialize and set an oslo.messaging based notifier instance
to osprofiler, which will be used to send notifications to Ceilometer.
* Traces HTTP/RPC/DB API calls and SQL requests
NOTE to test this patch:
1) Make the following changes in localrc to configure DevStack to enable
enable_plugin panko https://git.openstack.org/openstack/panko
enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer
enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler
# Enable the following services
NOTE: the order of enabling plugins matters.
2) Run stack.sh. Once DevStack environment is setup, enable profiler options
in ironic.conf and restart ironic services:
enabled = true
hmac_keys = SECRET_KEY
trace_sqlalchemy = true
3) Use openstackclient and run baremetal command with
[--profile can be used, but it is deprecated.]
For example, the following will cause the <trace-id> to be printed
after node list:
$ openstack --os-profile SECRET_KEY baremetal node list
Trace ID: <trace-id>
Display trace with command:
osprofiler trace show --html <trace-id>
4) The trace results can be saved using this command:
$ osprofiler trace show --html <trace-id> --out trace.html
OSprofiler spec: https://review.openstack.org/#/c/103825/
Co-Authored-By: Tovin Seven <firstname.lastname@example.org>
Co-Authored-By: Hieu LE <email@example.com>
Neither `ironic-api` nor `ironic-conductor` tools accept
the `-v` option. Although the developer's quickstart guide
has it in the example what makes cut&paste failing.
This quick fix removes the offending option from the doc.