Now we have docs, lets point people there rather than attempting to
maintain a copy in tree.
Also update the devstack plugin to build ironic.conf from scratch rather
than from the sample.
Change-Id: Id65a4f803832fefe467d59147c39d2dea604ed3c
Inspector sets API urls for ironic and swift from the config.
The better way would be to discovery them from the keystone
catalog.
Supporting this requires to register keystoneauth adapter
options to all config sections for service clients auth.
swiftclient still does not support adapter session client, so
pass all options from adapter explicitly.
New options were added 'service_type`, `service_name`, `region_name`
`endpoint_override`, `interfaces`.
Related-Bug: #1699547
Change-Id: I2e7ec02fdeeea21ef43136ddeabc98d499a8ba7f
Co-Authored-By: Anton Arefiev <aarefiev@mirantis.com>
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
this patch introduces an oslo.policy-based API access policy
enforcement engine to ironic-inspector.
As part of implementation, a proper oslo.context-based request
context is also generated and assigned to each request.
Short overview of changes:
- added custom RequestContext class
- extends oslo.context to handle of "is_public_api" flag
(False by default)
- added context to request in each API route
- '/continue' api sets the "is_public_api" flag to True
- added documented definitions for API access policies and their
defaults
- added enforcement of these policies on API requests
- added oslo.policy-specific entry points to setup.cfg
- added autogenerated policy sample file with defaults
- added documentation with autogenerated policies
Change-Id: Iff6f98fa9950d78608f0a7c325d132c11a1383b3
Closes-Bug: #1719812
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
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
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
This patch does not change the options in config file yet to showcase
backward compatibility with old config options.
Change-Id: I1da93b59b2f4813c42008277bd6479dc6673e7f1
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
Add new node_not_found_hook - enroll_node_not_found hook,
which allows to enroll unknown nodes to Ironic automatically.
Change-Id: If1528688504e4be4b2369b985bc576544d96868d
Related-Bug: #1524753
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 Swift using public API endpoint.
This patch fix this by making endpoint type configurable and also make
default value "internalURL".
Change-Id: Iab7d6a995d484bebb4338ffd307afcea132c0f20
Closes-Bug: #1470565