Consolidate all config options under ``conf`` directory.
New config modules should give a better picture of the configuration
options provided by the inspector.
Change-Id: I501ed0787ff4e1d91462f936e1a54de2c7abb35c
Related-Bug: #1561100
Co-Authored-By: Anton Arefiev <aarefiev@mirantis.com>
This patch follows up on the review from the change
I2f7b8d3172f375cf65e759c9b881fcf41649c2f0 updating help text of the
purge_dhcp_hostsdir dnsmasq_pxe_filter configuration option.
Change-Id: Ice55d954b470ceda92f27a4a81d78eba46adffa7
This allows multiple instances of inspector to try updating dnsmasq
configuration simultaneously. The goal is to be able to (test) run an HA
inspector on a single node.
A new config option `dnsmasq_pxe_filter.purge_dhcp_hostsdir` is introduced to
be able to disable purging of the dhcp hosts directory in case multiple
inspector instances are expected to run on the same node.
Change-Id: I2f7b8d3172f375cf65e759c9b881fcf41649c2f0
Closes-Bug: #1722267
A PXE filter driver is introduced that works by configuring and controlling
the dnsmasq service.
Closes-Bug: 1693813
Related-Bug: 1665666
Change-Id: I63fe91ee4f9ac3021bcfd9a4a378af56af800fac
upcoming policy-related changes need a properly initialized
global oslo_config's CONF instance, which inspector's unit tests
currently lack.
As a side effect of implementing this, the 'dbsync' module was
changed to not register it's CLI options right on its import.
Also, setting default log levels was moved to a function which
is already registered as the one providing defaults to options
in oslo_config's entrypoints. Config sample is updated accordingly.
Change-Id: I20bc537605062900d00fcc0343172774c1cd1363
Updating the CONTRIBUTING.rst, config.py and example.conf to inform the
Operator (and Developer) that the PXE filter options have no effect yet.
Change-Id: I032114934e300af1e1908369552f1b06c939002f
We no longer have to do it, now that we can remove statuses for removed nodes.
Change-Id: Iacc546d265270983c6a360a92073acde9d9b36c7
Closes-Bug: #1695858
This experimental feature was deprecated in the Ocata release,
as it was found unstable, untested and dangerous.
API version is bumped to 1.12 to indicate this change to users.
Change-Id: I1aad6ddfd03946edc19ae510accd6c8daf5fc268
Closes-Bug: #1654318
InfiniBand is computer-networking communications standard
used in high-performance computing, features very high
throughput and very low latency.
This patch allow ironic-inspector to add the client_id
to ironic port extra. The client_id option allow pxe boot
from InfiniBand interface.
Closes-Bug: #1532534
Depends-On: Ifad453977e5d3be64b34e544f269835a72b4d73f
Change-Id: I479d54c29bcacb6bd5c1ab20033ae6e428b0e744
Mostly removes old authentication options and support for [discoverd].
Also update example.conf to the latest version.
Change-Id: Ided8705c4345a1170c211d926d916cec2173ccb9
With switch to virtualbmc we can no longer distinguish between virtual
and bare metal nodes. To stay on a safer side, introspection_delay now
affects all drivers.
I'm also aware of similar DHCP problems on bare metal.
Also renamed unit tests for clarity.
Change-Id: I7d69cd899ec4d893b21cc49d59834dd3c83e0fe2
We already have too many options to my taste, and this does not seem too useful:
we anyway don't log BMC address if it's empty.
I think we should provide consistent logging experience.
Change-Id: I8ae8856bdc1ff26065c626837df9edc3016737e4
This feature is dangerous, barely maintained and not covered by any CI.
As it was hidden behind a configuration option, we can remove it without
breaking our API contract too much. This change deprecates the option,
and create an API version with this feature already de-activated.
Change-Id: I9e05c36b8c1194f4eeeb80c1f811e808854974c4
Partial-Bug: #1654318
Since Ia23e8582a398dca9ca11762ee6fe1789fdba9777 ironic's DRAC drivers
deprecated 'drac_host' driver_info field in favor of 'drac_address'.
This patch adds 'drac_address' to default value for 'ipmi_address_fields'
config option so that inspector can support both nodes with old and new
driver_info field.
Change-Id: I90559d7a99462cd0de2a0c8ce047015955b8cfda
Related-Bug: #1644210
This patch introduces an API endpoint to list introspection statuses. The
endpoint supports pagination with an uuid-marker and a limit query string
fields. Due to the pagination, this change introduces a new configuration
option: ``api_max_limit``.
APIImpact
Change-Id: I74d02698801d5290619161b2d8d7181ab51a0a5e
Partial-Bug: #1525238
Adds a new plugin to distinguish PCI devices returned by Ironic
Python Agent. Recognized PCI devices are then registered in node
capabilities and later can be used by nova flavors.
Change-Id: I6565b8c4aa76de240a6c4d795635300ff2d0c30b
Partial-Bug: #1580893
This adds configuration option 'processing.power_off'
defaulting to True, which will prevent powering off the
node after introspection
Change-Id: I16eb6b73fd57e84175bbce81c79e432ed8d1d3fa
Closes-Bug: #1488534
The template for ramdisk logs file names can now be changed via
the configuration. The default now contains only node UUID and datetime.
Also a proper tar.gz extension is appended to avoid confusion.
Depends-On: Ie507e2e5c58cffa255bbfb2fa5ffb95cb98ed8c4
Change-Id: I738f9bd35705d0d11c95b0164186ed0b366b5252
A green thread is now used instead of spawn_n for running asynchronous
operations during introspection, processing and aborting.
The existing periodic tasks are now run using Futurist PeriodicWorker.
Main shut down procedure was split into a separate function for convenience.
Also updated the example.conf to the latest versions (some pending updates from
3rdparty libraries included).
Change-Id: Id0efa31aee68a80ec55e4136c53189484b452559
Currently our logging in processing is very inconsistent:
some log strings mention node UUID, some - node BMC IP, some nothing.
This change introduces a common prefix for all processing logs
based on as much information as possible.
Only code that actually have some context about the node (either
NodeInfo or introspection data) is updated.
Also logging BMC addresses can be disabled now.
Updates example.conf (a lot of updated comments from oslo).
Change-Id: Ib20f2acdc60bfaceed7a33467557b92857c32798
This patch set adds support for rootwrap in order to execute iptables.
Co-Authored-By: Dmitry Tantsur <dtantsur@redhat.com>
Change-Id: I7c424c17222f119730b8c5ac0daafd9906282e4d
Closes-bug: #1495844
Creates a new plugin root_disk_selection which uses root device hints
and IPA inventory to calculate a root disk.
Update scheduler plugin to support 'root_disk' field in introspection
data. This field is populated by both root_disk_selection plugin
and IPA itself. The latter value is now used when root device hints
are not provided.
New option disk_partitioning_spacing regulates whether to substract
1 GiB from local_gb. Previously it was unconditionally done by
the ramdisk.
Change-Id: I8d60e3483ab5d7d181e231fe413fcd16192e0e97
Depends-On: Ie19b82ff2a914873ff4b2395b02643e086b934b1
Implements: blueprint root-device-hints
This adds the ability to store all of the data collected
during introspection. The configuration option
"[processing] store_data" (defaults to 'none'), determines
this behavior. Initially, only 'none' and 'swift' are
supported. If 'swift' is used, the data is stored in Swift
with the object name of "inspector_data-<UUID>".
Adds an endpoint /v1/introspection/<UUID>/data which
retrieves the data according to the method in
"[processing] store_data". Returns 404 if this option
is disabled.
There is a further option to store the location of the data
in the Ironic Node.extra column. For 'swift', this will be
the name of the swift object. The option,
"[processing] store_data_location" determines the key
name in the Node.extra column. (defaults to not storing
the location).
Change-Id: Ibc38064f7ea56f85b9f5a77ef6f62a50f0381ff4
Implements: blueprint store-introspection-data
Currently, Ironic Inspector talks with Ironic using public API endpoint.
This patch fix this by making endpoint type configurable and also
make default value "internalURL".
Change-Id: I11f8016a69fabe450989174b846cf84eacf83652
Partial-Bug: #1470565
KVM PXE code seems broken in an interesting way, when you try to PXE
boot too many nodes. This change makes inspector sleep configurable
amount of time between powering on nodes with *_ssh driver.
Work around in devstack/exercise.sh is no longer needed and is dropped.
Note that this change is not HA, so we might revisit it in the future.
Change-Id: I9b16592f9b5130e90c02fce1b421887f451e397b
Closes-Bug: #1473024
Currently, Ironic-inspector uses SQLite as database.
We should migrate to oslo.db.
In this patch, make database connect operations to oslo_db.
Change-Id: Ibd0f787b570bc101eab9fbd0b59d8a775a95e2e0
Implements: blueprint migrate-to-oslodb
This patch adds the default_processsing_hooks config option, so that
operators can add processing hooks before or after the defaults
without having to override the defaults themselves.
Change-Id: Ib25c358db8950e6cfca7ae0aea0641cd11e094a5
Closes-Bug: #1441117
This patch deprecates the authenticate configuration option in favor of
a more ironic like auth_strategy option.
Those already using the authenticate option shouldn't be affected by
this change however the authenticate option should be completely
removed in the future.
Change-Id: If9b1f24a8a9a73c93d46d884a24658ac9556ced2
Closes-Bug: #1462365
This patch removes the check when the inspector starts that ensures
that ironic is already running, because it could lead to problems when
bringing up services in a distributed environment where order and timing
isn't guaranteed.
Change-Id: I2a8ee74db781a087a8ecb0c73ddc461a6b326101
Closes-Bug: #1462993
Nodes that don't exist in the inspector node cache maybe still be
booted and return inspection information to process, this patch allows
an operator to hook into the point when the not found error is thrown
so that they may handle that information in anyway they decide to.
Change-Id: Ib17491a8201cf534d498c68d916b5b37b07f5ff6
Implements: blueprint node-not-found-hook
We support oslo.config, so use Use keystonemiddleware auth credentials
instead of auth options ourselves.
Notes:
Below items will be used to get ironic client forever, not DEPRECATED,
but, in the case of keystone authentication, they are DEPRECATED.
Use [keystone_authtoken]'s items instead of them.
[ironic]
* os_auth_url
* os_username
* os_password
* os_tenant_name
And also this patch set drop default value of os_auth_url and identity_url,
so that this change will break people relying on ether/both of them.
Change-Id: Ib0774b6027bb60910dd4b5c2bc8acea0069ba0a1
Closes-Bug: #1435882