Commit Graph

97 Commits

Author SHA1 Message Date
Andrew Bonney ed85e8d2b1 Use common value for inspector callback URL
It appears this was missed in patch
Ib8d53b394937405c821687b1c46b2b19112267dd

This patch conforms the other pxe config to use the same
inspector callback URL

Change-Id: I5eee7d054bb4eda70acbaab9885c3985efb04002
2023-11-02 10:47:06 +00:00
Dmitriy Rabotyagov fcde81e4a7 Add quorum queues support for service
This change implements and enables by default quorum support
for rabbitmq as well as providing default variables to globally tune
it's behaviour.

In order to ensure upgrade path and ability to switch back to HA queues
we change vhost names with removing leading `/`, as enabling quorum
requires to remove exchange which is tricky thing to do with running
services.

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-plugins/+/896017
Change-Id: I0f6ae74be36c0cb7a2270cfa1085c44e6dd4dc77
2023-10-20 12:19:49 +00:00
Damian Dabrowski 61fd6b6e14 Add TLS support to ironic backends
By overriding the variable `ironic_backend_ssl: True` HTTPS will
be enabled, disabling HTTP support on the ironic backend api.

The ansible-role-pki is used to generate the required TLS
certificates if this functionality is enabled.

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/879085
Change-Id: If97a857c36e9e3e7ad8a18926bb9cbf04189c7cb
2023-04-29 18:37:37 +02:00
Jonathan Rosser b6550a4c3f Enable raid interface implementations for ironic hardware drivers
This patch enables the native raid driver implementation for each
of the hardware types defined in `ironic_driver_types`. If necessary
this can be overridden in ironic.conf using config overrides.

Change-Id: I28b39b391d307e0a4aa71e13337f646d872925ec
2023-03-21 19:00:41 +00:00
Jonathan Rosser 11b162cfa3 Install socat and configure ipmtool-socat console interface
This patch adds the `console` field to the ironic_driver_types
variable and then enables a set of console drivers in the ironic
config through the `enabled_console_interfaces` option.

If `ipmitool-socat` is one of the enabled drivers, then the socat
distro package is installed to support that.

Defaults are added for socat bind address and port range to
use.

[1] https://opendev.org/openstack/ironic/src/branch/master/doc/source/admin/upgrade-to-hardware-types.rst

Change-Id: I36dd1a0ec69e5702143a1a26bd5901fc88706e84
2023-03-21 19:00:31 +00:00
Jonathan Rosser 50bb9dc8da Remove deprecated support for cisco ucs and cims ironic drivers.
These were deprecated some time ago [1] and so are removed from the
os_ironic role.

[1] https://lists.openstack.org/pipermail/openstack-discuss/2019-February/002460.html

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-os_swift/+/877534
Change-Id: Ie857528cad187f6c65c84fef40565d7f81c130df
2023-03-21 19:00:26 +00:00
Zuul 591399a999 Merge "Tidy definition of http dir for inspector" 2022-12-09 12:44:51 +00:00
Zuul ff48276ae5 Merge "Update variables for switchport introspection during inspection" 2022-12-08 21:45:15 +00:00
Zuul 0737ce3338 Merge "Refactor ironic deploy image handling." 2022-12-08 19:07:16 +00:00
Zuul 7fa685167c Merge "Enable /healtcheck for Ironic APIs" 2022-12-07 16:22:02 +00:00
Jonathan Rosser ba1d9e9d4b Tidy definition of http dir for inspector
The directory for the tftp server defined consistently between ironic
and inspector, but not for the http directory.

This patch makes the definition of the http directory work the same
way as the tftp one.

Change-Id: I8d893faa31e5858c4923cb12ef453ec9397db5df
2022-12-07 14:04:19 +00:00
Jonathan Rosser 5d29fb4e17 Update variables for switchport introspection during inspection
1) The variable to allow processing hooks to be configured is used
in the ironic-inspector template but not documented in the role defaults.
Add the default and an example of usage.

2) When using LLDP to discover switchport connections during
inspection it is necessary to pass an additional kernel parameter
to the deploy image but there is no variable to allow this to
happen. This patch adds a variable that the deployer can use
to pass arbitrary kernel parameters to the deploy image.

Change-Id: I2f67dfcf4164e009bf53e9324bd430aec4c97dcb
2022-12-07 14:04:02 +00:00
Jonathan Rosser b974a6c0e0 Refactor ironic deploy image handling.
The deploy image is required in two places in an ironic deployment,
first as images uploaded to glance for the ironic service, and second
as files on a web server for the ironic-inspector service.

Previously this role only placed the deploy images on the ironic
inspector web server, but this patch provides the functionality to
also upload the images to glance.

The variables for ironic deploy image source locations are
consolidated so that only one set are required to run the tasks
for both ironic and ironic-inspector, and several overrides are
available allowing the source to be overidden to a local mirror
easily.

Finally - the name of the files placed on the inspector web server
and into glance represent the upstream name of the image files rather
than generic names which lose versioning and release information.

Change-Id: I1aed9d97a4ddbfb70d2375f5204c55374d1067c9
2022-12-07 15:03:32 +01:00
Zuul 3ec52b3414 Merge "Allow ironic bmaas network gateway and dns servers to be undefined" 2022-12-06 19:32:07 +00:00
Dmitriy Rabotyagov ff363afe5f Enable /healtcheck for Ironic APIs
Change-Id: Ib45ef9bfe5a64485b14f8ba526c1b9e4097092e6
2022-12-01 16:34:50 +00:00
Jonathan Rosser 67a71fdd8a Fix inspector auth config for ironic-api
This config block must be set on the ironic-api service so that it
can authenticate with the ironic-inspector service. With no config
in this block on the ironic-api service there is just an auth
failure when trying to inspect a baremetal node.

Change-Id: I7a43b7a1a393591ec85c1c91d37171f8c090878b
2022-11-25 14:39:53 +00:00
Jonathan Rosser c9674b656e Allow ironic bmaas network gateway and dns servers to be undefined
For a simple unrouted network these do not exist, but the role
currently forces bogus values to be given for the dhcpd template.

Allow the values to be unset to reduce confusion.

Change-Id: I609a05c50d1de5668f2b092e3a3ef1015e944fe6
2022-11-25 14:38:54 +00:00
Jonathan Rosser 6c8437c326 Allow ironic inspector callback URL to be overridden
Define the callback URL in the role defaults so it can be specifically
overridden rather than needing to use config_template to override
the entire kernel parameters line in the inspector ipxe config.

Change-Id: Ib8d53b394937405c821687b1c46b2b19112267dd
2022-10-06 21:48:25 +00:00
James Denton 90d0204a43 Replace pxe_append_params with kernel_pxe_params in ironic.conf
Ironic has replaced deprecated pxe_append_params config option
with kernel_pxe_params. The ironic.conf template has been changed
accordingly, but support remains for config override
ironic_pxe_append_params.

Change-Id: Icedd2b8f0e81607caba93afd34557bd4c3a88b4d
2022-09-14 02:15:40 +00:00
James Denton e02da14854 Remove [keystone] configuration block
The [keystone] configuration block no longer exists in ironic.conf
and was deprecated in Queens. Use 'region_name' option in the
following sections - '[service_catalog]', '[neutron]', '[glance]',
'[cinder]', '[swift]' and '[inspector]' to configure region for those
services individually.

Change-Id: I40a073f9aa6e40f35dffab6223308a18fa98e7ac
2022-06-20 06:23:40 +00:00
Dmitriy Rabotyagov 20a533dd53 Support service tokens
Implement support for service_tokens. For that we convert
role_name to be a list along with renaming corresponding variable.

Additionally service_type is defined now for keystone_authtoken which
enables to validate tokens with restricted access rules

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-plugins/+/845690
Change-Id: I1d70c2c46fef6ffc0fcebe4b56a0ecdedc1d3298
2022-06-17 06:26:07 +00:00
Zuul 28795b1050 Merge "Update Ironic Inspector for Metal Deployments" 2022-01-20 19:12:18 +00:00
James Denton f7e6cc04cf Update Ironic Inspector for Metal Deployments
This patchset aims to correct some design limitations with the current
ironic-inspector deploy process.

- a new ironic-inspector-dnsmasq service has been created to split
inspector-specific dnsmasq configuration out of the base dnsmasq
config files
- PXE/iPXE and UEFI support for ironic-inspector boot
- (todo) documentation improvements and diagrams

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/823426
Change-Id: Ib5cbb28f97dd7421bfecb815def89305f3b1da33
2022-01-11 19:56:38 +00:00
James Denton 4c6578538a Remove glance_api_servers from ironic.conf
The [glance]glance_api_servers configuration option has been deprecated
since Pike and removed in 2019 per Ironic commit
dcfb4f10f31c11afa350ef6418a0e12e6be6e5b2. Removing from ironic.conf
template.

Change-Id: I3b09514635ee0c8665c425bd1fe42fb594361a0e
2021-12-23 16:24:43 -06:00
James Denton 4cd32a2127 Remove default_boot_interfaces
The value for default_boot_interfaces must be supported by all
configured drivers, otherwise conductor won't start. This configuration
can be applied as an override by the operator, if necessary, rather
than OSA.

Change-Id: I780a1f130b0c695822ba50066247688bf4874dac
2021-12-17 15:13:49 +00:00
James Denton 2a24dd59ba Add Support for Deploying UEFI Baremetal Nodes
This patchset adds support for deploying instances using UEFI baremetal
nodes. UEFI may replace Legacy BIOS mode in future Ironic releases. Tested
with Ubuntu Focal 20.04 LTS.

Change-Id: I0fa6234ec7321e1d69901175baeab4ddb08afc50
2021-12-12 14:24:30 +00:00
Damian Dabrowski 9355e1dd2d Database connection pooling improvements
- Implemented new variable ``connection_recycle_time`` responsible for SQLAlchemy's connection recycling
- Set new default values for db pooling variables which are inherited from the global ones.

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/819424
Change-Id: I1c90ce68ce218d538cd89b111dc1ee4142f14eef
2021-12-02 19:18:25 +01:00
Dmitriy Rabotyagov 301900f373 Refactor definition of lock path
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/819300
Depends-On: https://review.opendev.org/c/openstack/ansible-role-systemd_service/+/819298
Change-Id: I4d2fe4659fed362ab0bb1c179339a623d7ce3e08
2021-11-30 12:14:13 +02:00
James Denton 621d769b30 Add [nova] section to ironic.conf
This patch fixes at least one issue related to ironic-conductor and
its inability to report to Nova based on lack of Nova-related
configuration in ironic.conf.

Change-Id: I96aac9f0f2c1e9bdb6ebd601ee3546ad13e0d927
2021-11-16 09:51:31 -06:00
Jonathan Rosser 029292a02d Add variables for rabbitmq ssl configuration
Change-Id: Icfe4696b0924abcf04d7f501186bf14d31c6fbdd
2021-05-17 10:49:26 +00:00
James Denton 7900aeb223 Update Inspector listener address and network
This patch allows ironic-inspector to listen on host IP
rather than 0.0.0.0, as well as allows an existing Neutron-managed
inspection network to be used for inspection traffic.

Change-Id: I645857ad62954f08b160e5889f93dc1f6423def2
2020-11-09 11:35:08 -06:00
James Denton 8f3a9e207c Add iPXE support to Ironic Conductor
This patchset adds support for iPXE, which can speed up baremetal
provisioning considerably due to the use of HTTP versus TFTP.

Change-Id: I8b49ae37a0380cd7a2191f050a52c85cc373026b
2020-10-22 15:24:19 +00:00
Mohammed Naser bb97551847 Fix ironic ramdisk logs
Change-Id: Id545c8cda0de7bab73d26e2001e57004f65af10a
2020-08-28 10:32:28 -04:00
Guilherme Steinmüller 02750db47b Refactor memcached_servers
This patch aims to add a prefix for memcached_server
on each role to give the ability for deployers to
override the location of memcached cluster. I.e users
wants to create a single memcached cluster with k8s
for each service.

We also add pymemcache based on [1]

[1] https://review.opendev.org/711429

Change-Id: I7e3b2835f1cee2525b02960e2b7e4ee238373bcc
2020-03-16 13:57:29 +00:00
Cam Loader 7da7127071 Adds configuration for the Ironic Inspector
This commit enables and configures the Ironic Inspector. This feature
allows for baremetal nodes to be introspected. This provides useful
information about an Ironic host. Such information includes harware
and mac addresses.

Depends-On: https://review.opendev.org/680553
Change-Id: I2ee09d9cc20f9b8e4430c55129cd8bac9435299d
2019-12-06 06:21:05 +00:00
Dmitriy Rabotyagov 39dcdeedc8 Start using uWSGI role
Move service to use uWSGI role instead of iternal task for uwsgi
deployment. This aims to ease the maintenance of uWSGI and speedup
metal deployments as the same uwsgi environment will be used
across all services.

Change-Id: Ie79a7ba7d62504e9e81edbb386f8e52ce0a03074
2019-09-04 20:13:20 +03:00
Mohammed Naser 0a2092a087 tftp: start on boot & fix tftp paths
This fixes the tftp service name on CentOS and makes sure that
the service is running on boot.  It also makes sure that the
tftp_root is setup correctly for the default configuration
on CentOS.

Change-Id: I56944ea905b5ea908cf1e93d5ae1325e68788562
2019-08-16 11:11:04 +00:00
Zuul ff9b4ecc39 Merge "Use systemd-journald instead of log files" 2019-07-17 11:01:24 +00:00
Dmitriy Rabotyagov 64fdc9d685 Use systemd-journald instead of log files
This patch aims to migrate service from usage of regular syslog files
to journald. We also disable uwsgi logging, since it dublicates
requests that are logged by service itself.

Change-Id: Iaddb2c158a52d90025899d9bfa5576358bef92dd
2019-07-17 00:57:58 +03:00
Dmitriy Rabotyagov 2f73f21e65 Convert systemd services to common role(s)
This removes the systemd service templates and tasks from this role and
leverages a common systemd service role instead. This change removes a
lot of code duplication across all roles all without sacrificing
features or functionality. The intention of this change is to ensure
uniformity and reduce the maintenance burden on the community when
sweeping changes are needed. The exterior role is built to be OSA
compatible and may be pulled into tree should we deem it necessary.

Change-Id: I404639ae7ebd349d4a11fc5ce1ef3d2805833217
2019-07-16 18:14:38 +03:00
Jean-Philippe Evrard 9f0d4d3b33 Use ironic credentials when connecting to other APIs.
When ironic is connecting to another service's API, it should use
its own credentials to obtain an authtoken with keystone.

Without this patch, ironic deployment would fail with an undefined
variable "neutron_service_adminurl", which is not required.

It is not defined since a patch removed it from the group vars.

[1]: https://review.opendev.org/#/c/658178/

Change-Id: Ib8f67b195d1d74cc7997822fa1f5f0ac2176393d
2019-06-27 17:14:33 +02:00
Mohammed Naser 8efb3efe4e Test using integrated build
In order to do a more complete verification of any patches,
we add a full uncontainerised OpenStack deployment to do the
functional testing using the integrated repo. This replaces
the previous functional test mechanism.

Any additional role tests are left as-is. They will require
some extra implementation in the integrated build before they
can be transferred.

In addition, policy-in-code is a thing in Ironic now so there
is no need to use a template-ized file.

Depends-On: https://review.openstack.org/647840
Depends-On: https://review.openstack.org/648502
Depends-On: https://review.openstack.org/648551
Depends-On: https://review.openstack.org/648575
Change-Id: I31747ea9273c435a3856c4fc277a2a25814c5b02
2019-03-29 14:56:35 +00:00
Zuul f83b8b921a Merge "remove oneview support from ironic" 2018-09-29 13:12:23 +00:00
Zuul 123ad11744 Merge "Retrieve ilo drivers via webserver" 2018-09-27 19:43:29 +00:00
Matthew Thode 8f32b24cdd
remove oneview support from ironic
Oneview support was dropped in stein.

Change-Id: Ic3c55673bab5ca8ec43583e84bf82a6bf45618d3
2018-09-27 13:24:31 -05:00
bhujay 6e0904ddf6 Adding [service_catalog] in ironic.conf (50 character)
In absence of this section ironic conductor
fails to identify authentication mechanism
and fails to deploy node.

Change-Id: Ic0d58c694ebced64c0eb2f118980eade7ba7d1e2
Closes-Bug: #1793959
2018-09-23 19:39:37 +05:30
Jeremy Grant c8e719cca2
Retrieve ilo drivers via webserver
This enables the ability to bypass the ilo driver
dependency on swift through implementation of support
for the 'use_http_web_server_for_images' variable
and corresponding logic to bypass swift tasks
when enabled

As per:
https://specs.openstack.org/openstack/ironic-specs/specs/4.2/remove-swift-dependency-for-ilo-drivers.html

Change-Id: I343c542dbb9b3a9fe17c364e827374b3512993f1
2018-09-12 10:50:47 -05:00
Matthew Thode 0f362e5e7b
fix ironic driver data structure usage
The template would previously split strings so you'd get things like

enabled_hardware_types = p,x,e

Now we use jmespath to do the search of the lists/dicts for us.

Change-Id: I3f2f4550ed47b78c20d603d77124609c1ec2a63d
2018-08-07 15:26:16 -05:00
Matthew Thode fc1e4f78dc
Overhaul ironic role
Removed unused variables when able and updated to the new ironic driver
definitions found here.

https://docs.openstack.org/ironic/latest/admin/upgrade-to-hardware-types.html

The intention is to support the drivers via profiles, so the table from
the above link was converted to a dictionary.  This dictionary was used
as a source when combining / concatenating the various drivers for each
profile into a usable list.  The standalone logic was simplified.

Change-Id: I19553af41b5e669386b855209c61235bf37371f2
Closes-Bug: 1758351
2018-07-01 19:36:18 -05:00
Cameron Loader 6a5f4d7f4e Add glance auth information to ironic.conf for communication
This adds the necessary config for ironic to communicate with
glance for image storage and retrieval.

Change-Id: Iec5d83715d0dcd83e61bb369f42353efac97e6d0
2018-06-29 11:26:50 -05:00