Skip to content

Commit b99dd31

Browse files
fmoessbauerjan-kiszka
authored andcommitted
kas-container: allow to select specific image distribution
With the recent publishing of per-distro container builds (e.g. bookworm, trixie), we also allow the user to select the specific distro version. For that, we introduce the environment variable KAS_CONTAINER_IMAGE_DISTRO, which results in appending "-<distro>" to the image tag. If unset, the most recent version is choosen (i.e. nothing is appended to the tag). Signed-off-by: Felix Moessbauer <[email protected]> Signed-off-by: Jan Kiszka <[email protected]>
1 parent f1cc7eb commit b99dd31

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed

docs/command-line/environment-variables.inc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,11 @@ overwritten using the ``env`` section of the config file.
193193
| ``KAS_IMAGE_VERSION`` (C)| Select the version of the (official) kas |
194194
| | container (e.g. 4.5). |
195195
+--------------------------+--------------------------------------------------+
196+
| |container-distro| (C) | Select the base distro and its release of the |
197+
| | container image (e.g. ``debian-bookworm``). |
198+
| | If not specified, the default (most-recent |
199+
| | supported) distro version is used. |
200+
+--------------------------+--------------------------------------------------+
196201
| ``KAS_CONTAINER_IMAGE`` | Select the container image (full OCI path |
197202
| (C) | including tag). |
198203
+--------------------------+--------------------------------------------------+
@@ -221,6 +226,7 @@ overwritten using the ``env`` section of the config file.
221226
``CI_SERVER_PROTOCOL``
222227
``CI_SERVER_SHELL_SSH_HOST``
223228
``CI_SERVER_SHELL_SSH_PORT``
229+
.. |container-distro| replace:: ``KAS_CONTAINER_IMAGE_DISTRO``
224230

225231
.. only:: html
226232

docs/userguide/getting-started.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ There are (at least) three options for using kas:
3030
use it in place of the ``kas`` command.
3131
The script version corresponds to the kas tool and the kas image version.
3232
- Use the container image in CI. Specify
33-
``ghcr.io/siemens/kas/kas[-isar][:<x.y>][-<distro-release>]`` in your CI script
34-
that requests a container image as runtime environment.
33+
``ghcr.io/siemens/kas/kas[-isar][:<x.y>][-<distro-release>]`` in your CI
34+
script that requests a container image as runtime environment.
3535

3636
Start build::
3737

docs/userguide/kas-container-description.inc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@ from ``kas-container`` and the versions do not match, a warning is emitted. This
1717
limitation might be lessened in the future, once a stable interface between
1818
``kas-container`` and kas is introduced.
1919

20+
From version ``5.0`` onward, kas offers images built on several base
21+
distributions. Select a distribution by setting the environment variable
22+
``KAS_CONTAINER_IMAGE_DISTRO`` to the desired value (e.g. ``debian-bookworm``
23+
or ``debian-trixie``). The corresponding image tags follow the pattern
24+
``:<version>-<base-distro>`` (e.g. ``:5.0-debian-bookworm``).
25+
Alternatively, you can adjust ``KAS_CONTAINER_IMAGE_DISTRO_DEFAULT`` in the
26+
``kas-container`` script if you copy this into your downstream layer already
27+
for encoding the supported kas version.
28+
2029
As container backends, Docker and
2130
Podman are supported. To force the use of podman over docker, set
2231
``KAS_CONTAINER_ENGINE=podman``. For details, see :ref:`env-vars-label`.

kas-container

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ set -e
2929

3030
KAS_CONTAINER_SCRIPT_VERSION="4.8.2"
3131
KAS_IMAGE_VERSION_DEFAULT="${KAS_CONTAINER_SCRIPT_VERSION}"
32+
KAS_CONTAINER_IMAGE_DISTRO_DEFAULT=""
3233
KAS_CONTAINER_IMAGE_PATH_DEFAULT="ghcr.io/siemens/kas"
3334
KAS_CONTAINER_IMAGE_NAME_DEFAULT="kas"
3435
KAS_CONTAINER_SELF_NAME="$(basename "$0")"
@@ -290,10 +291,14 @@ trap kas_container_cleanup EXIT INT TERM
290291
set_container_image_var()
291292
{
292293
KAS_IMAGE_VERSION="${KAS_IMAGE_VERSION:-${KAS_IMAGE_VERSION_DEFAULT}}"
294+
KAS_CONTAINER_IMAGE_DISTRO="${KAS_CONTAINER_IMAGE_DISTRO:-${KAS_CONTAINER_IMAGE_DISTRO_DEFAULT}}"
293295
KAS_CONTAINER_IMAGE_NAME="${KAS_CONTAINER_IMAGE_NAME:-${KAS_CONTAINER_IMAGE_NAME_DEFAULT}}"
294296
KAS_CONTAINER_IMAGE_PATH="${KAS_CONTAINER_IMAGE_PATH:-${KAS_CONTAINER_IMAGE_PATH_DEFAULT}}"
295297
KAS_CONTAINER_IMAGE_DEFAULT="${KAS_CONTAINER_IMAGE_PATH}/${KAS_CONTAINER_IMAGE_NAME}:${KAS_IMAGE_VERSION}"
296298
KAS_CONTAINER_IMAGE="${KAS_CONTAINER_IMAGE:-${KAS_CONTAINER_IMAGE_DEFAULT}}"
299+
if [ -n "${KAS_CONTAINER_IMAGE_DISTRO}" ]; then
300+
KAS_CONTAINER_IMAGE="${KAS_CONTAINER_IMAGE}-${KAS_CONTAINER_IMAGE_DISTRO}"
301+
fi
297302
}
298303

299304
# SC2034: DIR appears unused (ignore, as they are used inside eval)

0 commit comments

Comments
 (0)