25 Commits

Author SHA1 Message Date
Mark Goddard
d0db1f1032 Change default boot mode to UEFI
Change the default boot mode to UEFI. This is in line with the Yoga
releases of Bifrost and Ironic.

Depends-On: https://review.opendev.org/c/openstack/kayobe/+/827667

Change-Id: I5b6f432dd47b6bb5b7dbfe82a4e4238cefcda5fe
2024-09-19 10:49:24 +00:00
Mark Goddard
fc1b42c60d Support UEFI boot mode
Adds support for using UEFI boot mode for nodes. This is done via node
capabilities, as it is in Ironic.

The default boot mode is now configurable via the default_boot_mode
variable. The default boot mode remains legacy BIOS for now, although
this may change.

Updates the existing CI jobs, with the OVS jobs using BIOS boot mode,
and the linuxbridge jobs using UEFI boot mode.

Depends-On: https://github.com/stackhpc/ansible-role-libvirt-vm/pull/83
Depends-On: https://github.com/stackhpc/ansible-role-libvirt-host/pull/50
Depends-On: https://review.opendev.org/c/openstack/kayobe/+/827486

Change-Id: Ifaf95ecfd4f6e925d3c69d4b324fdf2cd6b0ca52
2022-02-08 10:52:28 +00:00
Mark Goddard
c5c18ce04f Allow setting node and volume name prefixes per-spec
Adds support for setting node and volume name prefixes on a per-spec
basis.  This allows for different node specifications to use different
names, e.g.  'controller' vs 'compute'.

This change also fixes an issue where node names were not globally unique, only
unique on a given hypervisor. This could cause issues if used with multiple
hypervisors.

This has been done by rewriting the scheduling logic, replacing the 'node
index' concept with a more concrete reservation of IPMI ports (which are
allocated per hypervisor), and decoupling this from generation of node names
(which are allocated globally).

Change-Id: I929b18918c2886f42c4d05b37c81f3e63c69a92f
Story: 2004894
Task: 29201
Story: 31d2681
Task: 29248
2019-01-31 11:24:58 +00:00
Mark Goddard
d28635d2cf Changes to support standalone ironic
For standalone ironic deployments, such as those deployed using bifrost, there
is typically no keystone or placement service running. Use of the ironic API is
without authentication. We use clouds.yaml in this case.

Change-Id: I61ed791d019e43f6dfc632fa185f079b385c290c
Story: 2004425
Task: 28077
2018-12-20 09:48:21 +00:00
Mark Goddard
f3cc81fc55 Support legacy drivers
Adds support for pxe_ipmitool, pxe_ipmitool_socat, agent_ipmitool and
agent_ipmitool_socat drivers with virtualbmc. Also adds entries for SNMP-based
drivers.

Change-Id: I461e74e3199e02a35ee0d3ddc1f6e49c1eda0536
2018-12-19 18:55:36 +00:00
Will Miller
5e21655f8b Allow deploy_kernel/ramdisk names to be specified
You can now use either a name or a UUID for these images. Also, remove
the unnecessary setting of node states, which is now handled by the
scheduling plugin.
2018-09-20 16:55:56 +00:00
w-miller
157d433bde
Merge pull request #11 from w-miller/schedule
Improve scheduling, persist node details and add some tests
2018-09-19 09:53:41 +01:00
w-miller
9228b6c86a
Merge pull request #12 from w-miller/console-log
Document console_log_enabled flag
2018-09-19 09:46:55 +01:00
Will Miller
7c1f7aa56c Document console_log_enabled flag
This flag is present in the libvirt-vm role, so will be passed through
if specified in Tenks. Document it in Tenks so it can be used if needed.
2018-09-19 08:26:52 +00:00
Will Miller
caffd7bfaf Add new tenks_state_update plugin
Instead of just an allocations file, Tenks now uses a 'state' file. This
contains the node allocations, as well as physical network mappings and
indices. Clusters can also now be re-deployed with different specs to
update the state.
2018-09-13 16:58:50 +00:00
Will Miller
8edb3ad5c2 Improve comments for override file variables 2018-09-12 14:20:38 +00:00
Will Miller
56b0019258 Restructure playbooks for multiple commands
Much of the logic in the existing 'deploy' playbooks could be reused for
a teardown command, so it didn't make sense to duplicate this. Instead,
rename/restructure playbooks such that they refer to an area of
responsibility, rather than an action.

Also, make some changes to allow a new 'teardown' action.
2018-09-10 14:19:02 +00:00
Will Miller
21f47fd81a Add documentation about override file
Conflicts:
	README.md
	ansible/host_vars/localhost
2018-09-10 10:32:05 +00:00
Will Miller
94aee5d0ce Set interfaces and properties on Ironic nodes
Pass any interface that was specified through to Ironic; otherwise, let
Ironic decide a default for it. Also, pass through any property
key-value pairs we get.
2018-09-07 14:36:22 +00:00
Will Miller
8d1fe8266a Add defaults for all Ironic interfaces 2018-09-07 13:23:09 +00:00
Will Miller
0fdd4ec011 Remove 'bmc type' concept
We can directly refer to a node's Ironic driver rather than having an
abstraction for a BMC type.
2018-09-07 13:03:58 +00:00
Will Miller
8d02c28e5a Add Nova flavor registration 2018-09-06 16:53:20 +00:00
Will Miller
2215cce97e Add bmc_type checking for virtualbmc 2018-09-06 13:58:29 +00:00
Will Miller
7421c49937 Make specs, types and flavors more extensible
* Give specs an optional Ironic config field
* Add bmc_type field to attempt to decouple IPMI
* Add nova_flavors to allow flavor creation
2018-09-06 12:57:26 +00:00
Will Miller
81f1696263 Add Ironic enrolment Ansible role 2018-08-31 16:57:34 +00:00
Will Miller
34ebd92cad Refer to nodes, rather than VMs
The fact that the Libvirt provider is using VMs is an implementation
detail, so we should word Tenks such that it deploys clusters of nodes.
2018-08-28 16:50:02 +00:00
Will Miller
f9638bc28b Use Ansible variables for relative paths 2018-08-28 12:12:48 +00:00
Will Miller
ef7041501d Remove defaults for specs and vm_types
VM types and specifications can't really have sensible defaults since
they depend on the hypervisors' specs. Leave them empty and give format
examples in comments.
2018-08-28 11:24:33 +00:00
Will Miller
9840887e3c Rename flavours to VM types 2018-08-28 08:26:26 +00:00
Will Miller
a4c21a2d92 Remove 'controllers' group in favour of localhost
Only a single controller would have ever been required, so explicitly
referencing localhost makes more sense.

Also, remove a duplicate 'when' attribute.
2018-08-23 15:38:39 +00:00