From a9f468940282d29c846a356cf5f51a8513faad8d Mon Sep 17 00:00:00 2001 From: Maksim Malchuk Date: Wed, 5 Apr 2023 16:26:59 +0300 Subject: [PATCH] Add custom user_data content configuration for Bifrost Since I2831e58d84f1da03485f8315eccdd2e79231e584 is used by Bifrost we add custom user_data content configuration for Bifrost. Story: 2010580 Task: 47336 Change-Id: I989069f3b3b43bc7a7a2e46ef5f046b8ed7cf8d1 Signed-off-by: Maksim Malchuk --- ansible/inventory/group_vars/all/bifrost | 4 ++++ ansible/kolla-bifrost-hostvars.yml | 1 + doc/source/configuration/reference/bifrost.rst | 18 ++++++++++++++++++ etc/kayobe/bifrost.yml | 4 ++++ ...tom-user-data-content-d188c7c197b50acb.yaml | 6 ++++++ 5 files changed, 33 insertions(+) create mode 100644 releasenotes/notes/add-custom-user-data-content-d188c7c197b50acb.yaml diff --git a/ansible/inventory/group_vars/all/bifrost b/ansible/inventory/group_vars/all/bifrost index d780cfb10..d222da3b6 100644 --- a/ansible/inventory/group_vars/all/bifrost +++ b/ansible/inventory/group_vars/all/bifrost @@ -71,6 +71,10 @@ kolla_bifrost_deploy_image_filename: "deployment_image.qcow2" # Default is none. kolla_bifrost_deploy_image_rootfs: +# Custom cloud-init user-data passed to deploy of the deployment image. +# Default is an empty string. +kolla_bifrost_deploy_image_user_data_content: '' + ############################################################################### # Ironic configuration. diff --git a/ansible/kolla-bifrost-hostvars.yml b/ansible/kolla-bifrost-hostvars.yml index e43bcd7e6..2439bd968 100644 --- a/ansible/kolla-bifrost-hostvars.yml +++ b/ansible/kolla-bifrost-hostvars.yml @@ -26,6 +26,7 @@ ipv4_nameserver: "{{ resolv_nameservers }}" network_mtu: "{{ admin_oc_net_name | net_mtu or '1500' }}" vlan_id: "{{ '' if admin_oc_net_name == provision_oc_net_name else (admin_oc_net_name | net_vlan) }}" + user_data_content: "{{ kolla_bifrost_deploy_image_user_data_content }}" tasks: - block: - name: Ensure the Bifrost host variables directory exists diff --git a/doc/source/configuration/reference/bifrost.rst b/doc/source/configuration/reference/bifrost.rst index 8e37bf18e..7d3b71025 100644 --- a/doc/source/configuration/reference/bifrost.rst +++ b/doc/source/configuration/reference/bifrost.rst @@ -197,6 +197,24 @@ The name of the root disk image to deploy can be configured via the Kayobe inventory. This can be used to provision different images across the overcloud. +It can be necessary to deploy overcloud hosts with custom settings which can be +configured during provision by the cloud-init user-data configured via the +``kolla_bifrost_deploy_image_user_data_content`` option. The defaults is an +empty string. + +.. code-block:: yaml + :caption: ``bifrost.yml`` + + kolla_bifrost_deploy_image_user_data_content: | + users: + name: myuser + sudo: ALL=(ALL) NOPASSWD:ALL + shell: /bin/bash + passwd: + lock_passwd: false + + timezone: "Europe/Paris" + While only a single disk image can be built with Bifrost, starting from the Yoga 12.0.0 release, Kayobe supports building multiple disk images directly through Diskimage builder. Consult the :ref:`overcloud host disk image build diff --git a/etc/kayobe/bifrost.yml b/etc/kayobe/bifrost.yml index a9eba19dd..158ccf588 100644 --- a/etc/kayobe/bifrost.yml +++ b/etc/kayobe/bifrost.yml @@ -71,6 +71,10 @@ # Default is none. #kolla_bifrost_deploy_image_rootfs: +# Custom cloud-init user-data passed to deploy of the deployment image. +# Default is an empty string. +#kolla_bifrost_deploy_image_user_data_content: + ############################################################################### # Ironic configuration. diff --git a/releasenotes/notes/add-custom-user-data-content-d188c7c197b50acb.yaml b/releasenotes/notes/add-custom-user-data-content-d188c7c197b50acb.yaml new file mode 100644 index 000000000..748e81c1d --- /dev/null +++ b/releasenotes/notes/add-custom-user-data-content-d188c7c197b50acb.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Adds a new ``kolla_bifrost_deploy_image_user_data_content`` variable used + to define the custom user_data content used by the cloud-init for overcloud + provision.