103 Commits

Author SHA1 Message Date
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
Andrew Smith
2650f654af Add rabbit driver ssl config option
The driver option is necessary as the transport_url query param
override requires the value. Default will be to use the oslomsg
rpc setting.

Change-Id: Ic9bc50824be37c544444c9e6f296151e1db427ea
2018-06-04 13:23:30 -04:00
Zuul
75edc93536 Merge "Update to use oslo.messaging service for RPC and Notify" 2018-06-03 22:36:37 +00:00
Andrew Smith
f148283fdd Update to use oslo.messaging service for RPC and Notify
This introduces oslo.messaging variables that define the RPC and
Notify transports for the OpenStack services. These parameters
replace the rabbitmq values and are used to generate the messaging
transport_url for the service. The association of the messaging
backend server to the oslo.messaging services will then be
transparent to the ironic service.

This patch:
* Add oslo.messaging variables for RPC and Notify to defaults
* Update transport_url generation (added notifications)
* Add oslo.messaging to inventory
* Add release note

Depends-On: If4326a6848d2d32af284fdbb94798eb0b03734d5
Depends-On: I2b09145b60116c029fc85477399c24f94974b61d
Change-Id: I363a888980dfd84b4b586df01fb022dd453dc3de
2018-05-18 18:33:58 -04:00
Zuul
58f575843d Merge "Move ironic_glance_api_servers variable into role" 2018-05-18 12:43:14 +00:00
Albert Mikaelyan
28c06a2704 Move ironic_glance_api_servers variable into role
As part of cleaning inventory variables, we are
moving some of the variables to be created in
roles instead of in inventory. This moves the
ironic_glance_api_servers variable into role.

Change-Id: I983a20d923384bf54cb0af924ec0a0f8ef4db191
2018-04-09 15:10:24 +03:00
ZhongShengping
566d239d57 Deprecate auth_uri option
Option auth_uri from group keystone_authtoken is deprecated[1].
Use option www_authenticate_uri from group keystone_authtoken.

[1]https://review.openstack.org/#/c/508522/

Change-Id: I7bccd08bf45b3c9dddad9a0ada58fc3038fe9d79
Implements: blueprint deprecate-auth-uri-option
2018-04-03 14:16:53 +08:00
Major Hayden
e5e0aa48e3
Skip logging for haproxy health checks
The health check requests from haproxy cause uwsgi to write a
lot of useless log lines. This can make it more difficult to find
a problem with a particular service.

This patch adds a route to look for the `osa-haproxy-healthcheck`
user agent string, which haproxy uses when performing health checks.
Any requests with that user agent are not logged.

Closes-Bug: 1742718
Change-Id: I2a1786e2197fbb0fa77e78b94e0c5ff7f4afc8fb
2018-02-23 08:45:33 -06:00
Jean-Philippe Evrard
a9702301b4 Handle Pike deprecations for Ironic
Following the release notes:
https://docs.openstack.org/releasenotes/ironic/pike.html

On top of that, ironic_glance_host was never used anywhere, and was
removed.

Change-Id: I1fbdc0660eccd75299e734b36b99509d388348cf
2018-02-06 09:41:35 +00:00
Andy McCrae
227a672eeb Implement uWSGI for ironic-api
Ironic already had mod_wsgi setup, but this patch moves it to use uWSGI.
Additionally, this moves to use a filtered_services_list for Ironic

The ironic role should be standardized to meet the service setup of
other roles, using a filtered service list, and a dict of services with
settings moves us closer to this.

Change-Id: Ib432380dbc2ea11f9ac005713121a7b42ab97109
2017-08-11 10:48:58 +01:00
ZhongShengping
a5bdf59d01 Deprecate rabbit_use_ssl option
Option "rabbit_use_ssl" from group "oslo_messaging_rabbit" is deprecated.
Use option "ssl" from group "oslo_messaging_rabbit".

Change-Id: Ibf9e932250d43859df03ec0d4ea46540391adc8b
Implements: blueprint deprecate-rabbit-use-ssl
2017-05-23 10:24:03 +08:00
Jesse Pretorius
5ce9c107ad Reduce init restart/kill times
The systemd unit 'TimeoutSec' value which controls the time
between sending a SIGTERM signal and a SIGKILL signal when
stopping or restarting the service has been reduced from 300
seconds to 120 seconds. This provides 2 minutes for long-lived
sessions to drain while preventing new ones from starting
before a restart or a stop.

The 'RestartSec' value which controls the time between the
service stop and start when restarting has been reduced from
150 seconds to 2 seconds to make the restart happen faster.

These values can be adjusted by using the *_init_config_overrides
variables which use the config_template task to change template
defaults.

Change-Id: Id721b89bd37df91192f48743ea3c32a305022a9f
2017-04-26 13:06:51 +00:00
Jeremy Grant
314d6c5658 Configure Swift Endpoint Typei
Updated the template for ironic.conf to enable configuration of
the swift url endpoint type within ironic.conf

Change-Id: I67f64167914d6e3e9fddb57e5e38dc03757ae5c7
2017-04-03 09:42:17 -05:00
Jimmy McCrory
57e8a0eaaa Ensure the components are isolated from the system
This creates a specific slice which all OpenStack services will operate
from. By creating an independent slice these components will be governed
away from the system slice allowing us to better optimise resource
consumption.

See the following for more information on slices:

* https://www.freedesktop.org/software/systemd/man/systemd.slice.html

See for following for more information on resource controls:

* https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html

Tools like ``systemd-cgtop`` and ``systemd-cgls`` will now give us
insight into specific processes, process groups, and resouce consumption
in ways that we've not had access to before. To enable some of this reporting
the accounting options have been added to the [Service] section of the unit
file.

Change-Id: Id82169f2f500045e0ff7dc348748400a4b116fe0
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-03-28 21:18:39 -05:00
Jimmy McCrory
52e53ce76a Rename deprecated neutron network config options
The 'provisioning_network_uuid' and 'cleaning_network_uuid' options have
been deprecated for 'provisioning_network' and 'cleaning_network'
respectively.

These options now allow either a network UUID or name. The tasks to
determine a UUID from a given network name should no longer be
necessary, but if a deployer provides a UUID prioritize that over the
name within the ironic.conf template.

Change-Id: I85f197e56ced6a73dd470c0625b6d9b5958f5159
2017-03-09 10:27:24 -08:00
Jenkins
00acb09367 Merge "Adds support for the ironic-oneview drivers [+Docs]." 2017-01-30 12:08:01 +00:00
Flávio Ramalho
d3edce127d Adds support for the ironic-oneview drivers [+Docs].
This change adds support for the oneview drivers (agent, iscsi).

Note that changes on the ironic installation will occur only when
the oneview drivers are being used (agent_pxe_oneview or
iscsi_pxe_oneview are in the ironic_openstack_driver_list). This
means that this patch should not change anything on the the default
ironic installation (using agent_ipmitool driver).

Change-Id: I969df888c6a8b68e7a1a0643b46eee4b546ec13c
2017-01-27 15:44:24 -03:00
ZhongShengping
776885fcaf Remove pki support
Change-Id: I12359451e4116d1ff2b522f7fd0c43dd6fc64053
Implements: blueprint remove-pki
2016-12-29 13:36:30 +08:00
Andy McCrae
96b98eddb2 Fix ironic_api_url value
The api_url value is wrong and causes gate failures now that the value
is tested by the ironic server when it starts up.

Change-Id: I7d63135a74b6472a284495f04d7c04dc553f53ad
2016-12-19 16:22:24 +00:00
Andy McCrae
35e96e7271 Remove Trusty support from os_ironic
Change-Id: I35f90d708cda58c5b09f17e5596cf226d1b16605
Implements: blueprint trusty-removal
2016-12-15 13:18:23 +00:00
Andy McCrae
9f084a910c Add support for neutron network names for cleaning/provisioning
This patch adds the ability to specify a cleaning and provisioning
network for Ironic. If none are specified then Ironic continues to
function as it does now.

Ironic role will calculate the UUID of the neutron network assuming a
network name is provided.

Additionally, this is added to testing by configuring a network to add
with the network-name.

Change-Id: I9be6f351c0da292ac8b861d2168e73d1861e1603
2016-12-08 15:54:15 +00:00
Marc Gariepy
cab4614094 Fix tmpfiles.d when multiple service are running
This fix tmpfile when multiple services runs in the same host with systemd.
Add ironic_lock_path vars to configure lock path

Change-Id: I7c4b6a356b321c65718af3cc5b3818b7f9a61e58
2016-11-08 13:47:42 +11:00
Jesse Pretorius
86f6e8d8a5 Update paste, policy and rootwrap configurations 2016-11-04
Change-Id: I142e95ddf95a834c5fbbdfc3ea54cedf62da8909
2016-11-04 11:05:44 +00:00
Michael Still
378727f47a Turn on debug output from IPA by default
There's no real cost to having IPA debug output on, and it helps
operators work out from a KVM what went wrong when things get
exciting. So let's just turn it on by default.

Co-Authored-By: Michael Carden <mike.carden@gmail.com>

Change-Id: I2ac525570088ea4494968666213d6f583bd5ede9
2016-09-28 02:23:01 +00:00
Jesse Pretorius
ed37a1b4b5 Update paste, policy and rootwrap configurations 2016-08-15
Change-Id: I349e72f3fb2168e0c91e814f19c9ec6fe33c9087
2016-08-15 15:43:23 +01:00
Kevin Carter
e8b360fa22 Disable stderr logging
OSLO logging currently defaults the 'use_stderr' option to True
which results duplicate logs in service daemon logs for both
upstart and systemd. To correct this issue the use_stderr
option has been set to false.

Change-Id: I601c764bcb731baeedba784787b721cccfa487e4
Closes-Bug: 1588051
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-08-04 17:44:07 +00:00
Tim Laszlo
f75d7195e3 Define keystone region name.
If multiple regions exist, keystone_authtoken should contain region_name.
This prevents the service from authenticating across regions.

Change-Id: I3e08385d91f5f913209dc944875c843828da3c2b
2016-07-22 12:40:09 -05:00
Travis Truman
ebbc044a48 Support service-specific rabbitmq clusters
All rabbitmq connection vars are now namespaced. Namespace support
was previously inconsistent which limited deployer override options.

Change-Id: Iccc4839f497ae4868d1234e8fd36220870ad7f04
Implements: blueprint multi-rabbitmq-clusters
2016-07-18 10:41:14 -04:00
Jimmy McCrory
e3004ccd15 Only install to virtual environment
Remove all tasks and variables related to toggling between installation
of ironic inside or outside of a Python virtual environment.
Installing within a venv is now the only supported deployment.

Additionally, a few changes have been made to make the creation of the
venv more resistant to interruptions during a run of the role.
* unarchiving a pre-built venv will now also occur when the venv
  directory is created, not only after being downloaded
* virtualenv-tools is run against both pre-built and non pre-built venvs
  to account for interruptions during or prior to unarchiving

Change-Id: I9df953f69eb86606ce8a6fe9f77e60c710549b8e
Implements: blueprint only-install-venvs
2016-07-08 05:49:42 -07:00
Andy McCrae
1e51088398 Add 16.04 support
Implements: blueprint support-ubuntu-1604
Change-Id: Ide4d2c5e7753aa56bd82f0de913217f0df8860b9
2016-06-02 14:39:39 +00:00
Kevin Carter
1cb4962922 updated Ironic role to fix tftp-hpa issues
This change addresses two issues:

1 - the tftpd-hpa package has to be installed on all conductors
    regardless of standalone more or not.
2 - the tftpd-hpa has an issue where is till not function over
    ipv4 unless expressly set. To resolve this issue the default
    configuration file has been changed to lockdown the listen
    address and set the port. This is the related launchpad issue
    for tftp-hpa [0]

[0] - https://bugs.launchpad.net/ubuntu/+source/tftp-hpa/+bug/1448500

Change-Id: I9861de0a0384661a27f0971f77ab340f4c1d59e3
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-04-13 11:14:11 +00:00
Kevin Carter
2603e8de6a
Update ironic.conf for swift and keystone compat
This change makes is intended to simplify the the ironic.conf file
so that we only carry what is needed. In the file we're setting the
swift configuration section when not in stand alone mode and the
keystone_auth section has been updated for the options that ironic
requires.

URI testing for ironic's rest API has been updated to run the tests
using a header for the authentication token. This is required now that
the keystone_auth section is filled in.

Co-Authored-By: Michael Davies <michael@the-davies.net>
Change-Id: Ic6bd466e6fa03c2382424666588c306bad473e99
Partially-implements: blueprint role-ironic
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-04-12 23:38:08 -05:00
Kevin Carter
649c4ea122 Change the default thread pool size
In testing ironic it w/ mod-wsgi I've found that ironic does
not pool connections to the messaging backend. This causes
connection and intermitent issues within the ironic service.
To mitigate these issues I've changed the ironic_wsgi_threads
variable from using vcpus*2 to using vcpus//4 which will
instruct the ironic process to only use 25% of the available
vcpus rounded to the nearest whole number. A ternary operation
was added to the default value to ensure the computed value is
greater than or equal to 1.

Error Example:
    XXX_ironic_conductor_container-XXX ironic-conductor:
    2016-04-07 14:32:32.016 555 ERROR oslo.messaging._drivers.impl_rabbit
    [-] AMQP server on 172.19.102.219:5671 is unreachable:
    Basic.cancel: (0) 1. Trying again in 1 seconds.

With a reduced thread count this error was resolved. My hosts have
48vCPUs resulting in 96 threads being used in the process.

Change-Id: I0390f0d3f5d90f851f5373962c4b924d3ade72ff
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-04-10 23:43:55 -05:00
Jesse Pretorius
b5d7b7986c Implement initial test inventory/plays
This patch implements an initial set of inventory and playbooks
which results in the successful convergence of a standalone
build of Ironic.

It also adds the rootwrap filters, implement config_template
for all the conf files appropriately and ensures that the sudoers
is implemented in the right order of execution.

All content is based from the head of stable/mitaka on
24 Mar 2016.

Change-Id: I9182951c394a8c52826480aba7bc7e4d437988c5
2016-03-24 23:58:05 +00:00
root
aabd2d9809 Isolating standalone Ironic mode 2016-02-15 09:39:27 +00:00
root
fdfe0179a7 Updating ironic conductor hostname for rabbit 2016-02-09 04:29:51 +00:00
root
b8f61638f0 Adding support for mod_wsgi 2016-01-25 00:24:48 +00:00
Andy McCrae
44348869cf Add apache to front ironic-api
Additionally fix some tasks that were only running on host [0] but
should be running on all hosts.
2016-01-21 05:41:48 +10:00
Andy McCrae
26df6924ae Add policy.json file 2016-01-20 17:35:48 +10:00
Andy McCrae
0e29f23555 Adjust glance address in ironic.conf
Move from external to internal vip
2016-01-20 17:34:11 +10:00
Michael Davies
2866d8be6f Updating public vs internal ip addresses 2016-01-20 01:54:40 +00:00
Michael Davies
30e34e89a1 Fix keystone and neutron URL 2016-01-19 21:55:45 +00:00
Michael Davies
adf87cec93 Add support for neutron, glance, keystone+cleanup 2016-01-19 10:51:27 +00:00
Michael Davies
069116859a Syncing as work on osa integration continues 2016-01-19 06:59:45 +00:00
Michael Davies
9fe1519921 Adding config file as option to ironic upstart 2015-11-30 20:21:46 +10:30