root/build-tools
Luan Nunes Utimura 5fa60a5421 Add sources.list for non-default layers
After reestructuring `deb-local-binary` into multiple binary
repositories, one for each layer, the image build now has access to
three repositories by default:

  * deb-local-binary;
  * deb-local-binary-containers;
  * deb-local-build.

Although these repositories are sufficient for the vast majority of
images, there are some, such as `stx-openstackclients`, that require
dependencies that are found in another repository:
`deb-local-binary-openstack`.

This image, as the name suggests, contains all the OpenStack clients
currently supported by the StarlingX OpenStack application.

As one can see in [1], although most clients are installed in the form
of pip packages, i.e., through wheel files collected from the upstream
indexes, there are two clients that are installed in the form of
distribution packages:

  * python3-cinderclient;
  * python3-openstackclient.

The reason why they are installed as distribution packages is because
they have patches that are specific to StarlingX OpenStack -- [2] and
[3] -- and also because the build procedure can easily identify them in
`deb-local-build` and use the patched versions as expected by us (of
course, it they have been built previously).

The problem, however, is that although this image is currently being
built, there is a detail in it that can cause problems at run time.

Despite the build locating (and using) our patched packages, when it
searches for their dependencies, it always ends up using binaries from
repositories `deb-local-binary`, `deb-local-binary-containers` or
`deb-local-build`.

Which means that, if we have a dependency on
`deb-local-binary-openstack` meant for OpenStack Antelope, and the same
dependency on `deb-local-binary` meant for OpenStack Victoria, the image
build will use the latter, for the simple fact that it do not consider
the `openstack` layer (and, therefore, `deb-local-binary-openstack`).

To get around this problem, this change seeks to add a `sources.list`
for each build layer. By default, they are all disabled. However, if
necessary, they can be enabled and used in image builds based on Docker
or LOCI.

Note: This change is the prerequisite of [4].
      The test plan with the `stx-openstackclients` image will be done
      there.

[1] https://opendev.org/starlingx/openstack-armada-app/src/branch/f/antelope/upstream/openstack/python-openstackclient/debian/stx-openstackclient.stable_docker_image#L26-L27
[2] https://opendev.org/starlingx/openstack-armada-app/src/branch/f/antelope/upstream/openstack/python-cinderclient/debian/patches
[3] https://opendev.org/starlingx/openstack-armada-app/src/branch/f/antelope/upstream/openstack/python-openstackclient/debian/patches
[4] https://review.opendev.org/c/starlingx/openstack-armada-app/+/896462

Test Plan:
PASS - Build `stx-debian` base image
PASS - Build all container images with --clean and confirm that:
       1. All container images were built successfully;
       2. All container images were removed successfully.

Partial-Bug: 2037339

Change-Id: I36d1af990afad9fd69b723bf3a13b88673dd08ad
Signed-off-by: Luan Nunes Utimura <LuanNunes.Utimura@windriver.com>
2023-09-26 20:34:21 -03:00
..
branching Add access-token option to branching tools 2022-11-22 16:15:21 -05:00
build-docker-images Add sources.list for non-default layers 2023-09-26 20:34:21 -03:00
build-wheels Upversion wheels to build Antelope images 2023-08-29 19:55:28 -03:00
build_guest build-guest: update RPM lists + misc fixes 2021-08-09 13:25:28 -04:00
build_iso minimal_rpm_list.txt: ebtables->iptables-ebtables 2021-10-29 16:21:19 -04:00
build_minimal_iso Add support CentOS-8/dnf/mock-2.6 based builds 2020-12-08 14:13:28 -05:00
certificates StarlingX open source release updates 2018-06-01 07:45:23 -07:00
deb-utils debian: port helm chart script to debian 2022-05-10 17:13:13 -04:00
mk Uprev grub2 and shim 2018-06-27 13:04:02 -04:00
repo_files centos7: delete yum.pid after yum-builddep 2021-03-25 18:25:23 -04:00
requirements Update kubernetes client on upper constraints 2023-05-31 15:20:16 -03:00
signing StarlingX open source release updates 2018-06-01 07:45:23 -07:00
stx Allow our repositories to have multiple versions of a package 2023-09-11 11:33:48 -04:00
unit-tests debian: port helm chart script to debian 2022-05-10 17:13:13 -04:00
Cached_Data.txt StarlingX open source release updates 2018-06-01 07:45:23 -07:00
audit-pkgs Build script readiness for renaming cgcs-centos-repo to centos-repo 2020-09-24 11:59:55 -04:00
build-avoidance-utils.sh build-avoidance: ensure we can write to a copied build environment. 2022-01-17 11:24:33 -05:00
build-guest build-guest: accept extra RPMs on command line 2021-08-16 09:29:05 -04:00
build-helm-charts.sh build-helm-charts: Fix --package option parsing 2023-06-01 15:02:53 -03:00
build-img Update build image to look for update-iso-centos.sh script 2022-12-07 21:04:22 +00:00
build-iso build-iso: Create package_checksums file within iso 2022-05-03 12:41:05 -04:00
build-pkg-srpm StarlingX open source release updates 2018-06-01 07:45:23 -07:00
build-pkgs Add support CentOS-8/dnf/mock-2.6 based builds 2020-12-08 14:13:28 -05:00
build-pkgs-parallel Remove references to cgcs-3rd-party-repo 2020-10-27 14:26:03 -04:00
build-pkgs-serial Remove references to cgcs-3rd-party-repo 2020-10-27 14:26:03 -04:00
build-remote-cli.sh Support custom docker registries for remote cli 2020-03-18 16:29:49 +02:00
build-rpms Build Avoidance 2018-09-17 16:41:31 -04:00
build-rpms-parallel build-rpms: fix typo in temp files removal 2022-09-27 16:10:50 -04:00
build-rpms-serial build-rpms: fix typo in temp files removal 2022-09-27 16:10:50 -04:00
build-srpms Build Avoidance 2018-09-17 16:41:31 -04:00
build-srpms-common.sh Eliminate intermediate .tox files during build 2020-08-27 11:01:45 -05:00
build-srpms-parallel Exclude .tox folder when checking file ages 2020-12-21 15:25:27 -05:00
build-srpms-serial Exclude .tox folder when checking file ages 2020-12-21 15:25:27 -05:00
classify Build: Improved logging, error handling, and other small fixes 2018-08-29 16:31:09 -04:00
create-yum-conf centos7: delete yum.pid after yum-builddep 2021-03-25 18:25:23 -04:00
create_dependancy_cache.py Build script readiness for renaming cgcs-tis-repo to local-repo 2020-09-24 12:03:00 -04:00
deb-utils.sh debian: port helm chart script to debian 2022-05-10 17:13:13 -04:00
default_build_srpm Add support CentOS-8/dnf/mock-2.6 based builds 2020-12-08 14:13:28 -05:00
find_klm StarlingX open source release updates 2018-06-01 07:45:23 -07:00
find_patched_srpms_needing_upgrade StarlingX open source release updates 2018-06-01 07:45:23 -07:00
git-repo-utils.sh branching: Add retries to git push/review commands 2021-12-16 15:16:30 -05:00
git-utils.sh Add access-token option to branching tools 2022-11-22 16:15:21 -05:00
helm_chart_modify.py Merge "FluxCD: Add image versions from image record files" 2022-06-08 17:10:45 +00:00
image-utils.sh Update to build tools to support Build layering. 2020-02-07 16:36:40 -05:00
ip_report.py Remove references to cgcs-3rd-party-repo 2020-10-27 14:26:03 -04:00
make-installer-images.sh update-pxe-network-installer: add updated firmwares 2022-05-23 14:18:43 +00:00
mock_cfg_to_yum_conf.py Python 3 compatibility: use print as a function. 2018-10-12 13:42:44 +00:00
mockchain-parallel Add support CentOS-8/dnf/mock-2.6 based builds 2020-12-08 14:13:28 -05:00
mockchain-parallel-1.3.4 Update to build tools to support Build layering. 2020-02-07 16:36:40 -05:00
mockchain-parallel-1.4.16 Update to build tools to support Build layering. 2020-02-07 16:36:40 -05:00
mockchain-parallel-2.6 Add support CentOS-8/dnf/mock-2.6 based builds 2020-12-08 14:13:28 -05:00
mockchain-parallel-2.7 Support mock >= 2.7 2021-02-19 12:33:58 -05:00
modify-build-cfg centos7: delete yum.pid after yum-builddep 2021-03-25 18:25:23 -04:00
patch-iso patch-iso: Fix up paths 2022-04-11 09:25:08 -04:00
patch-iso-debian Add more than one metadata to prepatched iso 2023-07-19 14:23:32 +00:00
patch_rebase_1 Build script readiness for renaming cgcs-centos-repo to centos-repo 2020-09-24 11:59:55 -04:00
patch_rebase_2 Build script readiness for renaming cgcs-centos-repo to centos-repo 2020-09-24 11:59:55 -04:00
patch_rebase_3 Build script readiness for renaming cgcs-centos-repo to centos-repo 2020-09-24 11:59:55 -04:00
patch_rebase_4 Build script readiness for renaming cgcs-centos-repo to centos-repo 2020-09-24 11:59:55 -04:00
pkg-manager-utils.sh Add support CentOS-8/dnf/mock-2.6 based builds 2020-12-08 14:13:28 -05:00
repo-utils.sh manifest_get_default_revision must deal with / in branch names 2022-02-01 11:03:43 -05:00
sign-rpms Prepare the build tools for code restucturing 2019-09-05 15:18:10 -04:00
sign-secure-boot Add -v flag to warn secure boot signing of the /var prefix 2021-12-30 16:35:52 -05:00
sign-secure-boot_debian Update secure-boot script paths 2023-03-21 13:59:59 -07:00
sign_initramfs-sign-script debian: secure boot: add scripts for remote signing 2023-02-23 08:10:30 +00:00
sign_iso_formal.sh cleanup signing scripts 2018-09-07 14:44:37 -04:00
sign_patch_formal.sh cleanup signing scripts 2018-09-07 14:44:37 -04:00
sign_rootfs-post-scripts debian: secure boot: add scripts for remote signing 2023-02-23 08:10:30 +00:00
source_lookup.txt Remove 'django_openstack_auth' reference from source_lookup.txt 2021-07-13 23:16:25 +05:30
spec-utils enable pbr version 2020-06-08 16:54:14 +08:00
srpm-utils srpm-utils: Recognize /usr/bin/mkdir as well 2021-10-27 13:35:09 -04:00
stxRpmUtils.py Correct build failure after mock updrade 2019-06-06 13:39:34 -04:00
sync-jenkins Remove references to cgcs-3rd-party-repo 2020-10-27 14:26:03 -04:00
sync_jenkins.sh Remove references to cgcs-3rd-party-repo 2020-10-27 14:26:03 -04:00
tis.macros StarlingX open source release updates 2018-06-01 07:45:23 -07:00
update-efiboot-image Merge "Fix update-efiboot-image loop device leak" 2020-10-28 13:46:04 +00:00
update-pxe-network-installer build-tools: discover firmware files for installer 2022-06-03 10:55:56 -04:00
url_utils.sh branching: better control over reviews & manifests 2021-06-22 12:58:34 -04:00
utils.sh debian: code cleanup 2022-05-10 17:09:08 -04:00
wheel-utils.sh Enable build of docker images, charts and wheels from a layered build 2020-04-08 13:58:41 -04:00
wrs_orig.txt StarlingX open source release updates 2018-06-01 07:45:23 -07:00
yum-builddep-wrapper centos7: delete yum.pid after yum-builddep 2021-03-25 18:25:23 -04:00