From 45922037eb71a3a072ec6848490cc0063391d42e Mon Sep 17 00:00:00 2001 From: Drew Reed Date: Thu, 19 Jan 2023 08:40:53 +0000 Subject: [PATCH 1/3] ci: Move to new template version v1.1.1 As the new GitLab runners require us to build containers via buildah this change updates us to the latest template version incorporating the change. Changelog: other Signed-off-by: Drew Reed --- .gitlab-ci.yml | 4 ++-- .gitlab/ci/docker-image-builds.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d360b3f..6a9b27c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Arm Limited or its affiliates. All rights reserved. +# Copyright (c) 2022-2023 Arm Limited or its affiliates. All rights reserved. # # SPDX-License-Identifier: MIT --- @@ -36,7 +36,7 @@ variables: # include jobs include: - project: $PIPELINE_TEMPLATE_PROJECT - ref: v0.0.13 + ref: v1.1.1 file: - gitlab-ci/common_gitlab-ci.yml - gitlab-ci/docker-image-base_gitlab-ci.yml diff --git a/.gitlab/ci/docker-image-builds.yml b/.gitlab/ci/docker-image-builds.yml index 31898b7..b3a99d9 100644 --- a/.gitlab/ci/docker-image-builds.yml +++ b/.gitlab/ci/docker-image-builds.yml @@ -18,7 +18,7 @@ Build-Kas-Docker-Arch-Image: - ${BUILD_ARCH} variables: &Build-Kas-Docker-Arch-Image_variables DOCKER_IMAGE_NAME: kas-build-image - KANIKO_BUILD_CONTEXT: $CI_PROJECT_DIR/.gitlab/Dockerfiles/$DOCKER_IMAGE_NAME + BUILD_CONTEXT: $CI_PROJECT_DIR/.gitlab/Dockerfiles/$DOCKER_IMAGE_NAME rules: &Build-Kas-Docker-Arch-Image_rules - changes: - .gitlab-ci.yml @@ -42,7 +42,7 @@ Build-Utility-Docker-Arch-Image: tags: *Build-Kas-Docker-Arch-Image_tags variables: &Build-Utility-Docker-Arch-Image_variables DOCKER_IMAGE_NAME: utility-image - KANIKO_BUILD_CONTEXT: $CI_PROJECT_DIR/.gitlab/Dockerfiles/$DOCKER_IMAGE_NAME + BUILD_CONTEXT: $CI_PROJECT_DIR/.gitlab/Dockerfiles/$DOCKER_IMAGE_NAME rules: &Build-Utility-Docker-Arch-Image_rules - changes: - .gitlab-ci.yml @@ -66,7 +66,7 @@ Build-Lava-Docker-Arch-Image: tags: *Build-Kas-Docker-Arch-Image_tags variables: &Build-Lava-Docker-Arch-Image_variables DOCKER_IMAGE_NAME: lava-test-image - KANIKO_BUILD_CONTEXT: $CI_PROJECT_DIR/.gitlab/Dockerfiles/$DOCKER_IMAGE_NAME + BUILD_CONTEXT: $CI_PROJECT_DIR/.gitlab/Dockerfiles/$DOCKER_IMAGE_NAME rules: &Build-Lava-Docker-Arch-Image_rules - changes: - .gitlab-ci.yml -- GitLab From 2c01f2f2de37ed271f44715cd442c62dd38ed3d9 Mon Sep 17 00:00:00 2001 From: Drew Reed Date: Fri, 3 Feb 2023 14:13:49 +0000 Subject: [PATCH 2/3] ci: Switch to using upstream kas container We no longer have to specify the user and group id in the kas Dockerfile as the entrypoint can now be run by setting some kubernetes variables. Remove the kas Dockerfile. Set git to treat the project directory as safe since the files are checked out as root but the build is executed as another user. Signed-off-by: Drew Reed --- .../Dockerfiles/kas-build-image/Dockerfile | 16 ---------- .gitlab/ci/cassini-build.yml | 10 +++++-- .gitlab/ci/docker-image-builds.yml | 30 ++----------------- .gitlab/ci/trigger-image-builds.yml | 5 +--- 4 files changed, 12 insertions(+), 49 deletions(-) delete mode 100644 .gitlab/Dockerfiles/kas-build-image/Dockerfile diff --git a/.gitlab/Dockerfiles/kas-build-image/Dockerfile b/.gitlab/Dockerfiles/kas-build-image/Dockerfile deleted file mode 100644 index 15de50d..0000000 --- a/.gitlab/Dockerfiles/kas-build-image/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (c) 2022-2023, Arm Limited and/or its affiliates. -# -# SPDX-License-Identifier: MIT -ARG GHCR_MIRROR=ghcr.io/ - -FROM ${GHCR_MIRROR}siemens/kas/kas:latest-release - -ARG local_user=cassini-ci -ARG user_id=999 -ARG group_id=999 - -RUN groupadd -g $group_id $local_user && useradd --no-log-init -m -d /builder -g $local_user -u $user_id $local_user \ - && chown -R $local_user:$local_user /builder \ - && cd /builder - -USER $local_user diff --git a/.gitlab/ci/cassini-build.yml b/.gitlab/ci/cassini-build.yml index 6190f4f..ceca8ad 100644 --- a/.gitlab/ci/cassini-build.yml +++ b/.gitlab/ci/cassini-build.yml @@ -13,10 +13,15 @@ TOOLCHAIN_DIR: $CACHE_DIR/$PROJECT_VERSION/toolchains .kas_build: - image: $CI_REGISTRY/$CI_PROJECT_PATH/$DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG + image: ${MIRROR_GHCR}/siemens/kas/kas:3.2 variables: - DOCKER_IMAGE_NAME: kas-build-image KAS_REPO_REF_DIR: $CACHE_DIR/$PROJECT_VERSION/repos + # These are needed as GitLab doesn't respect the container + # entrypoint by default + FF_KUBERNETES_HONOR_ENTRYPOINT: 1 + FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY: 0 + USER_ID: 999 + GROUP_ID: 999 # Extend the kas base build to enab;e to use of repos that are not yet public .kas_build_cassini: @@ -36,6 +41,7 @@ https://${CI_SERVER_HOST} - git config --global user.email "you@example.com" - git config --global user.name "Your Name" + - git config --global --add safe.directory ${CI_PROJECT_DIR} # export parent pipeline global variables - echo PARENT_PIPELINE_ID = $PARENT_PIPELINE_ID - !reference [".kas_build", before_script] diff --git a/.gitlab/ci/docker-image-builds.yml b/.gitlab/ci/docker-image-builds.yml index b3a99d9..2e5638b 100644 --- a/.gitlab/ci/docker-image-builds.yml +++ b/.gitlab/ci/docker-image-builds.yml @@ -6,7 +6,7 @@ .if-new-merge-request: &if-new-merge-request if: '$CI_MERGE_REQUEST_IID && ($CI_MERGE_REQUEST_PROJECT_ID != $CI_MERGE_REQUEST_SOURCE_PROJECT_ID)' -Build-Kas-Docker-Arch-Image: +Build-Utility-Docker-Arch-Image: extends: .build-docker-image parallel: &Build-Matrix matrix: @@ -14,32 +14,8 @@ Build-Kas-Docker-Arch-Image: ARCH_SUFFIX: -amd64 - BUILD_ARCH: arm64 ARCH_SUFFIX: -arm64v8 - tags: &Build-Kas-Docker-Arch-Image_tags + tags: &Build-Arch-Image_tags - ${BUILD_ARCH} - variables: &Build-Kas-Docker-Arch-Image_variables - DOCKER_IMAGE_NAME: kas-build-image - BUILD_CONTEXT: $CI_PROJECT_DIR/.gitlab/Dockerfiles/$DOCKER_IMAGE_NAME - rules: &Build-Kas-Docker-Arch-Image_rules - - changes: - - .gitlab-ci.yml - - .gitlab/ci/docker-image-builds.yml - - .gitlab/Dockerfiles/kas-build-image/**/* - - <<: *if-new-merge-request - -Build-Kas-Docker-Image: - extends: - - .build-docker-image - - .build-docker-multiarch-image - variables: *Build-Kas-Docker-Arch-Image_variables - rules: *Build-Kas-Docker-Arch-Image_rules - needs: - - job: Build-Kas-Docker-Arch-Image - artifacts: false - -Build-Utility-Docker-Arch-Image: - extends: .build-docker-image - parallel: *Build-Matrix - tags: *Build-Kas-Docker-Arch-Image_tags variables: &Build-Utility-Docker-Arch-Image_variables DOCKER_IMAGE_NAME: utility-image BUILD_CONTEXT: $CI_PROJECT_DIR/.gitlab/Dockerfiles/$DOCKER_IMAGE_NAME @@ -63,7 +39,7 @@ Build-Utility-Docker-Image: Build-Lava-Docker-Arch-Image: extends: .build-docker-image parallel: *Build-Matrix - tags: *Build-Kas-Docker-Arch-Image_tags + tags: *Build-Arch-Image_tags variables: &Build-Lava-Docker-Arch-Image_variables DOCKER_IMAGE_NAME: lava-test-image BUILD_CONTEXT: $CI_PROJECT_DIR/.gitlab/Dockerfiles/$DOCKER_IMAGE_NAME diff --git a/.gitlab/ci/trigger-image-builds.yml b/.gitlab/ci/trigger-image-builds.yml index 26cc461..2787ee0 100644 --- a/.gitlab/ci/trigger-image-builds.yml +++ b/.gitlab/ci/trigger-image-builds.yml @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Arm Limited or its affiliates. All rights reserved. +# Copyright (c) 2022-2023 Arm Limited or its affiliates. All rights reserved. # # SPDX-License-Identifier: MIT --- @@ -38,9 +38,6 @@ merge_jobs: trigger_jobs: needs: - merge_jobs - - job: Build-Kas-Docker-Image - optional: true - artifacts: false - job: Build-Utility-Docker-Image optional: true artifacts: false -- GitLab From cc6d3401ab80bdc22b6b5531a4e4586fe0286a09 Mon Sep 17 00:00:00 2001 From: Adam Johnston Date: Mon, 13 Feb 2023 10:22:13 +0000 Subject: [PATCH 3/3] cassini-[bsp,config]: Restore Linux 5.19 support in meta-virtualization Switching the Linux kernel to 6.1 in meta-virtualization causes N1SDP build to fail as it is still on 5.19 in meta-arm. Temporarily restore 5.19 until N1SDP in meta-arm supports 6.1. Signed-off-by: Adam Johnston --- ...-restore-recipe-for-Linux-Yocto-5.19.patch | 30 +++++++++++++++++++ meta-cassini-config/kas/n1sdp.yml | 11 ++++++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 meta-cassini-bsp/meta-virtualization/patches/0001-restore-recipe-for-Linux-Yocto-5.19.patch diff --git a/meta-cassini-bsp/meta-virtualization/patches/0001-restore-recipe-for-Linux-Yocto-5.19.patch b/meta-cassini-bsp/meta-virtualization/patches/0001-restore-recipe-for-Linux-Yocto-5.19.patch new file mode 100644 index 0000000..6466b8a --- /dev/null +++ b/meta-cassini-bsp/meta-virtualization/patches/0001-restore-recipe-for-Linux-Yocto-5.19.patch @@ -0,0 +1,30 @@ +From 3d8ae1b836fc11354fbc7d1c1cb7eb4abc550fd4 Mon Sep 17 00:00:00 2001 +From: Adam Johnston +Date: Mon, 13 Feb 2023 10:12:06 +0000 +Subject: [PATCH] Restore recipe for Linux Yocto 5.19 + +Switching the Linux kernel to 6.1 in meta-virtualization causes N1SDP +build to fail as it is still on 5.19 in meta-arm. Temporarily restore +5.19 until N1SDP in meta-arm supports 6.1. + +Upstream-Status: Inappropriate +Signed-off-by: Adam Johnston + +--- + recipes-kernel/linux/linux-yocto_5.19_virtualization.inc | 4 ++++ + 1 file changed, 4 insertions(+) + create mode 100644 recipes-kernel/linux/linux-yocto_5.19_virtualization.inc + +diff --git a/recipes-kernel/linux/linux-yocto_5.19_virtualization.inc b/recipes-kernel/linux/linux-yocto_5.19_virtualization.inc +new file mode 100644 +index 0000000..5931148 +--- /dev/null ++++ b/recipes-kernel/linux/linux-yocto_5.19_virtualization.inc +@@ -0,0 +1,4 @@ ++# include the baseline meta virtualization configuration options ++# after this include, we can do version specific things ++ ++include linux-yocto_virtualization.inc +-- +2.39.1 + diff --git a/meta-cassini-config/kas/n1sdp.yml b/meta-cassini-config/kas/n1sdp.yml index b7d1b44..57640a3 100644 --- a/meta-cassini-config/kas/n1sdp.yml +++ b/meta-cassini-config/kas/n1sdp.yml @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Arm Limited or its affiliates. All rights reserved. +# Copyright (c) 2022-2023 Arm Limited or its affiliates. All rights reserved. # # SPDX-License-Identifier: MIT @@ -8,6 +8,15 @@ header: includes: - meta-cassini-config/kas/include/arm-machines.yml +repos: + meta-virtualization: + patches: + 0001-revert-linux-yocto-6.1: + repo: meta-cassini + path: + "meta-cassini-bsp/meta-virtualization/patches/\ + 0001-restore-recipe-for-Linux-Yocto-5.19.patch" + local_conf_header: n1sdp: | IMAGE_FSTYPES:remove:n1sdp = "wic ext4" -- GitLab