Skip to content

Commit 4143fa7

Browse files
committed
Remove the ability to install and use ironic-inspector
The project will be phased out in this release cycle, so Bifrost cannot use it any more. Note that some parameters still have "inspector" in their names for legacy reasons. They should be renamed (with deprecation) separately. Assisted-By: Claude Code Change-Id: I02381966a9af4d7cb1e35355ad85745221f8fde3 Signed-off-by: Dmitry Tantsur <dtantsur@protonmail.com>
1 parent 9624027 commit 4143fa7

File tree

31 files changed

+35
-754
lines changed

31 files changed

+35
-754
lines changed

doc/source/user/architecture.rst

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,6 @@ ironic_
1313
Ironic is the main service that provides bare metal capabilities.
1414
Its `bare metal API`_ is served on TCP port 6385.
1515

16-
ironic-inspector_
17-
Inspector is an auxiliary service that provides `in-band inspection`_.
18-
Its `introspection API`_ is served on TCP port 5050.
19-
20-
Inspector is deprecated and can be enabled by setting
21-
``enable_inspector=true``. Otherwise, Ironic's `native in-band inspection`_
22-
is used.
23-
2416
mariadb_
2517
MariaDB is used as a database to persistently store information.
2618

@@ -35,9 +27,8 @@ nginx_
3527
Uses HTTP port 8080 by default (can be changed via the ``file_url_port``
3628
parameter).
3729

38-
When TLS is enabled, Nginx serves as a TLS proxy for Ironic and Inspector.
39-
It listens on ports 6385 and 5050 and passes requests to the services
40-
via unix sockets.
30+
When TLS is enabled, Nginx serves as a TLS proxy for Ironic. It listens on
31+
port 6385 and passes requests to the service via a unix socket.
4132

4233
dnsmasq_
4334
Dnsmasq is used as a DHCP and TFTP server (but not for DNS by default)
@@ -51,7 +42,7 @@ The following components can be enabled if needed:
5142

5243
keystone_
5344
Keystone is an OpenStack Identity service. It can be used to provide
54-
sophisticated authentication to Ironic and Inspector instead of HTTP basic
45+
sophisticated authentication to Ironic instead of HTTP basic
5546
authentication. Its `identity API`_ is served using uWSGI and Nginx on the
5647
port 5000, the systemd service is called ``uwsgi@keystone-public``.
5748

@@ -92,7 +83,7 @@ Parameters
9283
192.168.122.1
9384
9485
This IP address is used for all provisioning traffic: TFTP, iPXE,
95-
call-backs to Ironic and Inspector. It is also used for the traffic between
86+
and call-backs to Ironic. It is also used for the traffic between
9687
the services.
9788

9889
``public_ip``
@@ -129,11 +120,11 @@ Log locations
129120
~~~~~~~~~~~~~
130121

131122
journald
132-
is used for logging from most services. For example, to get Inspector logs:
123+
is used for logging from most services. For example, to get Ironic logs:
133124

134125
.. code-block:: console
135126
136-
$ sudo journalctl -u ironic-inspector
127+
$ sudo journalctl -u ironic
137128
138129
``/var/log/ironic/deploy``
139130
contains tarballs with ramdisk logs from deployment or cleaning. The file
@@ -148,10 +139,6 @@ journald
148139
$ less journal # for ramdisks that use systemd, e.g. DIB-built
149140
$ less var/log/ironic-python-agent.log # for tinyIPA and similar
150141
151-
``/var/log/ironic-inspector/ramdisk``
152-
contains tarballs with ramdisk logs from inspection. They are very similar
153-
to ramdisk logs from deployment and cleaning.
154-
155142
``/var/log/nginx/``
156143
contains logs for serving files (iPXE scripts, images, virtual media ISOs).
157144

@@ -190,15 +177,11 @@ Runtime locations
190177
when cleaning or deploying.
191178

192179
``/run/ironic``
193-
When TLS is enabled, this directory contains unix sockets of Ironic and
194-
Inspector, which Nginx uses to pass requests.
180+
When TLS is enabled, this directory contains the unix socket of Ironic,
181+
that Nginx uses to pass requests.
195182

196183
.. _ironic: https://docs.openstack.org/ironic/latest/
197184
.. _bare metal API: https://docs.openstack.org/api-ref/baremetal/
198-
.. _ironic-inspector: https://docs.openstack.org/ironic-inspector/latest/
199-
.. _in-band inspection: https://docs.openstack.org/ironic/latest/admin/inspection/inspector.html
200-
.. _introspection API: https://docs.openstack.org/api-ref/baremetal-introspection/
201-
.. _native in-band inspection: https://docs.openstack.org/ironic/latest/admin/inspection/index.html
202185
.. _mariadb: https://mariadb.org/
203186
.. _nginx: https://nginx.org/
204187
.. _dnsmasq: https://dnsmasq.org/

doc/source/user/howto.rst

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,6 @@ example:
2222
export OS_CLOUD=bifrost
2323
baremetal node list
2424
25-
.. note::
26-
Previously, a separate cloud ``bifrost-inspector`` was provided for
27-
introspection commands. It is now deprecated, the main ``bifrost`` cloud
28-
should always be used.
29-
3025
Environment variables
3126
---------------------
3227

playbooks/ci/run.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,3 @@
2323
ENABLE_TLS: "{{ enable_tls | default(false) | bool | lower }}"
2424
ENABLE_PROMETHEUS_EXPORTER: "{{ enable_prometheus_exporter | default(false) | bool | lower }}"
2525
USE_VMEDIA: "{{ use_vmedia | default(false) | bool | lower }}"
26-
USE_INSPECTOR: "{{ use_inspector | default(false) | bool | lower }}"

playbooks/roles/bifrost-ironic-install/README.md

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ bifrost-ironic-install role.
2525
testing: false
2626

2727
Enables no-authentication mode where no authentication is used for accessing
28-
API services. The default setting of ``true`` makes ironic and ironic-inspector
28+
API services. The default setting of ``true`` makes ironic
2929
either use keystone (if ``enable_keystone`` is true) or HTTP basic auth
3030
(use ``admin_username``/``admin_password`` and
3131
``default_username``/``default_password`` to configure).
@@ -196,9 +196,6 @@ remote_syslog_port: String value, default is 514. If set, custom port is
196196
ironic_log_dir: String value, default undefined. If set, it specifies a
197197
a non-default log directory for ironic.
198198

199-
inspector_log_dir: String value, default undefined. If set, it specifies a
200-
non-default log directory for inspector.
201-
202199
nginx_log_dir: String value, default /var/log/nginx. It specifies a log
203200
directory for nginx.
204201

@@ -207,9 +204,9 @@ fast_track: Boolean setting to enable ironic to leverage an already running
207204
immediately as opposed to waiting for a complete system reboot.
208205

209206
power_off_after_inspection: Boolean setting governing the behavior
210-
of ironic-inspector's processing.
207+
of inspection.
211208
The default is to not power-off machines
212-
effectively enabling the Inspection to
209+
effectively enabling moving from Inspection to
213210
Deployment without the need to reboot
214211
the physical machine.
215212

@@ -222,22 +219,7 @@ enable_credential_less_deploy: Boolean setting that enables the experimental
222219

223220
### Hardware Inspection Support
224221

225-
Bifrost also supports the installation of ironic-inspector in standalone
226-
mode, which enables the user to allow for identification of the system
227-
properties via a workflow.
228-
229-
enable_inspector: Boolean value, default true. Set this value to false to
230-
prevent installing ironic-inspector.
231-
232-
inspector_debug: Boolean value, default true. Enables debug level logging
233-
for inspector. Note that this default may change in
234-
future.
235-
236-
inspector_manage_firewall: Boolean value, default false. Controls whether
237-
ironic-inspector should manage the firewall
238-
rules of the host. Bifrost's installation playbook
239-
adds the rule to permit the callback traffic,
240-
so you shouldn't need to enable this.
222+
Bifrost also supports identification of the system properties via a workflow.
241223

242224
inspector_port_addition: Defines which MAC addresses to add as ports during
243225
introspection. Possible values are `all`, `active`,
@@ -247,10 +229,6 @@ inspector_keep_ports: Defines which ports on a node to keep after
247229
introspection. Possible values are `all`, `present`,
248230
and `added`. The default value is `present`.
249231

250-
inspector_store_ramdisk_logs: Boolean value, default true. Controls if the
251-
inspector agent will retain logs from the
252-
ramdisk that called the inspector service.
253-
254232
enable_inspector_discovery: Boolean value, default false. This instructs
255233
inspector to add new nodes that are discovered
256234
via PXE booting on the same network to ironic.
@@ -266,11 +244,6 @@ inspector_extra_kernel_options: String value, default undefined. Extra
266244
kernel parameters for the inspector default
267245
PXE configuration.
268246

269-
inspector_processing_hooks: String value containing a comma-separated list,
270-
default undefined. Use this to specify a
271-
non-default list of comma-separated processing
272-
hooks for inspector.
273-
274247
### Virtual Environment Install
275248

276249
Bifrost installs ironic and other services into a python virtual environment
@@ -315,10 +288,6 @@ Please note, if the hostname is set to something besides``localhost``,
315288
then the playbook will not attempt to create databases, database users,
316289
and grant privileges.
317290

318-
Similarly, if hardware introspection support is installed, the
319-
nearly identical data structure for inspector can be found in the
320-
same file named ``ironic_inspector``.
321-
322291
Notes
323292
-----
324293

playbooks/roles/bifrost-ironic-install/defaults/main.yml

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ file_url_port: "8080"
1818
file_url_port_tls: "8083"
1919
ironicclient_source_install: false
2020
openstacksdk_source_install: false
21-
ironicinspector_source_install: true
22-
ironicinspectorclient_source_install: false
2321
sushy_source_install: false
2422
staging_drivers_source_install: true
2523
prometheus_exporter_source_install: true
@@ -174,8 +172,6 @@ ironicclient_git_url: https://opendev.org/openstack/python-ironicclient
174172
openstacksdk_git_url: https://opendev.org/openstack/openstacksdk
175173
ironic_git_url: https://opendev.org/openstack/ironic
176174
staging_drivers_git_url: https://opendev.org/x/ironic-staging-drivers
177-
ironicinspector_git_url: https://opendev.org/openstack/ironic-inspector
178-
ironicinspectorclient_git_url: https://opendev.org/openstack/python-ironic-inspector-client
179175
ipa_git_url: https://opendev.org/openstack/ironic-python-agent
180176
ipa_builder_git_url: https://opendev.org/openstack/ironic-python-agent-builder
181177
prometheus_exporter_git_url: https://opendev.org/openstack/ironic-prometheus-exporter
@@ -187,8 +183,6 @@ openstacksdk_git_folder: /opt/stack/openstacksdk
187183
dib_git_folder: /opt/stack/diskimage-builder
188184
reqs_git_folder: /opt/stack/requirements
189185
staging_drivers_git_folder: /opt/stack/ironic-staging-drivers
190-
ironicinspector_git_folder: /opt/stack/ironic-inspector
191-
ironicinspectorclient_git_folder: /opt/stack/python-ironic-inspector-client
192186
sushy_git_folder: /opt/stack/sushy
193187
ipa_git_folder: /opt/stack/ironic-python-agent
194188
ipa_builder_git_folder: /opt/stack/ironic-python-agent-builder
@@ -276,19 +270,9 @@ inventory_dns: False
276270
# Several NTP servers can be specified, separated by commas.
277271
# dnsmasq_ntp_servers:
278272

279-
# Settings to enable the use of inspector
280-
enable_inspector: false
281-
inspector_debug: true
282-
inspector_manage_firewall: false
283-
284273
# Set ironic_log_dir to use a non-default log directory for ironic.
285274
#ironic_log_dir: /var/log/ironic
286275

287-
# Set inspector_log_dir to use a non-default log directory for inspector.
288-
#inspector_log_dir:
289-
inspector_ramdisk_logs_local_path: /var/log/ironic-inspector/ramdisk
290-
291-
inspector_store_ramdisk_logs: true
292276
# Note: inspector_port_addition has three valid values: all, active, pxe
293277
inspector_port_addition: "pxe"
294278

@@ -299,10 +283,6 @@ inspector_keep_ports: "present"
299283
# PXE configuration.
300284
inspector_extra_kernel_options: "ipa-inspection-collectors=default,logs"
301285

302-
# Set inspector_processing_hooks to specify a non-default comma-separated
303-
# list of processing hooks for inspector.
304-
#inspector_processing_hooks:
305-
306286
enable_inspector_discovery: false
307287

308288
inspector_default_node_driver: "{{ 'manual-management' if enable_credential_less_deploy | bool else 'ipmi' }}"
@@ -338,7 +318,6 @@ enable_keystone: false
338318
# Service URLs used for communication with them.
339319
api_protocol: "{{ 'https' if enable_tls | bool else 'http' }}"
340320
ironic_api_url: "{{ api_protocol }}://{{ internal_ip }}:6385"
341-
ironic_inspector_api_url: "{{ api_protocol }}://{{ internal_ip }}:5050"
342321
keystone_api_url: "{{ api_protocol }}://{{ internal_ip }}:5000/v3"
343322

344323
# Directory (on the controller) to keep the passwords
@@ -373,21 +352,6 @@ ironic:
373352
password: "{{ ironic_db_password }}"
374353
host: "localhost"
375354

376-
ironic_inspector:
377-
service_catalog:
378-
username: "ironic_inspector"
379-
password: "{{ service_password }}"
380-
auth_url: "{{ keystone_api_url }}"
381-
project_name: "service"
382-
keystone:
383-
default_username: "{{ default_username }}"
384-
default_password: "{{ default_password }}"
385-
database:
386-
name: "inspector"
387-
username: "inspector"
388-
password: "{{ ironic_db_password }}"
389-
host: "localhost"
390-
391355
# NOTE(dtantsur): keep in sync with bifrost-keystone-install
392356
keystone:
393357
debug: true
@@ -420,7 +384,6 @@ vmedia_enable_tls: "{{ enable_tls }}"
420384
tls_root: /etc/bifrost
421385
tls_certificate_path: "{{ tls_root }}/bifrost.crt"
422386
ironic_private_key_path: /etc/ironic/ironic.pem
423-
ironic_inspector_private_key_path: /etc/ironic-inspector/inspector.pem
424387
httpboot_private_key_path: /etc/nginx/httpboot.pem
425388
# If true, the conductor's JSON RPC will be available globally (and with TLS)
426389
expose_json_rpc: false

playbooks/roles/bifrost-ironic-install/tasks/bootstrap.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -245,10 +245,6 @@
245245
state: directory
246246
mode: "0755"
247247

248-
- name: "Install ironic-inspector to permit use of inspection interface"
249-
include_tasks: inspector_bootstrap.yml
250-
when: enable_inspector | bool
251-
252248
- name: "Get ironic install location"
253249
shell: echo $(dirname $(which ironic))
254250
register: ironic_install_prefix
@@ -478,9 +474,9 @@
478474
- ansible_os_family == 'RedHat'
479475
- ansible_selinux.status == 'enabled'
480476
block:
481-
- name: "Allow nginx, ironic, inspector and IPA ports on SELinux"
477+
- name: "Allow nginx, ironic and IPA ports on SELinux"
482478
seport:
483-
ports: "{{ file_url_port }},{{ file_url_port_tls }},6385,5050,9999"
479+
ports: "{{ file_url_port }},{{ file_url_port_tls }},6385,9999"
484480
proto: tcp
485481
setype: http_port_t
486482
state: present

playbooks/roles/bifrost-ironic-install/tasks/create_tftpboot.yml

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -174,17 +174,12 @@
174174

175175
# TODO(TheJulia): The pxelinux folder is statically coded in ironic.
176176
# For now, we need to use it, but we can patch that.
177-
- name: "Inspector - Place default tftp boot file in {{ http_boot_folder }}/pxelinux.cfg/"
177+
- name: "Place default tftp boot file in {{ http_boot_folder }}/pxelinux.cfg/"
178178
template:
179-
src: inspector-default-boot-ipxe.j2
179+
src: default-boot-ipxe.j2
180180
dest: "{{ http_boot_folder }}/pxelinux.cfg/default"
181181
owner: ironic
182182
group: ironic
183183
mode: "0644"
184184
vars:
185-
inspection_callback_url: >-
186-
{%- if enable_inspector | bool -%}
187-
{{ api_protocol }}://{{ internal_ip }}:5050/v1/continue
188-
{%- else -%}
189-
{{ api_protocol }}://{{ internal_ip }}:6385/v1/continue_inspection
190-
{%- endif -%}
185+
inspection_callback_url: "{{ api_protocol }}://{{ internal_ip }}:6385/v1/continue_inspection"

0 commit comments

Comments
 (0)