From fe6cff63d20f9f89d606bb0ca3089e132f47c49a Mon Sep 17 00:00:00 2001 From: Thomas Minor Date: Sun, 21 Sep 2025 16:45:34 +0200 Subject: [PATCH 1/3] feat: migrate azure flavour to use azurelinux3.0 #184 --- build.sh | 28 ++++++++++++++++------------ feature/_fish/install.sh | 11 +---------- flavour/azure/Dockerfile.flavour | 23 +++++++++++++---------- flavour/azure/flavour.yaml | 4 ++-- 4 files changed, 32 insertions(+), 34 deletions(-) mode change 100644 => 100755 build.sh diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 index 97cf0e9..646c4c5 --- a/build.sh +++ b/build.sh @@ -5,31 +5,35 @@ set -euo pipefail # CloudControl build script # Usage: # -# bash build.sh [] +# bash build.sh [ []] # +# If no tag is given, latest will be used +# The flavour can only be specified, if a tag is given. # If no flavour is specified, all flavours will be built mv Dockerfile Dockerfile.sav &>/dev/null || true -TAG=latest -if [ -n "$1" ] +TAG="${1-latest}" +EXISTING_FLAVOURS=$(find flavour -mindepth 1 -maxdepth 1 -type d -exec basename {} \; | paste -s -d ' ' -)" " +FLAVOURS='' +if [[ $# -ne 2 ]] then - TAG=$1 -fi - -FLAVOURS="" -if [ -n "$1" ] && [ -z "$2" ] || [ -z "$1" ] -then - FLAVOURS=$(find flavour -maxdepth 1 -type d -exec basename {} \; | grep -v flavour | paste -s -d " " -) + FLAVOURS=${EXISTING_FLAVOURS} else - FLAVOURS=$2 + if [[ "${EXISTING_FLAVOURS}" == *"$2 "* ]] + then + FLAVOURS=$2 + else + >&2 echo "The flavour '$2' does not exist!" + exit 1 + fi fi for FLAVOUR in ${FLAVOURS} do cat build/Dockerfile.prefix > Dockerfile cat "flavour/${FLAVOUR}/Dockerfile.flavour" >> Dockerfile - cat build/Dockerfile.suffix.mo | docker run --rm -i -e FLAVOUR=${FLAVOUR} -e BUILD_DATE=$(date -Iseconds) ghcr.io/tests-always-included/mo:3.0.5 >> Dockerfile + cat build/Dockerfile.suffix.mo | docker run --rm -i -e FLAVOUR=${FLAVOUR} -e BUILD_DATE="$(date -Iseconds)" ghcr.io/tests-always-included/mo:3.0.5 >> Dockerfile docker build --pull . --no-cache -t "ghcr.io/dodevops/cloudcontrol-${FLAVOUR}:${TAG}" done diff --git a/feature/_fish/install.sh b/feature/_fish/install.sh index 95252bc..fc45e89 100644 --- a/feature/_fish/install.sh +++ b/feature/_fish/install.sh @@ -3,16 +3,7 @@ if [[ "${FLAVOUR}" =~ (simple|tanzu|gcloud) ]] then execHandle 'Installing fish' sudo apk add fish perl fzf git -elif [[ "${FLAVOUR}" == "azure" ]] -then - prepare - execHandle 'Installing fish' sudo yum install -y fish perl git - execHandle 'Downloading fzf' curl -f -s -L https://github.com/junegunn/fzf/archive/master.zip -o master.zip - execHandle 'Unzipping fzf' unzip master.zip - execHandle 'Moving fzf' mv fzf-master ~/bin - execHandle 'Installing fzf' ~/bin/fzf-master/install --all - cleanup -elif [[ "${FLAVOUR}" == "aws" ]] +elif [[ "${FLAVOUR}" =~ (aws|azure) ]] then prepare execHandle 'Downloading fish repo' sudo curl -f -s -L https://download.opensuse.org/repositories/shells:fish:release:3/CentOS_7/shells:fish:release:3.repo -o /etc/yum.repos.d/shells:fish:release:3.repo diff --git a/flavour/azure/Dockerfile.flavour b/flavour/azure/Dockerfile.flavour index 43788c5..fab03a6 100644 --- a/flavour/azure/Dockerfile.flavour +++ b/flavour/azure/Dockerfile.flavour @@ -1,17 +1,20 @@ -FROM mcr.microsoft.com/azure-cli:cbl-mariner2.0 +FROM mcr.microsoft.com/azure-cli:azurelinux3.0 -RUN yum install -y sudo curl tar unzip && \ - echo "cloudcontrol ALL=(root)NOPASSWD:/usr/bin/yum *" > /etc/sudoers.d/cloudcontrol && \ - echo "cloudcontrol ALL=(root)NOPASSWD:/usr/bin/az *" >> /etc/sudoers.d/cloudcontrol && \ - echo "cloudcontrol ALL=(root)NOPASSWD:/usr/bin/chmod *" >> /etc/sudoers.d/cloudcontrol && \ - echo "cloudcontrol ALL=(root)NOPASSWD:/usr/bin/cp *" >> /etc/sudoers.d/cloudcontrol && \ - echo "cloudcontrol ALL=(root)NOPASSWD:/usr/bin/update-ca-trust" >> /etc/sudoers.d/cloudcontrol && \ - adduser -mr cloudcontrol && \ - mkdir /home/cloudcontrol/bin && \ + +RUN <> /etc/sudoers.d/cloudcontrol + done + adduser -mr cloudcontrol + mkdir /home/cloudcontrol/bin chown cloudcontrol /home/cloudcontrol/bin +RUN_SCRIPT # Flavour - COPY flavour/azure/flavour /home/cloudcontrol/flavour COPY flavour/azure/flavourinit.sh /home/cloudcontrol/bin/flavourinit.sh RUN chmod +x /home/cloudcontrol/bin/flavourinit.sh diff --git a/flavour/azure/flavour.yaml b/flavour/azure/flavour.yaml index 598b323..3789d26 100644 --- a/flavour/azure/flavour.yaml +++ b/flavour/azure/flavour.yaml @@ -7,10 +7,10 @@ description: | (located in ~/bin, thus available without path) to re-execute the same login commands as the initialization process does. configuration: - - "Environment AZ_SUBSCRIPTION: The Azure subscription to use in this container (deprecated)" - "Environment ARM_SUBSCRIPTION_ID: The Azure subscription to use in this container" - - "Environment AZ_TENANTID: The Azure tenant id to log into (optional, deprecated)" - "Environment ARM_TENANT_ID: The Azure tenant id to log into (optional)" + - "Environment AZ_SUBSCRIPTION: The Azure subscription to use in this container (deprecated)" + - "Environment AZ_TENANTID: The Azure tenant id to log into (optional, deprecated)" - "Environment AZ_USE_ARM_SPI: Uses the environment variables ARM_CLIENT_ID and ARM_CLIENT_SECRET for service principal auth [false]" platforms: - linux/amd64 From 7bcd61ea2a5304824fb33b40e22e536c9911fe44 Mon Sep 17 00:00:00 2001 From: DO! DevOps bot Date: Sun, 21 Sep 2025 14:46:16 +0000 Subject: [PATCH 2/3] docs: Automatic docs update --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 90fb70a..8a53471 100644 --- a/README.md +++ b/README.md @@ -342,10 +342,10 @@ initialization process does. #### Configuration -* Environment AZ_SUBSCRIPTION: The Azure subscription to use in this container (deprecated) * Environment ARM_SUBSCRIPTION_ID: The Azure subscription to use in this container -* Environment AZ_TENANTID: The Azure tenant id to log into (optional, deprecated) * Environment ARM_TENANT_ID: The Azure tenant id to log into (optional) +* Environment AZ_SUBSCRIPTION: The Azure subscription to use in this container (deprecated) +* Environment AZ_TENANTID: The Azure tenant id to log into (optional, deprecated) * Environment AZ_USE_ARM_SPI: Uses the environment variables ARM_CLIENT_ID and ARM_CLIENT_SECRET for service principal auth [false] ### gcloud From 47f6702388019eb2971e5b6e32715e04c13427d4 Mon Sep 17 00:00:00 2001 From: Thomas Minor Date: Mon, 22 Sep 2025 10:20:35 +0200 Subject: [PATCH 3/3] fix: remove superfluous symlink --- flavour/azure/Dockerfile.flavour | 1 - 1 file changed, 1 deletion(-) diff --git a/flavour/azure/Dockerfile.flavour b/flavour/azure/Dockerfile.flavour index fab03a6..799f686 100644 --- a/flavour/azure/Dockerfile.flavour +++ b/flavour/azure/Dockerfile.flavour @@ -2,7 +2,6 @@ FROM mcr.microsoft.com/azure-cli:azurelinux3.0 RUN <