Compare commits

...
Sign in to create a new pull request.

14 commits

Author SHA1 Message Date
9bb9230621 ref: fix path effected by releng repo refactoring
Signed-off-by: Anton Medvedev <amedvede@redhat.com>
2025-10-07 21:54:32 +02:00
Paul Whalen
45f138d382 Fix container names and stop running the container sync script
This fixes the container name of the generic bootc image
and aligns all branches.

We no longer need to run the sync script for the containers.

Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2025-04-28 17:40:42 -04:00
Paul Whalen
866a3c893d Remove IoT, only compose fedora-bootc container
Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2025-04-10 16:54:56 -04:00
Paul Whalen
9fcbb8ee6b Move fedora-bootc image to f41-stable branch
See: https://pagure.io/fedora-iot/pungi-iot/issue/128

Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2025-03-03 10:34:23 -05:00
Paul Whalen
249f125c57 F41: Temporarily make all deliverables failable
Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2024-11-22 14:35:25 -05:00
293581505f
pungi: update treefile to use for f41 fedora-bootc
As discussed in https://gitlab.com/fedora/bootc/tracker/-/issues/39,
we will be maintaining all Fedora versions in the `main` branch going
forward. The `fedora-bootc.yaml` file upstream is now version-less. To
not break pungi, we need it to use the stub treefile we added that sets
the releasever to 41.
2024-10-31 11:36:28 -04:00
Paul Whalen
04b4a59383 F41: Use basearch in ostree sections
Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2024-10-30 12:32:37 -04:00
Paul Whalen
dbf0e5004f F41: update current_stable to 41 in sync script
Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2024-10-30 10:22:13 -04:00
Paul Whalen
beb275f8ec F41: Enable updates
Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2024-10-29 09:17:56 -04:00
Paul Whalen
bde3e1d1c9 F41: Update for final
Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2024-10-25 10:32:54 -04:00
Paul Whalen
c04e2d1119 F41: Add IoT base image to sync script
Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2024-10-04 14:46:14 -04:00
Paul Whalen
f908bf5820 F41: drop tier-0 from the compose
Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2024-10-04 10:55:53 -04:00
Paul Whalen
ed26acceef F41: Add iot base bootc image
Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2024-09-27 15:22:20 -04:00
Paul Whalen
5bd816cb3d F-41: Update for branching
Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2024-08-15 09:55:23 -04:00
5 changed files with 44 additions and 113 deletions

View file

@ -22,7 +22,7 @@ sigkeys = ['e99d6ad1']
tree_arches = ['aarch64', 'x86_64', "ppc64le", "s390x"] tree_arches = ['aarch64', 'x86_64', "ppc64le", "s390x"]
# limit tree variants # limit tree variants
# if undefined, all variants from variants.xml will be included # if undefined, all variants from variants.xml will be included
tree_variants = ['IoT', 'bootc', 'bootc-tier0'] tree_variants = ['bootc']
hashed_directories = True hashed_directories = True
# RUNROOT settings # RUNROOT settings
@ -87,13 +87,6 @@ lorax_options = [
}) })
] ]
additional_packages = [
('^IoT$$', {
'*': [
'*',
],
}),
]
multilib = [ multilib = [
('^Everything$', { ('^Everything$', {
'x86_64': ['devel', 'runtime'], 'x86_64': ['devel', 'runtime'],
@ -203,93 +196,24 @@ translate_paths = [
] ]
# These will be inherited by live_media, live_images and image_build # 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_release = '!RELEASE_FROM_LABEL_DATE_TYPE_RESPIN'
global_version = '41' global_version = '41'
# live_images ignores this in favor of live_target # live_images ignores this in favor of live_target
global_target = 'f41' 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 = { ostree_container = {
"^bootc$": { "^bootc$": {
"version": "!OSTREE_VERSION_FROM_LABEL_DATE_TYPE_RESPIN", "version": "!OSTREE_VERSION_FROM_LABEL_DATE_TYPE_RESPIN",
"config_url": "https://pagure.io/fedora-iot/base-images", "config_url": "https://pagure.io/fedora-iot/base-images",
"config_branch": "main", "config_branch": "f41-stable",
"treefile": "fedora-bootc.yaml", "treefile": "fedora-41.yaml",
"repo": ["https://kojipkgs.fedoraproject.org/compose/rawhide/latest-Fedora-Rawhide/compose/Everything/$basearch/os/"], "repo": ["https://kojipkgs.fedoraproject.org/compose/41/Fedora-41-20241024.0/compose/Everything/$basearch/os/",
"arches": ["x86_64", "aarch64", "ppc64le", "s390x"], "https://kojipkgs.fedoraproject.org/compose/updates/f41-updates/compose/Everything/$basearch/os/"],
"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/"],
"arches": ["x86_64", "aarch64", "ppc64le", "s390x"], "arches": ["x86_64", "aarch64", "ppc64le", "s390x"],
"failable": ['*'], "failable": ['*'],
"subvariant": "base",
"name": "Fedora-base-bootc",
}, },
} }

View file

@ -36,7 +36,7 @@ fi
# Set up our fedmsg function, using the releng repo definition # Set up our fedmsg function, using the releng repo definition
#FEDMSG_MODNAME="compose" #FEDMSG_MODNAME="compose"
#FEDMSG_CERTPREFIX="releng" #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.. # 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") #fedmsg_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s", "short": "%s"}' "$RELEASE" "$ARCH" "$SHORT")

View file

@ -33,8 +33,6 @@ EXAMPLE
EOF EOF
} }
ARCHES=("aarch64" "x86_64" "ppc64le" "s390x")
arch_to_goarch() { arch_to_goarch() {
local a=$1; shift local a=$1; shift
# See https://github.com/coreos/stream-metadata-go/blob/c5fe1b98ac1b1e6ab62a606b7580dc1f30703f83/arch/arch.go#L14 # 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 # This is the release of Fedora that is currently stable, it will define if we
# need to move the fedora:latest tag # 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 # Define what is rawhide so we know to push that tag
current_rawhide="41" current_rawhide="43"
# Sanity checking # Sanity checking
if ! [[ "${1}" =~ ^-?[0-9]+$ ]]; if ! [[ "${1}" =~ ^-?[0-9]+$ ]];
then then
@ -69,7 +69,7 @@ if [[ "${3}" == "-s" ]]; then
stage="true" stage="true"
fi fi
basename="Fedora-IoT-bootc" BASENAMES=("Fedora-IoT-bootc")
format="oci-archive" format="oci-archive"
vers=${1} vers=${1}
compose=${2} 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 # 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=$(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 if [[ ${1} -eq "$current_stable" ]]; then
tagname="latest" tagname="latest"
fi elif [[ ${1} -eq "$current_rawhide" ]]; then
if [[ ${1} -eq "$current_rawhide" ]]; then
tagname="rawhide" tagname="rawhide"
elif [[ ${1} -eq "$current_devel" ]]; then
tagname="${current_devel}"
fi fi
if [[ -z "$stage" ]]; then if [[ -z "$stage" ]]; then
registries=("registry.fedoraproject.org" "candidate-registry.fedoraproject.org" "quay.io/fedora") registries=("registry.fedoraproject.org" "candidate-registry.fedoraproject.org" "quay.io/fedora")
else else
@ -136,7 +137,7 @@ find_and_copy_images() {
local registry_name=$2 local registry_name=$2
local release=$3 local release=$3
local name local name
if [[ ${registry_name} = "fedora-bootc" ]]; then if [[ ${registry_name} = "fedora-bootc" ]] || [[ ${registry_name} = "fedora-iot" ]]; then
name=${basename} name=${basename}
else else
printf "Unexpected image type! If we added a new one, it needs mapping here" printf "Unexpected image type! If we added a new one, it needs mapping here"
@ -144,10 +145,10 @@ find_and_copy_images() {
fi fi
# Check that all architectures completed in the build else exit # Check that all architectures completed in the build else exit
for arch in "${ARCHES[@]}"; do for arch in "${ARCHES[@]}"; do
if [ ! -f "/mnt/koji/compose/iot/Fedora-IoT-${release}-${compdate}/compose/bootc/${arch}/images/${basename}-${release}.${compdate}.ociarchive" ]; then 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." echo "One of the expected images are missing, exiting."
exit 1 exit 1
fi fi
done done
work_dir=$(mktemp -d) work_dir=$(mktemp -d)
@ -155,7 +156,7 @@ find_and_copy_images() {
# Import the image # Import the image
for arch in "${ARCHES[@]}"; do for arch in "${ARCHES[@]}"; do
local filename 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} copy_image ${format}:${filename} ${registry_name}:${release}-${arch}
done done
@ -177,7 +178,19 @@ fi
printf "Syncing compose contailers: ${vers} : ${compose}\n" printf "Syncing compose contailers: ${vers} : ${compose}\n"
# For fedora-bootc # For fedora-bootc and fedora-iot
if [[ -n ${base_build_nvr} ]]; then for basename in "${BASENAMES[@]}"; do
find_and_copy_images ${base_build_nvr} fedora-bootc ${vers} ${compose} if [[ ${basename} = "Fedora-IoT-bootc" ]]; then
fi 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

View file

@ -18,7 +18,7 @@ TMPDIR=`mktemp -d /tmp/$RELEASE.$DATE.XXXX`
TOMAIL="iot@lists.fedoraproject.org" TOMAIL="iot@lists.fedoraproject.org"
FROM="Fedora IoT Report <rawhide@fedoraproject.org>" FROM="Fedora IoT Report <rawhide@fedoraproject.org>"
RSYNCPREFIX="sudo -u ftpsync" 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) OLDCOMPOSE_ID=$(cat $TARGET_DIR/latest-$SHORT-$RELEASE_TITLE/COMPOSE_ID)
# assume a releng dir is a git checkout of the releng repo # 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_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s", "short": "%s"}' "$RELEASE" "$ARCH" "$SHORT")
FEDMSG_MODNAME="compose" FEDMSG_MODNAME="compose"
FEDMSG_CERTPREFIX="releng" FEDMSG_CERTPREFIX="releng"
. ./releng/scripts/fedmsg-functions.sh . ./releng/scripts_new/infrastructure/messaging/fedora_messaging.sh
# Announce that we are starting... # Announce that we are starting...
send_fedmsg "${fedmsg_json_start}" ${RELEASE} start 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" 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 rsync -avhH --delete-after $DESTDIR/compose/$dir/ "$RSYNCTARGET/$dir/" ;
$RSYNCPREFIX ./releng/scripts/build_composeinfo "$RSYNCTARGET/" --name $NEWCOMPOSE_ID $RSYNCPREFIX ./releng/scripts/build_composeinfo "$RSYNCTARGET/" --name $NEWCOMPOSE_ID
done 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 # Tell everyone by fedmsg about the compose
send_fedmsg "${fedmsg_json_done}" ${RELEASE} complete send_fedmsg "${fedmsg_json_done}" ${RELEASE} complete
SUBJECT='Fedora '$RELEASE' compose report: '$SHORTCOMPOSE_ID' changes' SUBJECT='Fedora '$RELEASE' compose report: '$SHORTCOMPOSE_ID' changes'

View file

@ -7,6 +7,12 @@
<arch>x86_64</arch> <arch>x86_64</arch>
</arches> </arches>
</variant> </variant>
<variant id="bootc-base" name="bootc-base" type="variant" is_empty="true">
<arches>
<arch>aarch64</arch>
<arch>x86_64</arch>
</arches>
</variant>
<variant id="bootc" name="bootc" type="variant" is_empty="true"> <variant id="bootc" name="bootc" type="variant" is_empty="true">
<arches> <arches>
<arch>aarch64</arch> <arch>aarch64</arch>
@ -15,12 +21,4 @@
<arch>s390x</arch> <arch>s390x</arch>
</arches> </arches>
</variant> </variant>
<variant id="bootc-tier0" name="bootc-tier0" type="variant" is_empty="true">
<arches>
<arch>aarch64</arch>
<arch>x86_64</arch>
<arch>ppc64le</arch>
<arch>s390x</arch>
</arches>
</variant>
</variants> </variants>