diff --git a/fedora-iot.conf b/fedora-iot.conf index 99c08de..0542960 100644 --- a/fedora-iot.conf +++ b/fedora-iot.conf @@ -22,7 +22,7 @@ sigkeys = ['e99d6ad1'] tree_arches = ['aarch64', 'x86_64', "ppc64le", "s390x"] # limit tree variants # if undefined, all variants from variants.xml will be included -tree_variants = ['IoT', 'bootc', 'bootc-tier0'] +tree_variants = ['bootc'] hashed_directories = True # RUNROOT settings @@ -87,13 +87,6 @@ lorax_options = [ }) ] -additional_packages = [ - ('^IoT$$', { - '*': [ - '*', - ], - }), -] multilib = [ ('^Everything$', { 'x86_64': ['devel', 'runtime'], @@ -203,93 +196,24 @@ translate_paths = [ ] # These will be inherited by live_media, live_images and image_build -global_ksurl = 'git+https://pagure.io/fedora-kickstarts.git?#HEAD' +global_ksurl = 'git+https://pagure.io/fedora-kickstarts.git?#origin/f41' global_release = '!RELEASE_FROM_LABEL_DATE_TYPE_RESPIN' global_version = '41' # live_images ignores this in favor of live_target global_target = 'f41' -osbuild = { - "^IoT$": [ - { - "name": "%s-raw" % release_name, - "distro": "fedora-41", - "image_types": ["iot-raw-image"], - "target": "f%s-candidate" % release_version, - "arches": ["x86_64", "aarch64"], - "repo": ["https://kojipkgs.fedoraproject.org/compose/rawhide/latest-Fedora-Rawhide/compose/Everything/$arch/os/"], - "ostree_url": "https://kojipkgs.fedoraproject.org/compose/iot/repo/", - "ostree_ref": "fedora/rawhide/$arch/iot", - "subvariant": "IoT", - }, - { - "name": "%s-ostree" % release_name, - "distro": "fedora-41", - "image_types": ["iot-installer"], - "target": "f%s-candidate" % release_version, - "arches": ["x86_64", "aarch64"], - "repo": ["https://kojipkgs.fedoraproject.org/compose/rawhide/latest-Fedora-Rawhide/compose/Everything/$arch/os/"], - "ostree_url": "https://kojipkgs.fedoraproject.org/compose/iot/repo/", - "ostree_ref": "fedora/rawhide/$arch/iot", - "subvariant": "IoT", - "manifest_type": "dvd-ostree", - }, - { - "name": "%s-provisioner" % release_name, - "distro": "fedora-41", - "image_types": ["iot-simplified-installer"], - "target": "f%s-candidate" % release_version, - "arches": ["x86_64", "aarch64"], - "repo": ["https://kojipkgs.fedoraproject.org/compose/rawhide/latest-Fedora-Rawhide/compose/Everything/$arch/os/"], - "ostree_url": "https://kojipkgs.fedoraproject.org/compose/iot/repo/", - "ostree_ref": "fedora/rawhide/$arch/iot", - "subvariant": "IoT_Simplified_Provisioner", - "customizations": {"installation_device": "/dev/vda"}, - "failable": ["*"], - "manifest_type": "dvd-ostree", - }, - ], -} - -ostree = { - "^IoT$": { - "version": "!OSTREE_VERSION_FROM_LABEL_DATE_TYPE_RESPIN", - "force_new_commit": True, - "unified_core": True, - "treefile": "fedora-iot.yaml", - "config_url": "https://pagure.io/fedora-iot/ostree.git", - "config_branch": "main", - "repo": [ - "IoT", - "https://kojipkgs.fedoraproject.org/compose/rawhide/latest-Fedora-Rawhide/compose/Everything/$basearch/os/" - ] - "tag_ref": False, - "ostree_repo": "/mnt/koji/compose/iot/repo/", - "ostree_ref": "fedora/rawhide/${basearch}/iot", - "runroot_packages": ["selinux-policy-targeted"], - "arches": ["x86_64", "aarch64"], - "update_summary": True, - } -} - ostree_container = { "^bootc$": { "version": "!OSTREE_VERSION_FROM_LABEL_DATE_TYPE_RESPIN", "config_url": "https://pagure.io/fedora-iot/base-images", - "config_branch": "main", - "treefile": "fedora-bootc.yaml", - "repo": ["https://kojipkgs.fedoraproject.org/compose/rawhide/latest-Fedora-Rawhide/compose/Everything/$basearch/os/"], - "arches": ["x86_64", "aarch64", "ppc64le", "s390x"], - "failable": ['*'], - }, - "^bootc-tier0$": { - "version": "!OSTREE_VERSION_FROM_LABEL_DATE_TYPE_RESPIN", - "config_url": "https://pagure.io/fedora-iot/base-images", - "config_branch": "main", - "treefile": "fedora-tier-0.yaml", - "repo": ["https://kojipkgs.fedoraproject.org/compose/rawhide/latest-Fedora-Rawhide/compose/Everything/$basearch/os/"], + "config_branch": "f41-stable", + "treefile": "fedora-41.yaml", + "repo": ["https://kojipkgs.fedoraproject.org/compose/41/Fedora-41-20241024.0/compose/Everything/$basearch/os/", + "https://kojipkgs.fedoraproject.org/compose/updates/f41-updates/compose/Everything/$basearch/os/"], "arches": ["x86_64", "aarch64", "ppc64le", "s390x"], "failable": ['*'], + "subvariant": "base", + "name": "Fedora-base-bootc", }, } diff --git a/nightly.sh b/nightly.sh index e42e037..84b0a99 100755 --- a/nightly.sh +++ b/nightly.sh @@ -36,7 +36,7 @@ fi # Set up our fedmsg function, using the releng repo definition #FEDMSG_MODNAME="compose" #FEDMSG_CERTPREFIX="releng" -. ./releng/scripts/fedmsg-functions.sh +. ./releng/scripts_new/infrastructure/messaging/fedora_messaging.sh # Announce that we are starting, even though we don't know the compose_id yet.. #fedmsg_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s", "short": "%s"}' "$RELEASE" "$ARCH" "$SHORT") diff --git a/sync-bootc-base-containers.sh b/sync-bootc-base-containers.sh index da29480..2536caf 100755 --- a/sync-bootc-base-containers.sh +++ b/sync-bootc-base-containers.sh @@ -33,8 +33,6 @@ EXAMPLE EOF } -ARCHES=("aarch64" "x86_64" "ppc64le" "s390x") - arch_to_goarch() { local a=$1; shift # See https://github.com/coreos/stream-metadata-go/blob/c5fe1b98ac1b1e6ab62a606b7580dc1f30703f83/arch/arch.go#L14 @@ -49,9 +47,11 @@ arch_to_goarch() { # This is the release of Fedora that is currently stable, it will define if we # need to move the fedora:latest tag -current_stable="40" +current_stable="42" +# Define the development release +#current_devel="41" # Define what is rawhide so we know to push that tag -current_rawhide="41" +current_rawhide="43" # Sanity checking if ! [[ "${1}" =~ ^-?[0-9]+$ ]]; then @@ -69,7 +69,7 @@ if [[ "${3}" == "-s" ]]; then stage="true" fi -basename="Fedora-IoT-bootc" +BASENAMES=("Fedora-IoT-bootc") format="oci-archive" vers=${1} compose=${2} @@ -81,14 +81,15 @@ compdate=`echo ${compose} | cut -c 4-` # Can't currently query koji for runroot tasks as they're not tagged # # base_build_nvr=$(koji -q latest-build --type=image f${1}-updates-candidate ${basename} | awk '{print $1}') -base_build_nvr=${basename}-${vers}-${compdate} if [[ ${1} -eq "$current_stable" ]]; then tagname="latest" -fi -if [[ ${1} -eq "$current_rawhide" ]]; then +elif [[ ${1} -eq "$current_rawhide" ]]; then tagname="rawhide" +elif [[ ${1} -eq "$current_devel" ]]; then + tagname="${current_devel}" fi + if [[ -z "$stage" ]]; then registries=("registry.fedoraproject.org" "candidate-registry.fedoraproject.org" "quay.io/fedora") else @@ -136,7 +137,7 @@ find_and_copy_images() { local registry_name=$2 local release=$3 local name - if [[ ${registry_name} = "fedora-bootc" ]]; then + if [[ ${registry_name} = "fedora-bootc" ]] || [[ ${registry_name} = "fedora-iot" ]]; then name=${basename} else printf "Unexpected image type! If we added a new one, it needs mapping here" @@ -144,10 +145,10 @@ find_and_copy_images() { fi # Check that all architectures completed in the build else exit for arch in "${ARCHES[@]}"; do - if [ ! -f "/mnt/koji/compose/iot/Fedora-IoT-${release}-${compdate}/compose/bootc/${arch}/images/${basename}-${release}.${compdate}.ociarchive" ]; then - echo "One of the expected images are missing, exiting." - exit 1 - fi + if [ ! -f "/mnt/koji/compose/iot/Fedora-IoT-${release}-${compdate}/compose/${compose_type}/${arch}/images/${basename}-${release}.${compdate}.ociarchive" ]; then + echo "One of the expected images are missing, exiting." + exit 1 + fi done work_dir=$(mktemp -d) @@ -155,7 +156,7 @@ find_and_copy_images() { # Import the image for arch in "${ARCHES[@]}"; do local filename - filename="/mnt/koji/compose/iot/Fedora-IoT-${release}-${compdate}/compose/bootc/${arch}/images/${basename}-${release}.${compdate}.ociarchive" + filename="/mnt/koji/compose/iot/Fedora-IoT-${release}-${compdate}/compose/${compose_type}/${arch}/images/${basename}-${release}.${compdate}.ociarchive" copy_image ${format}:${filename} ${registry_name}:${release}-${arch} done @@ -177,7 +178,19 @@ fi printf "Syncing compose contailers: ${vers} : ${compose}\n" -# For fedora-bootc -if [[ -n ${base_build_nvr} ]]; then - find_and_copy_images ${base_build_nvr} fedora-bootc ${vers} ${compose} -fi +# For fedora-bootc and fedora-iot +for basename in "${BASENAMES[@]}"; do + if [[ ${basename} = "Fedora-IoT-bootc" ]]; then + registry_name="fedora-bootc" + compose_type="bootc" + ARCHES=("aarch64" "x86_64" "ppc64le" "s390x") + elif [[ ${basename} = "Fedora-IoT-bootc-base" ]]; then + registry_name="fedora-iot" + compose_type="bootc-base" + ARCHES=("aarch64" "x86_64") + fi + base_build_nvr=${basename}-${vers}-${compdate} + if [[ -n ${base_build_nvr} ]]; then + find_and_copy_images ${base_build_nvr} ${registry_name} ${vers} ${compose} + fi +done diff --git a/twoweek-nightly.sh b/twoweek-nightly.sh index 990268a..ed9ead2 100755 --- a/twoweek-nightly.sh +++ b/twoweek-nightly.sh @@ -18,7 +18,7 @@ TMPDIR=`mktemp -d /tmp/$RELEASE.$DATE.XXXX` TOMAIL="iot@lists.fedoraproject.org" FROM="Fedora IoT Report " RSYNCPREFIX="sudo -u ftpsync" -RSYNCTARGET="/pub/alt/iot/rawhide/" +RSYNCTARGET="/pub/alt/iot/branched/" OLDCOMPOSE_ID=$(cat $TARGET_DIR/latest-$SHORT-$RELEASE_TITLE/COMPOSE_ID) # assume a releng dir is a git checkout of the releng repo @@ -34,7 +34,7 @@ fi fedmsg_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s", "short": "%s"}' "$RELEASE" "$ARCH" "$SHORT") FEDMSG_MODNAME="compose" FEDMSG_CERTPREFIX="releng" -. ./releng/scripts/fedmsg-functions.sh +. ./releng/scripts_new/infrastructure/messaging/fedora_messaging.sh # Announce that we are starting... send_fedmsg "${fedmsg_json_start}" ${RELEASE} start CMD="pungi-koji --notification-script=/usr/bin/pungi-fedmsg-notification --notification-script=pungi-wait-for-signed-ostree-handler --config=$CONFIG --old-composes=$TARGET_DIR $OLD_COMPOSES_DIR $NIGHTLY --label=$LABEL" @@ -69,10 +69,6 @@ for dir in IoT metadata ; $RSYNCPREFIX rsync -avhH --delete-after $DESTDIR/compose/$dir/ "$RSYNCTARGET/$dir/" ; $RSYNCPREFIX ./releng/scripts/build_composeinfo "$RSYNCTARGET/" --name $NEWCOMPOSE_ID done -# Push containers -./sync-bootc-base-containers.sh ${RELEASE} ${LABEL} -# Tell interested persons that the rsync is done. -send_fedmsg "${fedmsg_json_done}" ${RELEASE} rsync.complete # Tell everyone by fedmsg about the compose send_fedmsg "${fedmsg_json_done}" ${RELEASE} complete SUBJECT='Fedora '$RELEASE' compose report: '$SHORTCOMPOSE_ID' changes' diff --git a/variants-fedora.xml b/variants-fedora.xml index 462c3ea..9deb115 100644 --- a/variants-fedora.xml +++ b/variants-fedora.xml @@ -7,6 +7,12 @@ x86_64 + + + aarch64 + x86_64 + + aarch64 @@ -15,12 +21,4 @@ s390x - - - aarch64 - x86_64 - ppc64le - s390x - -