From 6a83e1d75b9b3b1b83d6573ab8cd73c5e660606c Mon Sep 17 00:00:00 2001
From: Mark Goddard <mark@stackhpc.com>
Date: Wed, 15 May 2024 17:19:37 +0100
Subject: [PATCH] CI: Test bare metal compute registration

Change-Id: Iaef2420c1f12fa4296c0e1c3d5afc4687d4b3c4a
---
 .../kayobe-overcloud-base/baremetal-compute.j2     | 14 ++++++++++++++
 playbooks/kayobe-overcloud-base/baremetal.j2       |  2 ++
 playbooks/kayobe-overcloud-base/pre.yml            | 10 ++++++++++
 playbooks/kayobe-overcloud-base/run.yml            |  8 ++++++++
 4 files changed, 34 insertions(+)
 create mode 100644 playbooks/kayobe-overcloud-base/baremetal-compute.j2
 create mode 100644 playbooks/kayobe-overcloud-base/baremetal.j2

diff --git a/playbooks/kayobe-overcloud-base/baremetal-compute.j2 b/playbooks/kayobe-overcloud-base/baremetal-compute.j2
new file mode 100644
index 00000000..b0ba3f32
--- /dev/null
+++ b/playbooks/kayobe-overcloud-base/baremetal-compute.j2
@@ -0,0 +1,14 @@
+{% raw %}
+---
+ironic_driver: ipmi
+# Cheating a little here - use the first port of the Tenks VirtualBMC.
+ironic_driver_info:
+  ipmi_address: 0.0.0.0
+  ipmi_username: username
+  ipmi_password: password
+  ipmi_port: 6230
+ironic_properties:
+  capabilities: "{{ ironic_capabilities }}"
+ironic_resource_class: "example_resource_class"
+ironic_capabilities: "boot_option:local,boot_mode:uefi"
+{% endraw %}
diff --git a/playbooks/kayobe-overcloud-base/baremetal.j2 b/playbooks/kayobe-overcloud-base/baremetal.j2
new file mode 100644
index 00000000..01346825
--- /dev/null
+++ b/playbooks/kayobe-overcloud-base/baremetal.j2
@@ -0,0 +1,2 @@
+[baremetal-compute]
+hv100
diff --git a/playbooks/kayobe-overcloud-base/pre.yml b/playbooks/kayobe-overcloud-base/pre.yml
index f696974b..b80e67ad 100644
--- a/playbooks/kayobe-overcloud-base/pre.yml
+++ b/playbooks/kayobe-overcloud-base/pre.yml
@@ -32,6 +32,16 @@
         replace: 'default_boot_mode: "uefi"'
       when: ironic_boot_mode == 'uefi'
 
+    - name: Ensure baremetal inventory exists
+      template:
+        src: baremetal.j2
+        dest: "{{ kayobe_config_src_dir }}/etc/kayobe/inventory/baremetal"
+
+    - name: Ensure baremetal-compute group_vars exists
+      template:
+        src: baremetal-compute.j2
+        dest: "{{ kayobe_config_src_dir }}/etc/kayobe/inventory/group_vars/baremetal-compute"
+
     - name: Ensure kayobe is installed
       shell:
         cmd: dev/install.sh &> {{ logs_dir }}/ansible/install
diff --git a/playbooks/kayobe-overcloud-base/run.yml b/playbooks/kayobe-overcloud-base/run.yml
index ddcae18e..d296d684 100644
--- a/playbooks/kayobe-overcloud-base/run.yml
+++ b/playbooks/kayobe-overcloud-base/run.yml
@@ -41,3 +41,11 @@
         cmd: dev/overcloud-test-baremetal.sh &> {{ logs_dir }}/ansible/overcloud-test-baremetal
         chdir: "{{ kayobe_src_dir }}"
         executable: /bin/bash
+
+    - name: Register dummy baremetal compute nodes
+      shell:
+        cmd: >
+          source {{ kayobe_src_dir }}/dev/environment-setup.sh &&
+          source "${KOLLA_CONFIG_PATH:-/etc/kolla}/admin-openrc.sh" &&
+          kayobe baremetal compute register &> {{ logs_dir }}/ansible/baremetal-compute-register
+        executable: /bin/bash
-- 
GitLab