Skip to content

Commit 11c3ce8

Browse files
authored
Merge pull request #1767 from SUSE/kiwi_baseref
Change KIWI application builds to build against released containers
2 parents 67c8e74 + be4f2ba commit 11c3ce8

File tree

4 files changed

+35
-11
lines changed

4 files changed

+35
-11
lines changed

src/bci_build/package/__init__.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -848,8 +848,14 @@ def dockerfile_from_target_ref(self) -> str:
848848
@property
849849
def is_base_container_annotation_available(self) -> bool:
850850
"""return True if the obs-service-kiwi_metainfo_helper can provide base.name/digest annotations."""
851+
_from_image = self._from_image
851852
return bool(
852-
self._from_image
853+
_from_image
854+
and self.os_version in RELEASED_OS_VERSIONS
855+
and (
856+
self.from_target_image
857+
or _from_image.startswith(self.base_image_registry)
858+
)
853859
and not self.os_version.is_tumbleweed
854860
and not self.os_version.is_slfo # waiting for ibs#345975
855861
)
@@ -868,6 +874,13 @@ def dockerfile_from_line(self) -> str:
868874
def kiwi_derived_from_entry(self) -> str:
869875
if self._from_image is None:
870876
return ""
877+
# Adjust for the special format that OBS expects to reference
878+
# external images
879+
if self.is_base_container_annotation_available:
880+
repo: str = self._from_image.replace("registry.suse.com/", "").replace(
881+
":", "#"
882+
)
883+
return f' derived_from="obs://SUSE:Registry/standard/{repo}"'
871884
return (
872885
f" derived_from=\"obsrepositories:/{self._from_image.replace(':', '#')}\""
873886
)

src/bci_build/package/appcontainers.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from bci_build.package import Replacement
1616
from bci_build.package import SupportLevel
1717
from bci_build.package import _build_tag_prefix
18+
from bci_build.package.helpers import generate_from_image
1819
from bci_build.package.helpers import generate_package_version_check
1920
from bci_build.package.versions import format_version
2021
from bci_build.package.versions import get_pkg_version
@@ -350,7 +351,7 @@ def _get_nginx_kwargs(os_version: OsVersion):
350351
support_level=SupportLevel.L3,
351352
pretty_name=f"{os_version.pretty_os_version_no_dash} with Git",
352353
custom_description="A micro environment with Git {based_on_container}.",
353-
from_image=f"{_build_tag_prefix(os_version)}/bci-micro:{OsContainer.version_to_container_os_version(os_version)}",
354+
from_image=generate_from_image(os_version, "bci-micro"),
354355
build_recipe_type=BuildType.KIWI,
355356
is_latest=os_version in CAN_BE_LATEST_OS_VERSION,
356357
version="%%git_version%%",
@@ -395,7 +396,7 @@ def _get_nginx_kwargs(os_version: OsVersion):
395396
name="registry",
396397
package_name="distribution-image",
397398
pretty_name="OCI Container Registry (Distribution)",
398-
from_image=f"{_build_tag_prefix(os_version)}/bci-micro:{OsContainer.version_to_container_os_version(os_version)}",
399+
from_image=generate_from_image(os_version, "bci-micro"),
399400
os_version=os_version,
400401
is_latest=os_version in CAN_BE_LATEST_OS_VERSION,
401402
version="%%registry_version%%",
@@ -434,7 +435,7 @@ def _get_nginx_kwargs(os_version: OsVersion):
434435
ApplicationStackContainer(
435436
name="helm",
436437
pretty_name="Kubernetes Package Manager",
437-
from_image=f"{_build_tag_prefix(os_version)}/bci-micro:{OsContainer.version_to_container_os_version(os_version)}",
438+
from_image=generate_from_image(os_version, "bci-micro"),
438439
os_version=os_version,
439440
is_latest=os_version in CAN_BE_LATEST_OS_VERSION,
440441
version=get_pkg_version("helm", os_version),
@@ -460,7 +461,7 @@ def _get_nginx_kwargs(os_version: OsVersion):
460461
ApplicationStackContainer(
461462
name="trivy",
462463
pretty_name="Container Vulnerability Scanner",
463-
from_image=f"{_build_tag_prefix(os_version)}/bci-micro:{OsContainer.version_to_container_os_version(os_version)}",
464+
from_image=generate_from_image(os_version, "bci-micro"),
464465
os_version=os_version,
465466
is_latest=os_version in CAN_BE_LATEST_OS_VERSION,
466467
version="%%trivy_version%%",

src/bci_build/package/helpers.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
from bci_build.package import DOCKERFILE_RUN
2+
from bci_build.package import RELEASED_OS_VERSIONS
3+
from bci_build.package import OsContainer
24
from bci_build.package import ParseVersion
5+
from bci_build.package import _build_tag_prefix
36

47

58
def generate_package_version_check(
@@ -25,3 +28,10 @@ def generate_package_version_check(
2528

2629
return f"""# sanity check that the version from the tag is equal to the version of {pkg_name} that we expect
2730
{DOCKERFILE_RUN} [ "$(rpm -q --qf '%{{version}}' {pkg_name} | cut -d '.' -f -{cut_count})" = "{pkg_version}" ]"""
31+
32+
33+
def generate_from_image(os_version, container_name) -> str:
34+
repo = f"{_build_tag_prefix(os_version)}/{container_name}:{OsContainer.version_to_container_os_version(os_version)}"
35+
if not os_version.is_tumbleweed and os_version in RELEASED_OS_VERSIONS:
36+
return f"registry.suse.com/{repo}"
37+
return repo

tests/test_build_recipe.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#!BuildTag: bci/test:27-%RELEASE%
2929
#!BuildName: bci-test-27
3030
#!BuildVersion: 15.6.27
31-
FROM bci/bci-base:15.6
31+
FROM registry.suse.com/bci/bci-base:15.6
3232
3333
RUN \\
3434
zypper -n install --no-recommends gcc emacs; \\
@@ -75,7 +75,7 @@
7575
<specification>SLE BCI Test Container Image</specification>
7676
</description>
7777
<preferences>
78-
<type image="docker" derived_from="obsrepositories:/bci/bci-base#15.6">
78+
<type image="docker" derived_from="obs://SUSE:Registry/standard/bci/bci-base#15.6">
7979
<containerconfig
8080
name="bci/test"
8181
tag="27"
@@ -145,7 +145,7 @@
145145
#!BuildTag: bci/test:%%emacs_ver%%-1.%RELEASE%
146146
#!BuildName: bci-test-stable
147147
#!BuildVersion: 15.5
148-
FROM bci/bci-base:15.5
148+
FROM registry.suse.com/bci/bci-base:15.5
149149
150150
RUN \\
151151
zypper -n install --no-recommends gcc emacs; \\
@@ -189,7 +189,7 @@
189189
<specification>SLE BCI Test Container Image</specification>
190190
</description>
191191
<preferences>
192-
<type image="docker" derived_from="obsrepositories:/bci/bci-base#15.5">
192+
<type image="docker" derived_from="obs://SUSE:Registry/standard/bci/bci-base#15.5">
193193
<containerconfig
194194
name="bci/test"
195195
tag="stable"
@@ -253,7 +253,7 @@
253253
#!BuildTag: bci/test:29-%RELEASE%
254254
#!BuildName: bci-test-29
255255
#!BuildVersion: 15.6.29
256-
FROM bci/bci-base:15.6
256+
FROM registry.suse.com/bci/bci-base:15.6
257257
258258
RUN \\
259259
zypper -n install --no-recommends gcc emacs; \\
@@ -297,7 +297,7 @@
297297
<specification>SLE BCI Test Container Image</specification>
298298
</description>
299299
<preferences>
300-
<type image="docker" derived_from="obsrepositories:/bci/bci-base#15.6">
300+
<type image="docker" derived_from="obs://SUSE:Registry/standard/bci/bci-base#15.6">
301301
<containerconfig
302302
name="bci/test"
303303
tag="29"

0 commit comments

Comments
 (0)