Compare commits
14 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9bb9230621 | |||
|
|
45f138d382 | ||
|
|
866a3c893d | ||
|
|
9fcbb8ee6b | ||
|
|
249f125c57 | ||
|
293581505f |
|||
|
|
04b4a59383 | ||
|
|
dbf0e5004f | ||
|
|
beb275f8ec | ||
|
|
bde3e1d1c9 | ||
|
|
c04e2d1119 | ||
|
|
f908bf5820 | ||
|
|
ed26acceef | ||
|
|
5bd816cb3d |
5 changed files with 44 additions and 113 deletions
|
|
@ -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",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue