instead of specifying URL config options as StrOpt + regex enforcing
the string starting with 'http://' or 'https://'.
URIOpt is already available in minimal version of oslo.config that is
required by ironic.
Change-Id: I47089e215f730b3990004a66e0f35262a5f9d9bd
A cinder interface driver that can be called in order to signal
cinder to attach and detach volumes.
Authored-By: Julia Kreger <juliaashleykreger@gmail.com>
Co-Authored-By: Joanna Taryma <joanna.taryma@intel.com>
Co-Authored-By: Mike Turek <mjturek@linux.vnet.ibm.com>
Change-Id: I3d6bb126ef34b30f316ed5a10fd13a3106d1400b
Partial-Bug: #1559691
Currently method "_ensure_config_dirs_exist" creates tftpboot/<uuid>
dir with wrong permission. This is due to the system umask setting
which overrides the default permission of 0777 to 0755 or 0750. When
the permission is 0750, BM can't get deploy_kernel and ramdisk from
tftpserver. This may happen only when tftp process is launched from
other user than root and as result can't read files created by Ironic.
So this patch tries to fix the issue by explicitly changing the
permissions defined in the config option ``[pxe]/dir_permission``.
Change-Id: I3119ec7ae31bf82f716bf082fa4c3296d6aa3587
Closes-bug: #1655568
This updates etc/ironic/policy.json.sample so that the default
rules/values are commented out (since they don't need to be
specified).
The change was done by oslo-config-generator, the utility that
generates this sample.
Change-Id: I1df564992336862c00e3b7213e230f32cba3d789
The default log level of oslo.messaging was set on the python package
name, which means it didn't take effect for all logs. This fixes it
adding it on the namespace name as well.
Related-Bug: #1685148
Change-Id: I0263717b9fd4d3c6ee4083c71df9b4b26401a39b
Adds configuration parameter ``terminal_timeout``
to section [console] to allow operators to set the timeout
value for the Socat console session.
Change-Id: I9a83a3e2b2d16117df0f9c01b6c8b6c86639696c
Closes-Bug: #1675404
oslo.config 4.0 will check overridden value type by default[1],
which exposes a couple issues in Ironic:
- default_storage_interface is defined as ListOpt, when it should be
StrOpt.
- test_get_client_with_endpoint_override sets an invalid url for config
option url, which fails when checked by oslo.config.
[1] https://review.openstack.org/#/c/328692
Change-Id: Id166da73a41c8c46d9f3e239579d0cafb93bf69f
Closes-Bug: #1517839
The way it is done in this patch is recommended by the oslo.config
documentation in [0], so that the updated default_log_levels value
is correctly reflected in the generated ironic.conf.sample file.
An oslo.config.opts.defaults entry point is added.
[0] https://docs.openstack.org/developer/oslo.config/generator.html
Change-Id: Ic200e8d0d721a6c94bd17068a6e5000db930eefd
This is a follow up to 459fe314fa65111d4b1fd4f8210117903a778093
Minor issues in the code and tests are fixed, the release note is added,
configuration options are described as part of not yet exposed feature.
Change-Id: Ib466ee3970dcc1e141ddac38a54544f6a011549e
Partial-Bug: #1559691
Currently config drive can be stored in swift with keystone
authentication. This change allows ironic to store the config drive in
ceph radosgw and use radosgw authentication mechanism that is not
currently supported. It uses swift API compatibility for ceph radosgw.
New options:
[deploy]/configdrive_use_object_store
[deploy]/object_store_endpoint_type
Deprecations:
[conductor]/configdrive_use_swift
Replaced by: [deploy]/configdrive_use_object_store
[glance]/temp_url_endpoint_type
Replaced by: [deploy]/object_store_endpoint_type
Change-Id: I9204c718505376cfb73632b0d0f31cea00d5e4d8
Closes-Bug: #1642719
Addition of common cinder related code that a storage interface
driver will be able to leverage for interacting with cinder.
Co-Authored-By: Joanna Taryma <joanna.taryma@intel.com>
Partial-Bug: #1559691
Change-Id: I4aed895e52fcefb61dd0751e8bc9b39a26706276
Adds a warning to pin_release_version config to indicate that it
isn't being used yet since the rolling upgrades work isn't complete.
Also includes updates as a followup to
9bc06783ecaff5eef58535904abc12ea15982329, including adding a
release mapping for ironic version 8.0.
Change-Id: I2145f76a6802e8116b9ee2c1e23a88322b1bdeac
The configuration option [ilo]/clean_priority_erase_devices was
deprecated in the Newton cycle (6.1.0). It is no longer supported.
The option [deploy]/erase_devices_priority should be used instead.
Closes-Bug: #1677449
Change-Id: Ib9110e9bd395d4a87aeb3981073530fb59949a47
To support rolling upgrades, capping of RPC communication and Ironic
objects is required. Old RPC services and objects may still be running
while an upgrade is in progress. This makes sure that these old
services are called and all objects are used in a supported RPC and
objects version.
This patch adds the configuration option "pin_release_version". Setting
this option caps (downgrades) the internal RPC communication to the
specified version to enable communication with older services. When
doing a rolling upgrade from version X to Y, set this to X. It defaults
to using the newest (current) possible RPC behavior and object versions.
Change-Id: Ie2342d4051f85392a8b10d39ebffc287da57bf2b
Partial-Bug: #1526283
Co-Authored-By: Szymon Borkowski <szymon.borkowski@intel.com>
Co-Authored-By: Ruby Loo <ruby.loo@intel.com>
Nova dropped support for glance v1 in Ocata and we're going
to disable glance v1 in CI runs for Pike. The glance v1
API is deprecated so we should start burning it out of the
system in all of the projects.
Closes-Bug: #1670423
Change-Id: I1398f81b28e1b000ee110c159e498b72e3746109
Wrap all DB write operations with oslo_db decorator to retry on
deadlock. DBDeadlock exception can be raised quite often on Galera
clusters under load.
This also fixes an issue which causes conductor's periodic
tasks to stop executing.
Closes-Bug: #1637210
Closes-Bug: #1639338
Co-Authored-By: Vladyslav Drok <vdrok@mirantis.com>
Co-Authored-By: Joanna Taryma <joanna.taryma@intel.com>
Change-Id: I61db83637adfd98a5394d1f570f3de4302c93497
In accordance with ironic CI policies, this patch removesi some drivers
that are not tested on upstream or third-party CI
and for which maintainers have not communicated any plans
to have such testing.
This includes:
- virtualbox drivers
- seamicro drivers
- msftocs drivers
Change-Id: Ia3a7d798c877f4628946ee6c56d850b9847e6c3e
Closes-Bug: #1663018
This adds additional constraints to the help messages for the
enabled_*_interfaces config options. It also checks if they are
empty at conductor startup, and if any are empty, errors out
with a better error message than previously provided.
Change-Id: I97fc318ce00291d5e43b70423930981c2f5a2de0
Partial-Bug: #1524745
The method _send_sensor data is executed in a single
thread for all nodes consequently and slow down
collecting sensor data process.
This makes this task concurrent by node distribution
among configured in conductor number of workers using
synchronized queue.
Change-Id: Ic97bd798f2aa74998d185b6f50635f5862a677f5
Closes-Bug: 1642285
The configuration option [deploy]/erase_devices_iterations was
deprecated in the Newton cycle (6.0.0). It is no longer supported.
The option [deploy]/shred_random_overwrite_iterations should be
used instead.
Change-Id: I808849a94c862b59f7e78c94409f2dd8d6f7eaea
Fixes-Bug: #1660838
Created a new Python module ironic.drivers.ipmi to contain all
supported IPMI-related drivers (both new and old).
Backward compatible aliases are left at old locations.
Change-Id: I526b8505d08b25b668af76d3fcd8f2feab31e420
Partial-Bug: #1524745
This patch enhances iRMC power driver to support SOFT_REBOOT_SOFT and
SOFT_POWER_OFF.
Partial-Bug: #1526226
Change-Id: I8c69904063ac0a9e042f54158a20347f0c2325e1
This patch updates the generic management interface and adds a new
REST API to support the injection of Non-Masking Interrupts (NMI) for
a node. This feature can be used for hardware diagnostics, and actual
support depends on a driver.
Partial-Bug: #1526226
Change-Id: I08d74f5ccbc386baca1fb29e428fe01924499d45
Glance V1 is deprecated we should start switching off it. Even more,
some features in Ironic already require V2 anyway.
This change switches everything to V2 by default, while leaving an option
to get previous behavior back. Features that already required V2 are
not affected by this option.
Change-Id: I6947a150fefb7fe3028a0a7c5208c6c343be8e0d
Closes-Bug: #1657475
This registers the intersection of supported and enabled interfaces for
each hardware type enabled in the conductor at conductor startup, and
unregisters them at conductor shutdown. Validation is left as a todo for
now.
Change-Id: I14e88bfc304de9414de008d1cc8568dda9115ecc
Partial-Bug: #1524745
We already have a check in Inspector.create_if_enabled. This additional
check prevents normal use of Inspector with hardware types, as it's not
enough to add "inspector" to "enabled_inspect_interfaces" to use it.
Change-Id: Iff29785002cd978702317d50ce52bdcebe06d0e3
Partial-Bug: #1524745
This patch adds the REST APIs for the virtual network interface API in
order to abstract the task of assigning logical network interfaces to
physical network interfaces.
Since Newton Ironic provides an interface for pluggable network
implementations. Different network implementations may want to handle
how logical to physical network interface assignment happens. To do this
the new API calls into new functions on the network implementation
loaded for the specified node.
This is part 3 of 3, and adds the node vif subcontroller to expose the
/nodes/<ident>/vifs REST API endpoint. API version is bumped to 1.28.
Co-Authored-By: Vasyl Saienko (vsaienko@mirantis.com)
Change-Id: I70f1166a15a26f392734e21d6bc30a03da4e5486
Partial-Bug: #1582188
This is needed to check the config-drive labels properly,
as the current way using blkid was failing under some use
cases. So we switched to lsblk instead.
Change-Id: I3676cd8e5c5e61fe4e3f67ab9e121c4cd0cd599b
This patch updates the generic power interface to support SOFT_REBOOT
and SOFT_POWER_OFF. And also it introduces "timeout" optional
parameter for all power operations.
Partial-Bug: #1526226
Change-Id: I1c9bbd1f11f6a8565607c874b3c99aa10eeb62a5
In order to properly support booting and maintenance of
systems that boot from a remote storage device, we need an
interface to associate the driver with.
This commit adds a basic storage_interface and noop and fake
interfaces along with the appropriate handling for configuration
in the event that the driver list is blank, or is missing the
noop driver.
Co-Authored-By: Stephane Miller <stephane@alum.mit.edu>
Change-Id: Ib21eda88f207f18675c8580cd7fd37eab6fd70bf
Partial-Bug: #1559691