From 2f2387fc3b0a59c54df32405f9cb445a306554fe Mon Sep 17 00:00:00 2001
From: Pierre Riteau <pierre@stackhpc.com>
Date: Tue, 27 Sep 2022 11:50:38 +0200
Subject: [PATCH] Remove support for Ironic boot option

This has been dropped upstream in Ironic [1].

[1] https://review.opendev.org/c/openstack/ironic/+/850240

Change-Id: Ib95cdadb00a84edbf6d17de1c2bd450c002e798e
---
 ansible/inventory/group_vars/all/inspector             | 10 ----------
 ansible/inventory/group_vars/all/ironic                |  4 ----
 ansible/roles/kolla-openstack/defaults/main.yml        |  4 ----
 ansible/roles/kolla-openstack/templates/ironic.conf.j2 |  5 -----
 etc/kayobe/inspector.yml                               |  3 ---
 etc/kayobe/ironic.yml                                  |  4 ----
 .../notes/ironic-boot-option-2abd88608e4c5cdd.yaml     |  8 ++++++++
 7 files changed, 8 insertions(+), 30 deletions(-)
 create mode 100644 releasenotes/notes/ironic-boot-option-2abd88608e4c5cdd.yaml

diff --git a/ansible/inventory/group_vars/all/inspector b/ansible/inventory/group_vars/all/inspector
index a84a98a49..7683c9724 100644
--- a/ansible/inventory/group_vars/all/inspector
+++ b/ansible/inventory/group_vars/all/inspector
@@ -133,15 +133,6 @@ inspector_rule_deploy_ramdisk:
       path: "driver_info/deploy_ramdisk"
       value: "{{ inspector_rule_var_deploy_ramdisk }}"
 
-# Ironic inspector rule to set local boot capability
-inspector_rule_local_boot:
-  description: "Set local boot capability"
-  conditions: []
-  actions:
-    - action: "set-capability"
-      name: "boot_option"
-      value: "local"
-
 # Ironic inspector rule to initialise root device hints.
 inspector_rule_root_hint_init:
   description: "Initialise root device hint"
@@ -306,7 +297,6 @@ inspector_rules_default:
   - "{{ inspector_rule_ipmi_credentials }}"
   - "{{ inspector_rule_deploy_kernel }}"
   - "{{ inspector_rule_deploy_ramdisk }}"
-  - "{{ inspector_rule_local_boot }}"
   - "{{ inspector_rule_root_hint_init }}"
   - "{{ inspector_rule_root_hint_serial }}"
   - "{{ inspector_rule_set_pxe_interface_mac }}"
diff --git a/ansible/inventory/group_vars/all/ironic b/ansible/inventory/group_vars/all/ironic
index 7b2ba9566..103d46f54 100644
--- a/ansible/inventory/group_vars/all/ironic
+++ b/ansible/inventory/group_vars/all/ironic
@@ -110,10 +110,6 @@ kolla_ironic_enabled_vendor_interfaces:
 # vendor_interface field set.
 kolla_ironic_default_vendor_interface: no-vendor
 
-# Default boot option to use when no boot option is requested in node's
-# driver_info.
-kolla_ironic_default_boot_option: local
-
 # Name of the Neutron network to use for cleaning.
 kolla_ironic_cleaning_network: "{{ kolla_ironic_provisioning_network if cleaning_net_name == provision_wl_net_name else 'cleaning-net' }}"
 
diff --git a/ansible/roles/kolla-openstack/defaults/main.yml b/ansible/roles/kolla-openstack/defaults/main.yml
index b46909813..8e11cb365 100644
--- a/ansible/roles/kolla-openstack/defaults/main.yml
+++ b/ansible/roles/kolla-openstack/defaults/main.yml
@@ -249,10 +249,6 @@ kolla_ironic_enabled_vendor_interfaces: []
 # vendor_interface field set.
 kolla_ironic_default_vendor_interface:
 
-# Default boot option to use when no boot option is requested in node's
-# driver_info.
-kolla_ironic_default_boot_option:
-
 # Name or UUID of the Neutron network to use for cleaning.
 kolla_ironic_cleaning_network:
 
diff --git a/ansible/roles/kolla-openstack/templates/ironic.conf.j2 b/ansible/roles/kolla-openstack/templates/ironic.conf.j2
index b5d519418..cdf5e401d 100644
--- a/ansible/roles/kolla-openstack/templates/ironic.conf.j2
+++ b/ansible/roles/kolla-openstack/templates/ironic.conf.j2
@@ -18,11 +18,6 @@ enabled_hardware_types: {{ kolla_ironic_enabled_hardware_types | join(',') }}
 [agent]
 deploy_logs_local_path = /var/log/kolla/ironic/deploy
 
-[deploy]
-{% if kolla_ironic_default_boot_option %}
-default_boot_option = {{ kolla_ironic_default_boot_option }}
-{% endif %}
-
 [neutron]
 cleaning_network = {{ kolla_ironic_cleaning_network }}
 provisioning_network = {{ kolla_ironic_provisioning_network }}
diff --git a/etc/kayobe/inspector.yml b/etc/kayobe/inspector.yml
index a35537392..90c5d8750 100644
--- a/etc/kayobe/inspector.yml
+++ b/etc/kayobe/inspector.yml
@@ -84,9 +84,6 @@
 # Ironic inspector rule to set deployment ramdisk.
 #inspector_rule_deploy_ramdisk:
 
-# Ironic inspector rule to set local boot capability
-#inspector_rule_local_boot:
-
 # Ironic inspector rule to initialise root device hints.
 #inspector_rule_root_hint_init:
 
diff --git a/etc/kayobe/ironic.yml b/etc/kayobe/ironic.yml
index 6083f7015..1298fcb67 100644
--- a/etc/kayobe/ironic.yml
+++ b/etc/kayobe/ironic.yml
@@ -91,10 +91,6 @@
 # vendor_interface field set.
 #kolla_ironic_default_vendor_interface:
 
-# Default boot option to use when no boot option is requested in node's
-# driver_info.
-#kolla_ironic_default_boot_option:
-
 # Name of the Neutron network to use for cleaning.
 #kolla_ironic_cleaning_network:
 
diff --git a/releasenotes/notes/ironic-boot-option-2abd88608e4c5cdd.yaml b/releasenotes/notes/ironic-boot-option-2abd88608e4c5cdd.yaml
new file mode 100644
index 000000000..1949a5f70
--- /dev/null
+++ b/releasenotes/notes/ironic-boot-option-2abd88608e4c5cdd.yaml
@@ -0,0 +1,8 @@
+---
+upgrade:
+  - |
+    Removes the ``kolla_ironic_default_boot_option`` variable and the
+    ``inspector_rule_local_boot`` inspector rule, since Ironic has removed
+    support for defining a boot option configuration. The ``Set local boot
+    capability`` rule should be removed from Bifrost and Ironic Inspector by
+    the operator.