diff --git a/ansible/inspection-store.yml b/ansible/inspection-store.yml deleted file mode 100644 index d33968e6c..000000000 --- a/ansible/inspection-store.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -# Deploy/pull/reconfigure/stop/upgrade inspection data store. -# -# Follows kolla-ansible service deployment patterns. -# -# Variables: -# action: One of deploy, destroy, pull, reconfigure, upgrade - -- name: Ensure inspection store is deployed - hosts: controllers[0] - tags: - - inspection-store - roles: - - role: inspection-store - inspection_store_action: "{{ kayobe_action }}" - inspection_store_enabled: "{{ inspector_store_enabled }}" - inspection_store_port: "{{ inspector_store_port }}" - inspection_store_config_path: "{{ config_path }}/inspection-store" diff --git a/ansible/inventory/group_vars/all/bifrost b/ansible/inventory/group_vars/all/bifrost index 18eb4bb91..76042ff6b 100644 --- a/ansible/inventory/group_vars/all/bifrost +++ b/ansible/inventory/group_vars/all/bifrost @@ -68,8 +68,8 @@ kolla_bifrost_deploy_image_filename: "deployment_image.qcow2" # UUID of the root filesystem contained within the deployment image. # See below URL for instructions on how to extract it: # https://docs.openstack.org/ironic/latest/admin/raid.html#image-requirements -# Default is none. -kolla_bifrost_deploy_image_rootfs: +# Default is an empty string. +kolla_bifrost_deploy_image_rootfs: '' # Custom cloud-init user-data passed to deploy of the deployment image. # Default is an empty string. diff --git a/ansible/inventory/group_vars/all/inspector b/ansible/inventory/group_vars/all/inspector index bdf3df568..4497d39eb 100644 --- a/ansible/inventory/group_vars/all/inspector +++ b/ansible/inventory/group_vars/all/inspector @@ -395,13 +395,3 @@ inspector_rules: "{{ inspector_rules_default + inspector_rules_extra + (inspecto # applied. inspector_dell_switch_lldp_workaround_group: -############################################################################### -# Inspection store configuration. -# The inspection store provides a Swift-like service for storing inspection -# data which may be useful in environments without Swift. - -# Whether the inspection data store is enabled. -inspector_store_enabled: "{{ kolla_enable_ironic_inspector | bool and not kolla_enable_swift | bool }}" - -# Port on which the inspection data store should listen. -inspector_store_port: 8080 diff --git a/ansible/inventory/group_vars/all/ipa b/ansible/inventory/group_vars/all/ipa index 21fbff2df..e021de913 100644 --- a/ansible/inventory/group_vars/all/ipa +++ b/ansible/inventory/group_vars/all/ipa @@ -20,7 +20,7 @@ ipa_builder_source_url: "https://opendev.org/openstack/ironic-python-agent-build ipa_builder_source_version: "{{ openstack_branch }}" # List of additional build host packages to install. -ipa_build_dib_host_packages_extra: [] +ipa_build_dib_host_packages_extra: [ 'zstd' ] # List of default Diskimage Builder (DIB) elements to use when building IPA # images. Default is ["centos", "dynamic-login", "enable-serial-console", @@ -53,6 +53,7 @@ ipa_build_dib_env_default: DIB_REPOLOCATION_ironic_python_agent: "{{ ipa_build_source_url }}" DIB_REPOREF_ironic_python_agent: "{{ ipa_build_source_version }}" DIB_REPOREF_requirements: "{{ ipa_build_source_version }}" + DIB_IPA_COMPRESS_CMD: 'zstd -19' # Dictionary of additional environment variables to provide to Diskimage # Builder (DIB) during IPA image build. @@ -83,7 +84,7 @@ ipa_build_dib_git_elements_extra: [] ipa_build_dib_git_elements: >- {{ ipa_build_dib_git_elements_default + ipa_build_dib_git_elements_extra }} -# List of DIB packages to install. Default is none. +# List of DIB packages to install. Default is empty list. ipa_build_dib_packages: [] # Upper constraints file for installing packages in the virtual environment diff --git a/ansible/inventory/group_vars/all/ironic b/ansible/inventory/group_vars/all/ironic index cf7dc884e..0e37aba9d 100644 --- a/ansible/inventory/group_vars/all/ironic +++ b/ansible/inventory/group_vars/all/ironic @@ -101,20 +101,27 @@ kolla_ironic_inspection_network: "{{ kolla_ironic_provisioning_network if inspec kolla_ironic_provisioning_network: 'provision-net' # List of default kernel parameters to append for baremetal PXE boot. -kolla_ironic_pxe_append_params_default: +kolla_ironic_pxe_append_params_default: "{{ kolla_ironic_kernel_append_params_default }}" + +# List of additional kernel parameters to append for baremetal PXE boot. +kolla_ironic_pxe_append_params_extra: "{{ kolla_ironic_kernel_append_params_extra }}" + +# List of kernel parameters to append for baremetal PXE boot. +kolla_ironic_pxe_append_params: "{{ kolla_ironic_pxe_append_params_default + kolla_ironic_pxe_append_params_extra }}" + +# List of default kernel parameters to append for baremetal boot. +kolla_ironic_kernel_append_params_default: - nofb - nomodeset - vga=normal - console=tty0 - console=ttyS0,115200n8 -# List of additional kernel parameters to append for baremetal PXE boot. -kolla_ironic_pxe_append_params_extra: [] +# List of additional kernel parameters to append for baremetal boot. +kolla_ironic_kernel_append_params_extra: [] -# List of kernel parameters to append for baremetal PXE boot. -kolla_ironic_pxe_append_params: > - {{ kolla_ironic_pxe_append_params_default + - kolla_ironic_pxe_append_params_extra }} +# List of kernel parameters to append for baremetal boot. +kolla_ironic_kernel_append_params: "{{ kolla_ironic_kernel_append_params_default + kolla_ironic_kernel_append_params_extra }}" ############################################################################### # Ironic Node Configuration diff --git a/ansible/inventory/group_vars/all/kolla b/ansible/inventory/group_vars/all/kolla index f20c0e5fd..ec74668ff 100644 --- a/ansible/inventory/group_vars/all/kolla +++ b/ansible/inventory/group_vars/all/kolla @@ -63,9 +63,9 @@ kolla_base_distro: "{{ os_distribution }}" # Kolla base container image distribution version default map. # Defines default versions for each distribution. kolla_base_distro_version_default_map: { - "centos": "stream9", + "centos": "stream10", "debian": "bookworm", - "rocky": "9", + "rocky": "10", "ubuntu": "noble", } @@ -208,7 +208,7 @@ overcloud_container_image_regex_map: enabled: "{{ kolla_enable_multipathd | bool }}" - regex: "neutron-\\(server\\|metadata-agent\\)" enabled: "{{ kolla_enable_neutron | bool }}" - - regex: "neutron-\\(dhcp\\|l3\\|linuxbridge\\|openvswitch\\)-agent" + - regex: "neutron-\\(dhcp\\|l3\\|openvswitch\\)-agent" enabled: "{{ kolla_build_neutron_ovs | default(kolla_enable_neutron | bool and not kolla_enable_ovn | bool) }}" - regex: neutron-bgp-dragent enabled: "{{ kolla_enable_neutron_bgp_dragent | bool }}" diff --git a/ansible/kolla-bifrost-hostvars.yml b/ansible/kolla-bifrost-hostvars.yml index ce330fe15..d560e4d0e 100644 --- a/ansible/kolla-bifrost-hostvars.yml +++ b/ansible/kolla-bifrost-hostvars.yml @@ -19,7 +19,7 @@ bifrost_hostvars: addressing_mode: static deploy_image_filename: "{{ kolla_bifrost_deploy_image_filename }}" - deploy_image_rootfs: "{{ kolla_bifrost_deploy_image_rootfs | default(omit, true) }}" + deploy_image_rootfs: "{{ kolla_bifrost_deploy_image_rootfs }}" ipv4_interface_mac: "{% if kolla_bifrost_ipv4_interface_mac is defined %}{{ kolla_bifrost_ipv4_interface_mac }}{% else %}{% raw %}{{ extra.pxe_interface_mac | default }}{% endraw %}{% endif %}" ipv4_address: "{{ admin_oc_net_name | net_ip }}" ipv4_subnet_mask: "{{ admin_oc_net_name | net_mask }}" diff --git a/ansible/kolla-openstack.yml b/ansible/kolla-openstack.yml index c7b9d56a7..bb116330d 100644 --- a/ansible/kolla-openstack.yml +++ b/ansible/kolla-openstack.yml @@ -136,12 +136,6 @@ kolla_inspector_keep_ports: "{{ inspector_keep_ports }}" kolla_inspector_enable_discovery: "{{ inspector_enable_discovery }}" kolla_inspector_discovery_enroll_node_driver: "{{ inspector_discovery_enroll_node_driver }}" - # Ironic inspector swift store configuration. Currently only supports the - # 'fake' inspection store. - kolla_inspector_enable_swift: "{{ inspector_store_enabled }}" - kolla_inspector_swift_auth: - auth_type: none - endpoint_override: "http://{% raw %}{{ api_interface_address }}{% endraw %}:{{ inspector_store_port }}" kolla_inspector_ipa_host: "{{ groups['controllers_with_ironic_enabled_True'][0] }}" kolla_openstack_custom_config_paths_extra_multi_env_static: - "{{ kayobe_config_path }}" diff --git a/ansible/overcloud-extras.yml b/ansible/overcloud-extras.yml index ad16dc86b..0a5d4fa4e 100644 --- a/ansible/overcloud-extras.yml +++ b/ansible/overcloud-extras.yml @@ -8,5 +8,4 @@ # action: One of deploy, destroy, pull, reconfigure, upgrade - import_playbook: docker-registry.yml -- import_playbook: inspection-store.yml - import_playbook: opensm.yml diff --git a/ansible/roles/inspection-store/README.md b/ansible/roles/inspection-store/README.md deleted file mode 100644 index 4c9fb18e8..000000000 --- a/ansible/roles/inspection-store/README.md +++ /dev/null @@ -1,40 +0,0 @@ -Inspection Store -================ - -Ironic inspector can make use of Swift to store introspection data. Not all -OpenStack deployments feature Swift, so it may be useful to provide a minimal -HTTP interface that emulates Swift for storing ironic inspector's introspection -data. This role deploys such an interface using nginx. Note that no -authentication mechanism is provided. - -Requirements ------------- - -The host executing the role has the following requirements: - -* Docker engine -* Python ``docker >= 2.0.0`` - -Role Variables --------------- - -Dependencies ------------- - -None - -Example Playbook ----------------- - -The following playbook deploys an inspection store. - - --- - - hosts: all - - roles: - - role: inspection-store - -Author Information ------------------- - -- Mark Goddard () diff --git a/ansible/roles/inspection-store/defaults/main.yml b/ansible/roles/inspection-store/defaults/main.yml deleted file mode 100644 index 7d1997d53..000000000 --- a/ansible/roles/inspection-store/defaults/main.yml +++ /dev/null @@ -1,39 +0,0 @@ ---- -# Roughly follows kolla-ansible's service deployment patterns. - -# Action to perform. One of 'deploy', 'destroy', 'pull', 'reconfigure', -# 'stop', 'upgrade'. -inspection_store_action: deploy - -# Whether an inspection store is enabled. -inspection_store_enabled: true - -# Service deployment definition. -inspection_store_services: - inspection_store: - container_name: inspection_store - enabled: "{{ inspection_store_enabled }}" - image: "{{ inspection_store_image_full }}" - network_mode: host - volumes: - - "/etc/localtime:/etc/localtime:ro" - - "{{ inspection_store_config_path }}/nginx.conf:/etc/nginx/nginx.conf:ro" - - "inspection_store:/data" - -# The port on which the inspection store server should listen. -inspection_store_port: 8080 - -# Path in which to store inspection store server configuration. -inspection_store_config_path: "/etc/inspection-store" - -#################### -# Inspection Store -#################### -inspection_store_namespace: "library" -inspection_store: docker.io -inspection_store_image: "{{ inspection_store ~ '/' if inspection_store | default else '' }}{{ inspection_store_namespace ~ '/' if inspection_store_namespace else '' }}nginx" -inspection_store_tag: "stable" -inspection_store_image_full: "{{ inspection_store_image }}:{{ inspection_store_tag }}" - -inspection_store_restart_policy: "unless-stopped" -#inspection_store_restart_retries: diff --git a/ansible/roles/inspection-store/handlers/main.yml b/ansible/roles/inspection-store/handlers/main.yml deleted file mode 100644 index a75eed5c9..000000000 --- a/ansible/roles/inspection-store/handlers/main.yml +++ /dev/null @@ -1,21 +0,0 @@ ---- -- name: Restart inspection store container - kayobe_container: - name: "{{ item.value.container_name }}" - state: started - restart: True - # NOTE: The image argument shouldn't be required, but without it this - # handler fails on Ansible 2.3. Related bug: - # https://github.com/ansible/ansible/issues/21188. - image: "{{ item.value.image }}" - with_dict: "{{ inspection_store_services }}" - when: item.value.enabled - become: "{{ container_engine == 'podman' }}" - -- name: Ensure inspection store data directory exists - command: > - {{ container_engine }} exec {{ inspection_store_services.inspection_store.container_name }} - bash -c "mkdir -p /data/ironic-inspector && - chown nginx:nginx /data/ironic-inspector" - when: inspection_store_services.inspection_store.enabled - become: "{{ container_engine == 'podman' }}" diff --git a/ansible/roles/inspection-store/tasks/config.yml b/ansible/roles/inspection-store/tasks/config.yml deleted file mode 100644 index e798f0214..000000000 --- a/ansible/roles/inspection-store/tasks/config.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -- name: Ensure inspection store configuration path exists - file: - path: "{{ inspection_store_config_path }}" - state: directory - owner: "{{ ansible_facts.user_uid }}" - group: "{{ ansible_facts.user_gid }}" - mode: 0750 - become: True - -- name: Ensure inspection store server is configured - template: - src: nginx.conf - dest: "{{ inspection_store_config_path }}/nginx.conf" - become: True - notify: - - Restart inspection store container - - Ensure inspection store data directory exists diff --git a/ansible/roles/inspection-store/tasks/deploy.yml b/ansible/roles/inspection-store/tasks/deploy.yml deleted file mode 100644 index d1f8db5d8..000000000 --- a/ansible/roles/inspection-store/tasks/deploy.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -- include_tasks: config.yml -- include_tasks: start.yml diff --git a/ansible/roles/inspection-store/tasks/destroy.yml b/ansible/roles/inspection-store/tasks/destroy.yml deleted file mode 100644 index a311bf3e1..000000000 --- a/ansible/roles/inspection-store/tasks/destroy.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -- name: Ensure inspection store container is stopped - kayobe_container: - name: "{{ item.value.container_name }}" - state: "absent" - with_dict: "{{ inspection_store_services }}" - become: "{{ container_engine == 'podman' }}" - -- name: Ensure inspection store volumes are absent - kayobe_container_volume: - name: "{{ volume }}" - state: absent - with_subelements: - - "{{ inspection_store_services }}" - - volumes - when: "'/' not in volume" - failed_when: - - volume_result.rc != 0 - - "'no such volume' not in volume_result.stderr | lower" - vars: - volume: "{{ item.1.split(':')[0] }}" - become: "{{ container_engine == 'podman' }}" diff --git a/ansible/roles/inspection-store/tasks/main.yml b/ansible/roles/inspection-store/tasks/main.yml deleted file mode 100644 index 23541719d..000000000 --- a/ansible/roles/inspection-store/tasks/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -- include_tasks: "{{ inspection_store_action }}.yml" diff --git a/ansible/roles/inspection-store/tasks/pull.yml b/ansible/roles/inspection-store/tasks/pull.yml deleted file mode 100644 index 88068c305..000000000 --- a/ansible/roles/inspection-store/tasks/pull.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -- name: Pulling inspection store container image - kayobe_container_image: - name: "{{ item.value.image }}" - source: pull - state: present - with_dict: "{{ inspection_store_services }}" - when: - - item.value.enabled - - inspection_store_action != 'destroy' - become: "{{ container_engine == 'podman' }}" diff --git a/ansible/roles/inspection-store/tasks/reconfigure.yml b/ansible/roles/inspection-store/tasks/reconfigure.yml deleted file mode 100644 index f670a5b78..000000000 --- a/ansible/roles/inspection-store/tasks/reconfigure.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -- include_tasks: deploy.yml diff --git a/ansible/roles/inspection-store/tasks/start.yml b/ansible/roles/inspection-store/tasks/start.yml deleted file mode 100644 index a2735af38..000000000 --- a/ansible/roles/inspection-store/tasks/start.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -- name: Ensure inspection store container is running - kayobe_container: - image: "{{ item.value.image }}" - name: "{{ item.value.container_name }}" - ports: "{{ item.value.ports | default(omit) }}" - privileged: "{{ item.value.privileged | default(omit) }}" - read_only: "{{ item.value.read_only | default(omit) }}" - restart_policy: "{{ inspection_store_restart_policy }}" - restart_retries: "{{ inspection_store_restart_retries | default(omit) }}" - state: started - volumes: "{{ item.value.volumes }}" - network_mode: "{{ item.value.network_mode | default(omit) }}" - with_dict: "{{ inspection_store_services }}" - notify: - - Ensure inspection store data directory exists - become: "{{ container_engine == 'podman' }}" - when: item.value.enabled | bool diff --git a/ansible/roles/inspection-store/tasks/stop.yml b/ansible/roles/inspection-store/tasks/stop.yml deleted file mode 100644 index d01750c21..000000000 --- a/ansible/roles/inspection-store/tasks/stop.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -- name: Ensure inspection store container is stopped - kayobe_container: - image: "{{ item.value.image }}" - name: "{{ item.value.container_name }}" - state: "stopped" - with_dict: "{{ inspection_store_services }}" - when: - - item.value.enabled | bool - become: "{{ container_engine == 'podman' }}" diff --git a/ansible/roles/inspection-store/tasks/upgrade.yml b/ansible/roles/inspection-store/tasks/upgrade.yml deleted file mode 100644 index 99348ae91..000000000 --- a/ansible/roles/inspection-store/tasks/upgrade.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -- include_tasks: pull.yml -- include_tasks: deploy.yml diff --git a/ansible/roles/inspection-store/templates/nginx.conf b/ansible/roles/inspection-store/templates/nginx.conf deleted file mode 100644 index cea01e58d..000000000 --- a/ansible/roles/inspection-store/templates/nginx.conf +++ /dev/null @@ -1,40 +0,0 @@ -user nginx; -worker_processes 1; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - - -events { - worker_connections 1024; -} - - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - - sendfile on; - #tcp_nopush on; - - keepalive_timeout 65; - - #gzip on; - - server { - listen {{ inspection_store_port }}; - root /data; - location /ironic-inspector { - return 200 ""; - } - location /ironic-inspector/ { - dav_methods PUT DELETE; - } - } -} diff --git a/ansible/roles/kolla-ansible/templates/kolla/globals.yml b/ansible/roles/kolla-ansible/templates/kolla/globals.yml index f8a93be65..a1a01451d 100644 --- a/ansible/roles/kolla-ansible/templates/kolla/globals.yml +++ b/ansible/roles/kolla-ansible/templates/kolla/globals.yml @@ -119,7 +119,7 @@ docker_registry_username: "{{ kolla_docker_registry_username }}" #bifrost_network_address_family: "{% raw %}{{ network_address_family }}{% endraw %}" #dns_address_family: "{% raw %}{{ network_address_family }}{% endraw %}" -# Valid options are [ openvswitch, linuxbridge ] +# Valid options are [ openvswitch, ovn ] neutron_plugin_agent: "{% if kolla_enable_ovn | default(False) | bool %}ovn{% else %}openvswitch{% endif %}" # Valid options are [ internal, infoblox ] diff --git a/ansible/roles/kolla-openstack/defaults/main.yml b/ansible/roles/kolla-openstack/defaults/main.yml index 2a20e3ac7..c326bd838 100644 --- a/ansible/roles/kolla-openstack/defaults/main.yml +++ b/ansible/roles/kolla-openstack/defaults/main.yml @@ -553,7 +553,10 @@ kolla_ironic_inspection_network: # Name or UUID of the Neutron network to use for provisioning. kolla_ironic_provisioning_network: -# List of additional append parameters for baremetal PXE boot. +# List of additional append parameters for baremetal boot. +kolla_ironic_kernel_append_params: [] + +#List of additional append parameters for baremetal PXE boot. kolla_ironic_pxe_append_params: [] # Deprecated: diff --git a/ansible/roles/kolla-openstack/templates/kolla/config/ironic-inspector.conf b/ansible/roles/kolla-openstack/templates/kolla/config/ironic-inspector.conf deleted file mode 100644 index d085c2bec..000000000 --- a/ansible/roles/kolla-openstack/templates/kolla/config/ironic-inspector.conf +++ /dev/null @@ -1,50 +0,0 @@ -[DEFAULT] - -[processing] -{% if kolla_inspector_processing_hooks %} -# Comma-separated list of inspector processing plugins. -processing_hooks = {{ kolla_inspector_processing_hooks | join(',') }} -{% endif %} - -{% if kolla_inspector_add_ports %} -# Which MAC addresses to add as ports during introspection. One of 'all', -# 'active' or 'pxe'. -add_ports = {{ kolla_inspector_add_ports }} -{% endif %} - -{% if kolla_inspector_keep_ports %} -keep_ports = {{ kolla_inspector_keep_ports }} -{% endif %} - -# Store logs returned by the inspection ramdisk. -always_store_ramdisk_logs = True - -{% if kolla_inspector_enable_discovery %} -# Enable discovery when nodes do not exist in Ironic. -node_not_found_hook = enroll -{% endif %} - -{% if kolla_inspector_enable_swift %} -store_data = swift -{% endif %} - -{% if kolla_inspector_enable_swift %} -[swift] -{% for key, value in kolla_inspector_swift_auth.items() %} -{{ key }} = {{ value }} -{% endfor %} -{% endif %} - -{% if kolla_inspector_enable_discovery %} -[discovery] -# The driver with which to enroll newly discovered nodes in Ironic. -enroll_node_driver = {{ kolla_inspector_discovery_enroll_node_driver }} -{% endif %} - -{% if kolla_extra_inspector %} -####################### -# Extra configuration -####################### - -{{ kolla_extra_inspector }} -{% endif %} diff --git a/ansible/roles/kolla-openstack/templates/kolla/config/ironic.conf b/ansible/roles/kolla-openstack/templates/kolla/config/ironic.conf index 79adce40c..cbb8ca683 100644 --- a/ansible/roles/kolla-openstack/templates/kolla/config/ironic.conf +++ b/ansible/roles/kolla-openstack/templates/kolla/config/ironic.conf @@ -18,6 +18,11 @@ enabled_hardware_types: {{ kolla_ironic_enabled_hardware_types | join(',') }} [agent] deploy_logs_local_path = /var/log/kolla/ironic/deploy +[redfish] +{% if kolla_ironic_kernel_append_params %} +kernel_append_params = {{ kolla_ironic_kernel_append_params | join(' ') }} +{% endif %} + [neutron] cleaning_network = {{ kolla_ironic_cleaning_network }} inspection_network = {{ kolla_ironic_inspection_network }} diff --git a/doc/source/configuration/reference/ironic-python-agent.rst b/doc/source/configuration/reference/ironic-python-agent.rst index 23f7f4f06..401fa2225 100644 --- a/doc/source/configuration/reference/ironic-python-agent.rst +++ b/doc/source/configuration/reference/ironic-python-agent.rst @@ -45,8 +45,7 @@ image build``. ``ipa_builder_source_version`` Version of IPA builder source repository. Default is ``master``. ``ipa_build_dib_host_packages_extra`` - List of additional build host packages to install. Default is an empty - list. + List of additional build host packages to install. Default is ``[ 'zstd' ]``. ``ipa_build_dib_elements_default`` List of default Diskimage Builder (DIB) elements to use when building IPA images. Default is ``["centos", "dynamic-login", "enable-serial-console", @@ -162,12 +161,12 @@ Bifrost can be configured to use ``dynamic-login`` with the The updated configuration is applied with ``kayobe seed service deploy``. Overcloud Ironic can be configured with the -``kolla_ironic_pxe_append_params_extra`` variable: +``kolla_ironic_kernel_append_params_extra`` variable: .. code-block:: yaml :caption: ``ironic.yml`` - kolla_ironic_pxe_append_params_extra: + kolla_ironic_kernel_append_params_extra: - sshkey="ssh-rsa BBA1..." The updated configuration is applied with ``kayobe overcloud service deploy``. diff --git a/etc/kayobe/bifrost.yml b/etc/kayobe/bifrost.yml index cf75637e7..8c5e9a501 100644 --- a/etc/kayobe/bifrost.yml +++ b/etc/kayobe/bifrost.yml @@ -69,7 +69,7 @@ # UUID of the root filesystem contained within the deployment image. # See below URL for instructions on how to extract it: # https://docs.openstack.org/ironic/latest/admin/raid.html#image-requirements -# Default is none. +# Default is an empty string. #kolla_bifrost_deploy_image_rootfs: # Custom cloud-init user-data passed to deploy of the deployment image. diff --git a/etc/kayobe/inspector.yml b/etc/kayobe/inspector.yml index 123481a5f..713751dfc 100644 --- a/etc/kayobe/inspector.yml +++ b/etc/kayobe/inspector.yml @@ -143,17 +143,6 @@ # applied. #inspector_dell_switch_lldp_workaround_group: -############################################################################### -# Inspection store configuration. -# The inspection store provides a Swift-like service for storing inspection -# data which may be useful in environments without Swift. - -# Whether the inspection data store is enabled. -#inspector_store_enabled: - -# Port on which the inspection data store should listen. -#inspector_store_port: - ############################################################################### # Dummy variable to allow Ansible to accept this file. workaround_ansible_issue_8743: yes diff --git a/etc/kayobe/ipa.yml b/etc/kayobe/ipa.yml index 00a9b9e97..b64320685 100644 --- a/etc/kayobe/ipa.yml +++ b/etc/kayobe/ipa.yml @@ -19,7 +19,7 @@ # Version of IPA builder source repository. Default is {{ openstack_branch }}. #ipa_builder_source_version: -# List of additional build host packages to install. Default is an empty list. +# List of additional build host packages to install. Default is [ 'zstd' ]. #ipa_build_dib_host_packages_extra: # List of default Diskimage Builder (DIB) elements to use when building IPA @@ -64,7 +64,7 @@ # ipa_build_dib_git_elements_default and ipa_build_dib_git_elements_extra. #ipa_build_dib_git_elements: -# List of DIB packages to install. Default is none. +# List of DIB packages to install. Default is empty list. #ipa_build_dib_packages: # Upper constraints file for installing packages in the virtual environment diff --git a/etc/kayobe/ironic.yml b/etc/kayobe/ironic.yml index 311a75695..442c5411f 100644 --- a/etc/kayobe/ironic.yml +++ b/etc/kayobe/ironic.yml @@ -109,6 +109,14 @@ # List of kernel parameters to append for baremetal PXE boot. #kolla_ironic_pxe_append_params: +# List of default kernel parameters to append for baremetal boot. +#kolla_ironic_kernel_append_params_default: + +# List of additional kernel parameters to append for baremetal boot. +#kolla_ironic_kernel_append_params_extra: + +# List of kernel parameters to append for baremetal boot. +#kolla_ironic_kernel_append_params: ############################################################################### # Ironic Node Configuration diff --git a/playbooks/kayobe-base/pre.yml b/playbooks/kayobe-base/pre.yml index 34a317a0e..a8be2b19c 100644 --- a/playbooks/kayobe-base/pre.yml +++ b/playbooks/kayobe-base/pre.yml @@ -15,7 +15,7 @@ callbacks_enabled = ansible.posix.profile_tasks # Improve readability of ansible output. - stdout_callback = yaml + callback_result_format = yaml [ssh_connection] # NOTE(wszusmki): Disable pipelining due to: @@ -36,7 +36,7 @@ callbacks_enabled = ansible.posix.profile_tasks # Improve readability of ansible output. - stdout_callback = yaml + callback_result_format = yaml [ssh_connection] # NOTE(wszusmki): Disable pipelining due to: diff --git a/playbooks/kayobe-overcloud-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-base/overrides.yml.j2 index c13f16f1a..a0a46b5c6 100644 --- a/playbooks/kayobe-overcloud-base/overrides.yml.j2 +++ b/playbooks/kayobe-overcloud-base/overrides.yml.j2 @@ -52,7 +52,7 @@ compute_libvirt_enable_tls: true kolla_enable_tls_external: "yes" kolla_enable_tls_internal: "yes" -kolla_ironic_pxe_append_params_extra: +kolla_ironic_kernel_append_params_extra: - ipa-insecure=1 {% endif %} diff --git a/releasenotes/notes/add-redfish-pxe-args-for-virtual-media-1446188235feaaac.yaml b/releasenotes/notes/add-redfish-pxe-args-for-virtual-media-1446188235feaaac.yaml new file mode 100644 index 000000000..24837912e --- /dev/null +++ b/releasenotes/notes/add-redfish-pxe-args-for-virtual-media-1446188235feaaac.yaml @@ -0,0 +1,12 @@ +--- +features: + - | + Adds support for Redfish virtual media and + PXE boot using a common set of variables. + Migration to using + ``kolla_ironic_kernel_append_params`` is + advised. + New boot variables are: + kolla_ironic_kernel_append_params, + kolla_ironic_kernel_append_params_default, + kolla_ironic_kernel_append_params_extra. diff --git a/releasenotes/notes/change-IPA-compression-algorithm-to-zstd-19-b3860e0a24ca824e.yaml b/releasenotes/notes/change-IPA-compression-algorithm-to-zstd-19-b3860e0a24ca824e.yaml new file mode 100644 index 000000000..bf4576bb2 --- /dev/null +++ b/releasenotes/notes/change-IPA-compression-algorithm-to-zstd-19-b3860e0a24ca824e.yaml @@ -0,0 +1,14 @@ +--- +features: + - | + Changes the IPA (Ironic Python Agent) image compression algorithm from + the default ``gzip`` to ``zstd``. This improves provisioning + performance by reducing the size of the IPA boot ISO transferred from + the Ironic conductor to the bare metal nodes. +upgrade: + - | + Changes the IPA (Ironic Python Agent) image compression algorithm from + default ``gzip`` to ``zstd``. The ``ipa_build_dib_env_default`` dictionary + now includes ``DIB_IPA_COMPRESS_CMD`` set to ``zstd -19``. + The default ``ipa_build_dib_host_packages_extra`` has been changed from + none to ``['zstd']``. \ No newline at end of file diff --git a/releasenotes/notes/fix-bifrost-invenory-05f8a92915998f09.yaml b/releasenotes/notes/fix-bifrost-invenory-05f8a92915998f09.yaml new file mode 100644 index 000000000..c616a971a --- /dev/null +++ b/releasenotes/notes/fix-bifrost-invenory-05f8a92915998f09.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixes issue when Bifrost hostvars file incorectly generated by Kayobe. + `LP#2045927 `__ diff --git a/releasenotes/notes/remove-linuxbridge-0112ace7c0bff24b.yaml b/releasenotes/notes/remove-linuxbridge-0112ace7c0bff24b.yaml new file mode 100644 index 000000000..f5625e782 --- /dev/null +++ b/releasenotes/notes/remove-linuxbridge-0112ace7c0bff24b.yaml @@ -0,0 +1,5 @@ +--- +upgrade: + - | + Support for Linux Bridge mechanism driver has been removed. The driver was + already removed from neutron. diff --git a/releasenotes/notes/removes-inspection-store-7d969c6200787282.yaml b/releasenotes/notes/removes-inspection-store-7d969c6200787282.yaml new file mode 100644 index 000000000..f1634e8be --- /dev/null +++ b/releasenotes/notes/removes-inspection-store-7d969c6200787282.yaml @@ -0,0 +1,12 @@ +--- +upgrade: + - | + The inspection_store container has been removed since it was tied to the + standalone Ironic Inspector implementation and support for deploying that + service has been dropped. The new inspection implemenation built into + Ironic stores a similar set of data in the database. Prior to upgrading, + you may wish to dump any data with the ``kayobe overcloud introspection data + save`` command. After the upgrade the container should be manually removed + from the first controller using either ``docker stop inspection store && + docker rm inspection_store`` or ``sudo podman stop inspection_store && sudo + podman rm inspection_store`` diff --git a/releasenotes/notes/stackhpc-libvirt-host-el10-0250bdabad776c65.yaml b/releasenotes/notes/stackhpc-libvirt-host-el10-0250bdabad776c65.yaml new file mode 100644 index 000000000..646925cfc --- /dev/null +++ b/releasenotes/notes/stackhpc-libvirt-host-el10-0250bdabad776c65.yaml @@ -0,0 +1,5 @@ +--- +upgrade: + - | + Bumps the ``stackhpc.libvirt-host`` role to v1.14.0 which fixes + compatibility with CentOS Stream 10 and Rocky Linux 10. diff --git a/requirements.yml b/requirements.yml index 4ad3203dc..ef419f34d 100644 --- a/requirements.yml +++ b/requirements.yml @@ -41,7 +41,7 @@ roles: - src: stackhpc.drac-facts version: 1.0.0 - src: stackhpc.libvirt-host - version: v1.12.1 + version: v1.14.0 - src: stackhpc.libvirt-vm version: v1.16.3 - src: stackhpc.luks diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 28429bffb..19b877921 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -127,6 +127,12 @@ nodeset: kayobe-centos9s voting: false +- job: + name: kayobe-overcloud-centos10s + parent: kayobe-overcloud-base + nodeset: kayobe-centos10s + voting: false + - job: name: kayobe-overcloud-rocky9 parent: kayobe-overcloud-base @@ -141,6 +147,20 @@ vars: container_engine: podman +- job: + name: kayobe-overcloud-rocky10 + parent: kayobe-overcloud-base + vars: + kayobe_control_host_become: false + nodeset: kayobe-rocky10 + +- job: + name: kayobe-overcloud-rocky10-podman + parent: kayobe-overcloud-base + nodeset: kayobe-rocky10 + vars: + container_engine: podman + - job: name: kayobe-overcloud-ubuntu-noble parent: kayobe-overcloud-base @@ -167,11 +187,22 @@ nodeset: kayobe-centos9s voting: false +- job: + name: kayobe-overcloud-tls-centos10s + parent: kayobe-overcloud-tls-base + nodeset: kayobe-centos10s + voting: false + - job: name: kayobe-overcloud-tls-rocky9 parent: kayobe-overcloud-tls-base nodeset: kayobe-rocky9 +- job: + name: kayobe-overcloud-tls-rocky10 + parent: kayobe-overcloud-tls-base + nodeset: kayobe-rocky10 + - job: name: kayobe-overcloud-upgrade-base parent: kayobe-base @@ -223,6 +254,12 @@ nodeset: kayobe-centos9s voting: false +- job: + name: kayobe-seed-centos10s + parent: kayobe-seed-base + nodeset: kayobe-centos10s + voting: false + - job: name: kayobe-seed-rocky9 parent: kayobe-seed-base @@ -235,6 +272,18 @@ vars: container_engine: podman +- job: + name: kayobe-seed-rocky10 + parent: kayobe-seed-base + nodeset: kayobe-rocky10 + +- job: + name: kayobe-seed-rocky10-podman + parent: kayobe-seed-base + nodeset: kayobe-rocky10 + vars: + container_engine: podman + - job: name: kayobe-seed-ubuntu-noble parent: kayobe-seed-base diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index ad4bbd35a..17b729553 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -18,9 +18,14 @@ - kayobe-overcloud-host-configure-rocky10 - kayobe-overcloud-host-configure-rocky9 - kayobe-overcloud-host-configure-ubuntu-noble + - kayobe-overcloud-rocky10 + - kayobe-overcloud-rocky10-podman + - kayobe-overcloud-tls-rocky10 - kayobe-overcloud-ubuntu-noble - kayobe-overcloud-ubuntu-noble-podman - kayobe-overcloud-upgrade-ubuntu-noble + - kayobe-seed-rocky10 + - kayobe-seed-rocky10-podman - kayobe-seed-ubuntu-noble - kayobe-seed-ubuntu-noble-podman - kayobe-seed-upgrade-ubuntu-noble @@ -38,9 +43,14 @@ - kayobe-overcloud-host-configure-rocky10 - kayobe-overcloud-host-configure-rocky9 - kayobe-overcloud-host-configure-ubuntu-noble + - kayobe-overcloud-rocky10 + - kayobe-overcloud-rocky10-podman + - kayobe-overcloud-tls-rocky10 - kayobe-overcloud-ubuntu-noble - kayobe-overcloud-ubuntu-noble-podman - kayobe-overcloud-upgrade-ubuntu-noble + - kayobe-seed-rocky10 + - kayobe-seed-rocky10-podman - kayobe-seed-ubuntu-noble - kayobe-seed-ubuntu-noble-podman - kayobe-seed-upgrade-ubuntu-noble @@ -57,13 +67,16 @@ - kayobe-infra-vm-rocky10-cloud-image - kayobe-infra-vm-rocky9-cloud-image - kayobe-infra-vm-ubuntu-noble-cloud-image + - kayobe-overcloud-centos10s - kayobe-overcloud-centos9s - kayobe-overcloud-host-configure-centos10s - kayobe-overcloud-host-configure-centos9s - kayobe-overcloud-rocky9 - kayobe-overcloud-rocky9-podman + - kayobe-overcloud-tls-centos10s - kayobe-overcloud-tls-rocky9 - kayobe-overcloud-upgrade-rocky9 + - kayobe-seed-centos10s - kayobe-seed-images-centos9s - kayobe-seed-images-rocky9 - kayobe-seed-images-rocky9-podman