Skip to content

Commit 85e94c7

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Override IPA image distribution/release" into stable/2025.1
2 parents 80f34c9 + 37ba7e9 commit 85e94c7

3 files changed

Lines changed: 41 additions & 15 deletions

File tree

ansible/inventory/group_vars/all/ipa

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
# Whether to build IPA images from source.
88
ipa_build_images: False
99

10+
# Override the OS distribution used to build IPA images. Default is 'centos'
11+
# if the host OS is Rocky, otherwise the default is the host OS distribution.
12+
ipa_build_distro: "{{ 'centos' if os_distribution == 'rocky' else os_distribution }}"
13+
14+
# Override the OS release used to build IPA images. Default is '9-stream' if
15+
# the host OS is Rocky, otherwise the default is the host OS release.
16+
ipa_build_release: "{{ '9-stream' if os_distribution == 'rocky' else os_release }}"
17+
1018
# URL of IPA source repository.
1119
ipa_build_source_url: "https://opendev.org/openstack/ironic-python-agent"
1220

@@ -23,16 +31,16 @@ ipa_builder_source_version: "{{ openstack_branch }}"
2331
ipa_build_dib_host_packages_extra: []
2432

2533
# List of default Diskimage Builder (DIB) elements to use when building IPA
26-
# images. Default is ["centos", "dynamic-login", "enable-serial-console",
27-
# "ironic-python-agent-ramdisk"] when os_distribution is "rocky", and
28-
# ["ubuntu", "dynamic-login", "enable-serial-console",
29-
# "ironic-python-agent-ramdisk"] otherwise.
34+
# images. Default is ["rocky-container", "dynamic-login",
35+
# "enable-serial-console", "ironic-python-agent-ramdisk", "baremetal"] when
36+
# ipa_build_distro is "rocky", and [ipa_build_distro, "dynamic-login",
37+
# "enable-serial-console", "ironic-python-agent-ramdisk"] otherwise.
3038
ipa_build_dib_elements_default:
31-
# TODO(mattcrees): Use {{ os_distribution }} here when Rocky IPA builds work.
32-
- "{{ 'centos' if os_distribution == 'rocky' else os_distribution }}"
39+
- "{{ 'rocky-container' if ipa_build_distro == 'rocky' else ipa_build_distro }}"
3340
- dynamic-login
3441
- enable-serial-console
3542
- ironic-python-agent-ramdisk
43+
- "{{ 'baremetal' if ipa_build_distro == 'rocky' else '' }}"
3644

3745
# List of additional Diskimage Builder (DIB) elements to use when building IPA
3846
# images. Default is none.
@@ -48,8 +56,9 @@ ipa_build_dib_elements: >
4856
# Dictionary of default environment variables to provide to Diskimage Builder
4957
# (DIB) during IPA image build.
5058
ipa_build_dib_env_default:
51-
# TODO(mattcrees): Use {{ os_release }} here when Rocky IPA builds work.
52-
DIB_RELEASE: "{{ '9-stream' if os_distribution == 'rocky' else os_release }}"
59+
DIB_RELEASE: "{{ ipa_build_release }}"
60+
DIB_CONTAINERFILE_RUNTIME: "{{ container_engine }}"
61+
DIB_CONTAINERFILE_RUNTIME_ROOT: "{{ (container_engine == 'podman') | int }}"
5362
DIB_REPOLOCATION_ironic_python_agent: "{{ ipa_build_source_url }}"
5463
DIB_REPOREF_ironic_python_agent: "{{ ipa_build_source_version }}"
5564
DIB_REPOREF_requirements: "{{ ipa_build_source_version }}"
@@ -83,8 +92,10 @@ ipa_build_dib_git_elements_extra: []
8392
ipa_build_dib_git_elements: >-
8493
{{ ipa_build_dib_git_elements_default + ipa_build_dib_git_elements_extra }}
8594

86-
# List of DIB packages to install. Default is none.
87-
ipa_build_dib_packages: []
95+
# List of DIB packages to install. Default is ["python3-yaml"] when
96+
# when ipa_build_distro is "rocky", otherwise [].
97+
ipa_build_dib_packages: >-
98+
{{ ["python3-yaml"] if ipa_build_distro == 'rocky' else [] }}
8899

89100
# Upper constraints file for installing packages in the virtual environment
90101
# used for building IPA images. Default is {{ pip_upper_constraints_file }}.

etc/kayobe/ipa.yml

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
# Whether to build IPA images from source.
88
#ipa_build_images:
99

10+
# Override the OS distribution used to build IPA images. Default is 'centos'
11+
# if the host OS is Rocky, otherwise the default is the host OS distribution.
12+
#ipa_build_distro:
13+
14+
# Override the OS release used to build IPA images. Default is '9-stream' if
15+
# the host OS is Rocky, otherwise the default is the host OS release.
16+
#ipa_build_release:
17+
1018
# URL of IPA source repository.
1119
#ipa_build_source_url:
1220

@@ -23,10 +31,10 @@
2331
#ipa_build_dib_host_packages_extra:
2432

2533
# List of default Diskimage Builder (DIB) elements to use when building IPA
26-
# images. Default is ["centos", "dynamic-login", "enable-serial-console",
27-
# "ironic-python-agent-ramdisk"] when os_distribution is "rocky", and
28-
# ["ubuntu", "dynamic-login", "enable-serial-console",
29-
# "ironic-python-agent-ramdisk"] otherwise.
34+
# images. Default is ["rocky-container", "dynamic-login",
35+
# "enable-serial-console", "ironic-python-agent-ramdisk", "baremetal"] when
36+
# ipa_build_distro is "rocky", and [ipa_build_distro, "dynamic-login",
37+
# "enable-serial-console", "ironic-python-agent-ramdisk"] otherwise.
3038
#ipa_build_dib_elements_default:
3139

3240
# List of additional Diskimage Builder (DIB) elements to use when building IPA
@@ -64,7 +72,8 @@
6472
# ipa_build_dib_git_elements_default and ipa_build_dib_git_elements_extra.
6573
#ipa_build_dib_git_elements:
6674

67-
# List of DIB packages to install. Default is none.
75+
# List of DIB packages to install. Default is ["python3-yaml"] when
76+
# when ipa_build_distro is "rocky", otherwise [].
6877
#ipa_build_dib_packages:
6978

7079
# Upper constraints file for installing packages in the virtual environment
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
features:
3+
- |
4+
The OS distribution and release used to build IPA images can now
5+
be customised using the `ipa_build_distro` and `ipa_build_release`
6+
overrides.

0 commit comments

Comments
 (0)