Merge "Configure the new inspection implementation"
This commit is contained in:
commit
6065da92b1
@ -17,7 +17,8 @@ ironic-inspector_
|
|||||||
Inspector is an auxiliary service that provides `in-band inspection`_.
|
Inspector is an auxiliary service that provides `in-band inspection`_.
|
||||||
Its `introspection API`_ is served on TCP port 5050.
|
Its `introspection API`_ is served on TCP port 5050.
|
||||||
|
|
||||||
Inspector can be disabled by setting ``enable_inspector=false``.
|
Inspector can be disabled by setting ``enable_inspector=false``. In this
|
||||||
|
case, Ironic's `native in-band inspection`_ will be used.
|
||||||
|
|
||||||
mariadb_
|
mariadb_
|
||||||
MariaDB is used as a database to persistently store information.
|
MariaDB is used as a database to persistently store information.
|
||||||
@ -194,8 +195,9 @@ Runtime locations
|
|||||||
.. _ironic: https://docs.openstack.org/ironic/latest/
|
.. _ironic: https://docs.openstack.org/ironic/latest/
|
||||||
.. _bare metal API: https://docs.openstack.org/api-ref/baremetal/
|
.. _bare metal API: https://docs.openstack.org/api-ref/baremetal/
|
||||||
.. _ironic-inspector: https://docs.openstack.org/ironic-inspector/latest/
|
.. _ironic-inspector: https://docs.openstack.org/ironic-inspector/latest/
|
||||||
.. _in-band inspection: https://docs.openstack.org/ironic/latest/admin/inspection.html#in-band-inspection
|
.. _in-band inspection: https://docs.openstack.org/ironic/latest/admin/inspection/inspector.html
|
||||||
.. _introspection API: https://docs.openstack.org/api-ref/baremetal-introspection/
|
.. _introspection API: https://docs.openstack.org/api-ref/baremetal-introspection/
|
||||||
|
.. _native in-band inspection: https://docs.openstack.org/ironic/latest/admin/inspection/index.html
|
||||||
.. _mariadb: https://mariadb.org/
|
.. _mariadb: https://mariadb.org/
|
||||||
.. _nginx: https://nginx.org/
|
.. _nginx: https://nginx.org/
|
||||||
.. _dnsmasq: https://dnsmasq.org/
|
.. _dnsmasq: https://dnsmasq.org/
|
||||||
|
@ -23,3 +23,4 @@
|
|||||||
ENABLE_TLS: "{{ enable_tls | default(false) | bool | lower }}"
|
ENABLE_TLS: "{{ enable_tls | default(false) | bool | lower }}"
|
||||||
ENABLE_PROMETHEUS_EXPORTER: "{{ enable_prometheus_exporter | default(false) | bool | lower }}"
|
ENABLE_PROMETHEUS_EXPORTER: "{{ enable_prometheus_exporter | default(false) | bool | lower }}"
|
||||||
USE_VMEDIA: "{{ use_vmedia | default(false) | bool | lower }}"
|
USE_VMEDIA: "{{ use_vmedia | default(false) | bool | lower }}"
|
||||||
|
USE_INSPECTOR: "{{ use_inspector | default(true) | bool | lower }}"
|
||||||
|
@ -201,4 +201,10 @@
|
|||||||
owner: ironic
|
owner: ironic
|
||||||
group: ironic
|
group: ironic
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
when: enable_inspector | bool
|
vars:
|
||||||
|
inspection_callback_url: >-
|
||||||
|
{% if enable_inspector | bool %}
|
||||||
|
{{ api_protocol }}://{{ internal_ip }}:5050/v1/continue
|
||||||
|
{% else %}
|
||||||
|
{{ api_protocol }}://{{ internal_ip }}:6385/v1/continue_inspection
|
||||||
|
{% endif %}
|
||||||
|
@ -18,3 +18,18 @@
|
|||||||
name: ironic-inspector
|
name: ironic-inspector
|
||||||
state: restarted
|
state: restarted
|
||||||
enabled: yes
|
enabled: yes
|
||||||
|
when: enable_inspector | bool
|
||||||
|
|
||||||
|
- name: "Stop inspector if it is disabled"
|
||||||
|
service:
|
||||||
|
name: ironic-inspector
|
||||||
|
state: stopped
|
||||||
|
enabled: no
|
||||||
|
ignore_errors: true
|
||||||
|
when: not enable_inspector | bool
|
||||||
|
|
||||||
|
- name: "Remove inspector if it is disabled"
|
||||||
|
file:
|
||||||
|
path: "{{ init_dest_dir }}ironic-inspector.service"
|
||||||
|
state: absent
|
||||||
|
when: not enable_inspector | bool
|
||||||
|
@ -31,9 +31,8 @@
|
|||||||
state: started
|
state: started
|
||||||
enabled: yes
|
enabled: yes
|
||||||
|
|
||||||
- name: "Start ironic-inspector"
|
- name: "Start/stop ironic-inspector"
|
||||||
include_tasks: inspector_start.yml
|
include_tasks: inspector_start.yml
|
||||||
when: enable_inspector | bool
|
|
||||||
|
|
||||||
- name: "Stop old ironic services"
|
- name: "Stop old ironic services"
|
||||||
service:
|
service:
|
||||||
|
@ -5,6 +5,6 @@ dhcp || reboot
|
|||||||
goto introspect
|
goto introspect
|
||||||
|
|
||||||
:introspect
|
:introspect
|
||||||
kernel {{ ipa_kernel_url }} ipa-inspection-callback-url={{ api_protocol }}://{{ internal_ip }}:5050/v1/continue {% if fast_track | bool %}ipa-api-url={{ api_protocol }}://{{ internal_ip }}:6385{% endif %} systemd.journald.forward_to_console=yes BOOTIF=${mac} nofb nomodeset vga=normal {% if testing | bool %}console=ttyS0{% endif %} {{ inspector_extra_kernel_options | default('') }} ipa-insecure=1 {% if inspector_debug | bool %}ipa-debug=1{% endif %} initrd={{ ipa_ramdisk_url | basename }}
|
kernel {{ ipa_kernel_url }} ipa-inspection-callback-url={{ inspection_callback_url }} {% if fast_track | bool %}ipa-api-url={{ api_protocol }}://{{ internal_ip }}:6385{% endif %} systemd.journald.forward_to_console=yes BOOTIF=${mac} nofb nomodeset vga=normal {% if testing | bool %}console=ttyS0{% endif %} {{ inspector_extra_kernel_options | default('') }} ipa-insecure=1 {% if inspector_debug | bool %}ipa-debug=1{% endif %} initrd={{ ipa_ramdisk_url | basename }}
|
||||||
initrd {{ ipa_ramdisk_url }}
|
initrd {{ ipa_ramdisk_url }}
|
||||||
boot
|
boot
|
||||||
|
@ -8,8 +8,11 @@ debug = {{ ironic_debug | bool }}
|
|||||||
enabled_network_interfaces = noop
|
enabled_network_interfaces = noop
|
||||||
default_deploy_interface = {{ default_deploy_interface }}
|
default_deploy_interface = {{ default_deploy_interface }}
|
||||||
{% if enable_inspector | bool == true %}
|
{% if enable_inspector | bool == true %}
|
||||||
enabled_inspect_interfaces = no-inspect,inspector
|
enabled_inspect_interfaces = no-inspect,inspector,agent
|
||||||
default_inspect_interface = inspector
|
default_inspect_interface = inspector
|
||||||
|
{% else %}
|
||||||
|
enabled_inspect_interfaces = no-inspect,agent
|
||||||
|
default_inspect_interface = agent
|
||||||
{% endif %}
|
{% endif %}
|
||||||
enabled_bios_interfaces = {{ enabled_bios_interfaces }}
|
enabled_bios_interfaces = {{ enabled_bios_interfaces }}
|
||||||
enabled_boot_interfaces = {{ enabled_boot_interfaces }}
|
enabled_boot_interfaces = {{ enabled_boot_interfaces }}
|
||||||
@ -147,11 +150,13 @@ kernel_append_params = {{ ilo_kernel_params }}
|
|||||||
use_swift = False
|
use_swift = False
|
||||||
kernel_append_params = {{ redfish_kernel_params }}
|
kernel_append_params = {{ redfish_kernel_params }}
|
||||||
|
|
||||||
{% if enable_inspector | bool == true %}
|
|
||||||
[inspector]
|
[inspector]
|
||||||
power_off = {{ power_off_after_inspection }}
|
power_off = {{ power_off_after_inspection }}
|
||||||
extra_kernel_params = {{ inspector_extra_kernel_options | default('') }}
|
extra_kernel_params = {{ inspector_extra_kernel_options | default('') }}
|
||||||
require_managed_boot = False
|
require_managed_boot = False
|
||||||
|
add_ports = {{ inspector_port_addition | default('pxe') }}
|
||||||
|
keep_ports = {{ inspector_keep_ports | default('present') }}
|
||||||
|
{% if enable_inspector | bool %}
|
||||||
{% if enable_keystone | bool %}
|
{% if enable_keystone | bool %}
|
||||||
auth_type = password
|
auth_type = password
|
||||||
auth_url = {{ ironic.service_catalog.auth_url }}
|
auth_url = {{ ironic.service_catalog.auth_url }}
|
||||||
|
@ -13,12 +13,11 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
---
|
---
|
||||||
- name: Check node hardware inspection data
|
- name: Check node hardware inspection data
|
||||||
command: "baremetal introspection data save {{ uuid }}"
|
command: "baremetal node inventory save {{ uuid }}"
|
||||||
register: inspection_data
|
register: inspection_data
|
||||||
environment:
|
environment:
|
||||||
OS_CLOUD: bifrost
|
OS_CLOUD: bifrost
|
||||||
|
|
||||||
# TODO(mgoddard): More validation of data format and contents.
|
|
||||||
- name: Validate the inspection data format
|
- name: Validate the inspection data format
|
||||||
assert:
|
assert:
|
||||||
that:
|
that:
|
||||||
|
18
releasenotes/notes/new-inspection-441b578de2206415.yaml
Normal file
18
releasenotes/notes/new-inspection-441b578de2206415.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
When ``enable_inspector`` is set to ``false`` (the default is ``true``),
|
||||||
|
the new built-in inspection implementation is now configured. Note that
|
||||||
|
|
||||||
|
* The new implementation has not at the moment of writing achieved a
|
||||||
|
complete feature parity with ironic-inspector: see
|
||||||
|
https://docs.openstack.org/ironic/latest/admin/inspection/index.html
|
||||||
|
for the available features.
|
||||||
|
|
||||||
|
* Whether inspection actually runs is not defined by this parameter but
|
||||||
|
rather by ``inspect_nodes`` (or the ``--inspect`` argument to
|
||||||
|
``./bifrost-cli enroll``).
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
If ironic-inspector support is disabled via ``enable_inspector`` set to
|
||||||
|
``false``, the service will be stopped and removed on upgrade.
|
@ -35,7 +35,7 @@ TEST_VM_NUM_NODES=1
|
|||||||
DOWNLOAD_CUSTOM_DEPLOY_IMAGE=true
|
DOWNLOAD_CUSTOM_DEPLOY_IMAGE=true
|
||||||
TESTING_USER=cirros
|
TESTING_USER=cirros
|
||||||
TEST_PLAYBOOK="test-bifrost.yaml"
|
TEST_PLAYBOOK="test-bifrost.yaml"
|
||||||
USE_INSPECTOR=true
|
USE_INSPECTOR=${USE_INSPECTOR:-true}
|
||||||
INSPECT_NODES=true
|
INSPECT_NODES=true
|
||||||
INVENTORY_DHCP=false
|
INVENTORY_DHCP=false
|
||||||
INVENTORY_DHCP_STATIC_IP=false
|
INVENTORY_DHCP_STATIC_IP=false
|
||||||
|
@ -119,6 +119,12 @@
|
|||||||
test_driver: redfish
|
test_driver: redfish
|
||||||
enable_prometheus_exporter: true
|
enable_prometheus_exporter: true
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: bifrost-integration-noinspector-ubuntu-jammy
|
||||||
|
parent: bifrost-integration-tinyipa-ubuntu-jammy
|
||||||
|
vars:
|
||||||
|
use_inspector: false
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: bifrost-integration-redfish-vmedia-uefi-ubuntu-jammy
|
name: bifrost-integration-redfish-vmedia-uefi-ubuntu-jammy
|
||||||
parent: bifrost-integration-tinyipa-ubuntu-jammy
|
parent: bifrost-integration-tinyipa-ubuntu-jammy
|
||||||
@ -164,6 +170,12 @@
|
|||||||
test_driver: redfish
|
test_driver: redfish
|
||||||
enable_prometheus_exporter: true
|
enable_prometheus_exporter: true
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: bifrost-integration-noinspector-centos-9
|
||||||
|
parent: bifrost-integration-tinyipa-centos-9
|
||||||
|
vars:
|
||||||
|
use_inspector: false
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: bifrost-integration-tinyipa-debian-bullseye
|
name: bifrost-integration-tinyipa-debian-bullseye
|
||||||
parent: bifrost-integration-tinyipa
|
parent: bifrost-integration-tinyipa
|
||||||
|
@ -16,6 +16,8 @@
|
|||||||
- bifrost-integration-redfish-vmedia-uefi-ubuntu-jammy
|
- bifrost-integration-redfish-vmedia-uefi-ubuntu-jammy
|
||||||
- bifrost-integration-redfish-vmedia-uefi-centos-9
|
- bifrost-integration-redfish-vmedia-uefi-centos-9
|
||||||
- bifrost-integration-redfish-vmedia-uefi-debian-bookworm
|
- bifrost-integration-redfish-vmedia-uefi-debian-bookworm
|
||||||
|
- bifrost-integration-noinspector-centos-9
|
||||||
|
- bifrost-integration-noinspector-ubuntu-jammy
|
||||||
- bifrost-upgrade-ubuntu-jammy
|
- bifrost-upgrade-ubuntu-jammy
|
||||||
- bifrost-upgrade-keystone-centos9
|
- bifrost-upgrade-keystone-centos9
|
||||||
# Non-voting jobs
|
# Non-voting jobs
|
||||||
@ -64,6 +66,8 @@
|
|||||||
- bifrost-integration-redfish-vmedia-uefi-ubuntu-jammy
|
- bifrost-integration-redfish-vmedia-uefi-ubuntu-jammy
|
||||||
- bifrost-integration-redfish-vmedia-uefi-centos-9
|
- bifrost-integration-redfish-vmedia-uefi-centos-9
|
||||||
- bifrost-integration-redfish-vmedia-uefi-debian-bookworm
|
- bifrost-integration-redfish-vmedia-uefi-debian-bookworm
|
||||||
|
- bifrost-integration-noinspector-centos-9
|
||||||
|
- bifrost-integration-noinspector-ubuntu-jammy
|
||||||
- bifrost-upgrade-ubuntu-jammy
|
- bifrost-upgrade-ubuntu-jammy
|
||||||
- bifrost-upgrade-keystone-centos9
|
- bifrost-upgrade-keystone-centos9
|
||||||
experimental:
|
experimental:
|
||||||
|
Loading…
Reference in New Issue
Block a user