Soon nova will be switched off by default on the undercloud and all overcloud deployments will effectively be deployed-server based (either provisioned manually or via the baremetal provision command)
This means that the docs for running firstboot scripts[1] will no longer work, and neither will our collection of firstboot scripts[2]. In this email I'm going to propose what we could do about this situation and if there are still unresolved issues by the PTG it might be worth having a short session on it.
The baremetal provisioning implementation
already uses cloud-init cloud-config internally for user
creation and key injection[3] so I'm going to propose an
enhancement the the baremetal provisioning yaml format so that
custom cloud-config instructions can be included either inline
or as a file path.
I think it is worth going through each firstboot script[2] and deciding what its fate should be (other than being deprecated in Ussuri):
This has no parameters, so it could be
converted to a standalone cloud-config file, but should it? Can
this be achieved with kernel args? Does it require a reboot
anyway, and so can be done with extraconfig?
I'm not sure why this is implemented as first
boot, it seems to consume the parameter NetConfigDataLookup
and transforms it to the format os-net-config needs for the
file
/etc/os-net-config/mapping.yaml. It looks
like this functionality should be moved to where os-net-config
is actually invoked, and the
NetConfigDataLookup parameter should be
officially supported.
I suggest
deleting this and including a cloud-config version in the
baremetal provisioning docs.
Delete this, there is already an abstraction for
this built into the baremetal provisioning format[4]
Delete this and include it as an example in the
baremetal provisioning docs.
Maybe this could be converted to an
extraconfig/all_nodes script[5], but it would be better if
this sort of thing could be implemented as an ansible role
or playbook, are there any plans for an extraconfig
mechanism which uses plain ansible semantics?
cheers
[2]
https://opendev.org/openstack/tripleo-heat-templates/src/branch/master/firstboot
[5]
https://opendev.org/openstack/tripleo-heat-templates/src/branch/master/extraconfig/all_nodes