diff --git a/ansible/inventory/group_vars/all/bifrost b/ansible/inventory/group_vars/all/bifrost index d780cfb10..788dddd12 100644 --- a/ansible/inventory/group_vars/all/bifrost +++ b/ansible/inventory/group_vars/all/bifrost @@ -99,7 +99,7 @@ kolla_bifrost_inspector_port_addition: "{{ inspector_add_ports }}" kolla_bifrost_inspector_extra_kernel_options: "{{ inspector_extra_kernel_options }}" # List of introspection rules for Bifrost's Ironic Inspector service. -kolla_bifrost_inspector_rules: "{{ inspector_rules }}" +kolla_bifrost_inspector_rules: "{{ inspector_rules + [inspector_rule_legacy_deploy_kernel] }}" # Ironic inspector IPMI username to set. kolla_bifrost_inspector_ipmi_username: "{{ ipmi_username }}" @@ -117,6 +117,9 @@ kolla_bifrost_inspector_deploy_kernel: "http://{{ provision_oc_net_name | net_ip # Ironic inspector deployment ramdisk location. kolla_bifrost_inspector_deploy_ramdisk: "http://{{ provision_oc_net_name | net_ip }}:8080/ipa.initramfs" +# Ironic inspector legacy deployment kernel location. +kolla_bifrost_inspector_legacy_deploy_kernel: "http://{{ provision_oc_net_name | net_ip }}:8080/ipa.vmlinuz" + # Timeout of hardware inspection on overcloud nodes, in seconds. Default is # {{ inspector_inspection_timeout }}. kolla_bifrost_inspection_timeout: "{{ inspector_inspection_timeout }}" diff --git a/ansible/inventory/group_vars/all/inspector b/ansible/inventory/group_vars/all/inspector index 7683c9724..1abe5fcaf 100644 --- a/ansible/inventory/group_vars/all/inspector +++ b/ansible/inventory/group_vars/all/inspector @@ -119,6 +119,18 @@ inspector_rule_deploy_kernel: path: "driver_info/deploy_kernel" value: "{{ inspector_rule_var_deploy_kernel }}" +# Ironic inspector rule to update deployment kernel from legacy location. +inspector_rule_legacy_deploy_kernel: + description: "Update deploy kernel from legacy" + conditions: + - field: "node://driver_info.deploy_kernel" + op: "eq" + value: "{{ inspector_rule_var_legacy_deploy_kernel }}" + actions: + - action: "set-attribute" + path: "driver_info/deploy_kernel" + value: "{{ inspector_rule_var_deploy_kernel }}" + # Deployment ramdisk referenced by inspector rule. inspector_rule_var_deploy_ramdisk: diff --git a/ansible/seed-introspection-rules.yml b/ansible/seed-introspection-rules.yml index 247f2929a..185b1b454 100644 --- a/ansible/seed-introspection-rules.yml +++ b/ansible/seed-introspection-rules.yml @@ -17,3 +17,4 @@ inspector_rule_var_lldp_switch_port_interface: "{{ kolla_bifrost_inspector_lldp_switch_port_interface }}" inspector_rule_var_deploy_kernel: "{{ kolla_bifrost_inspector_deploy_kernel }}" inspector_rule_var_deploy_ramdisk: "{{ kolla_bifrost_inspector_deploy_ramdisk }}" + inspector_rule_var_legacy_deploy_kernel: "{{ kolla_bifrost_inspector_legacy_deploy_kernel }}" diff --git a/etc/kayobe/bifrost.yml b/etc/kayobe/bifrost.yml index a9eba19dd..d15d18613 100644 --- a/etc/kayobe/bifrost.yml +++ b/etc/kayobe/bifrost.yml @@ -116,6 +116,9 @@ # Ironic inspector deployment ramdisk location. #kolla_bifrost_inspector_deploy_ramdisk: +# Ironic inspector legacy deployment kernel location. +#kolla_bifrost_inspector_legacy_deploy_kernel: + # Timeout of hardware inspection on overcloud nodes, in seconds. Default is # {{ inspector_inspection_timeout }}. #kolla_bifrost_inspection_timeout: diff --git a/releasenotes/notes/update-deploy-kernel-6943f3ad3cb82c51.yaml b/releasenotes/notes/update-deploy-kernel-6943f3ad3cb82c51.yaml new file mode 100644 index 000000000..c098aec70 --- /dev/null +++ b/releasenotes/notes/update-deploy-kernel-6943f3ad3cb82c51.yaml @@ -0,0 +1,20 @@ +--- +upgrade: + - | + Adds an introspection rule to update the location of the deployment kernel + registered in existing Ironic nodes. Nodes discovered on a deployment + running the Train release or earlier may still be using the ``ipa.vmlinuz`` + kernel, which stays unchanged when deployment images get updated. If only + default introspection rules are in use, existing nodes may be updated from + the Bifrost container with the following command: + + ``OS_CLOUD=bifrost baremetal introspection reprocess $NODE_UUID_OR_NAME`` + + If non-default rules are used, reprocessing may revert any customisation + done by the operator. In this case, a more cautious approach is to update + the deployment kernel location manually: + + ``OS_CLOUD=bifrost baremetal node set --driver-info deploy_kernel= $NODE_UUID_OR_NAME`` + + If the ``kolla_bifrost_inspector_rules`` list is customised, the rule + ``inspector_rule_legacy_deploy_kernel`` should be added to it.