Split Atomic and CloudImage

Signed-off-by: Mohan Boddu <mboddu@redhat.com>
This commit is contained in:
Mohan Boddu 2017-02-02 14:13:15 -05:00
parent b28af80fd7
commit e31b51de77
3 changed files with 350 additions and 41 deletions

102
cloud-nightly.sh Executable file
View File

@ -0,0 +1,102 @@
#!/bin/sh
#set -x
export LC_ALL=C
LABEL=$1
CONFIG="fedora-cloud.conf"
TARGET_DIR="/mnt/koji/compose/"
#OLD_COMPOSES_DIR="--old-composes=/mnt/fedora_koji/compose/f23 --old-composes=$TARGET_DIR"
NIGHTLY=""
SKIP_PHASES="--skip-phase=productimg --skip-phase=pkgset --skip-phase=gather --skip-phase=extra_files --skip-phase=creatrepo"
DEST=$(pwd)
DATE=$(date "+%Y%m%d")
DIST="25"
BRANCHED="25"
BRANCH="branched"
COMPSFILE="comps-f25.xml"
GIT_BRANCH="f25"
TMPDIR=`mktemp -d /tmp/$DIST.$DATE.XXXX`
TOMAIL="devel@lists.fedoraproject.org test@lists.fedoraproject.org"
FROM="Fedora Branched Report <rawhide@fedoraproject.org>"
RSYNCPREFIX="sudo -u ftpsync"
ATOMIC=$(mktemp -d /tmp/atomic.${DIST}.$DATE.XXXX)
ATOMICREPO="/mnt/koji/compose/atomic/$BRANCHED/"
ATOMICDEST="/mnt/koji/atomic/$BRANCHED/"
OLDCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora-25/COMPOSE_ID)
# uncomment and edit for resuming a failed compose
#COMPOSE_ID="Fedora-23-20150530.n.0"
# assume a releng dir is a git checkout of the releng repo
# if it does not exist clone it
if [ -d releng ]; then
pushd releng
git pull --rebase
popd
else
git clone https://pagure.io/releng.git
fi
# Set up our fedmsg function, using the releng repo definition
fedmsg_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s"}' "$BRANCHED" "$ARCH")
fedmsg_json_done=$(printf '{"log": "done", "branch": "%s", "arch": "%s"}' "$BRANCHED" "$ARCH")
FEDMSG_MODNAME="compose"
FEDMSG_CERTPREFIX="releng"
. ./releng/scripts/fedmsg-functions.sh
# Announce that we are starting, even though we don't know the compose_id yet..
send_fedmsg "${fedmsg_json_start}" ${DIST} start
pushd $TMPDIR
git clone https://pagure.io/fedora-comps.git && {
pushd fedora-comps
make "${COMPSFILE}"
cp "${COMPSFILE}" $DEST/
popd
}
popd
CMD="pungi-koji --notification-script=/usr/bin/pungi-fedmsg-notification --config=$CONFIG --old-composes=$TARGET_DIR $OLD_COMPOSES_DIR $NIGHTLY $SKIP_PHASES --label=$LABEL"
if [ -z "$COMPOSE_ID" ]; then
CMD="$CMD --target-dir=$TARGET_DIR"
else
CMD="$CMD --debug-mode --compose-dir=$TARGET_DIR/$COMPOSE_ID"
fi
time $CMD "$@"
if [ "$?" = "0" ]; then
export mail=0
fi
NEWCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora-25/COMPOSE_ID)
SHORTCOMPOSE_ID=$(echo $NEWCOMPOSE_ID|sed -e 's|Fedora-.*-||g')
# Set this to use later for a few items include depcheck
DESTDIR=$TARGET_DIR/$NEWCOMPOSE_ID
$RSYNCPREFIX mkdir -p $DESTDIR
# Tell interested persons that the rsync is starting (zomg!)
send_fedmsg "${fedmsg_json_start}" ${DIST} rsync.start
#for dir in CloudImage metadata ;
# do
# $RSYNCPREFIX rsync -avhH $TARGET_DIR/$NEWCOMPOSE_ID/compose/$dir/ /pub/alt/atomic/testing/$SHORTCOMPOSE_ID/$dir/ ;
# done
# Tell interested persons that the rsync is done.
#send_fedmsg "${fedmsg_json_done}" ${DIST} rsync.complete
# Tell everyone by fedmsg about the compose
send_fedmsg "${fedmsg_json_done}" ${DIST} complete
# Tell everyone by email about the compose
SUBJECT='Fedora '$DIST' compose report: '$SHORTCOMPOSE_ID' changes'
#if [ "$mail" = "0" ]; then
# for tomail in $TOMAIL ; do
# cat $TARGET_DIR/$NEWCOMPOSE_ID/logs/*verbose $DESTDIR/logs/depcheck | \
# mutt -e "set from=\"$FROM\"" -e 'set envelope_from=yes' -s "$SUBJECT" $tomail
# done
#fi

View File

@ -213,47 +213,6 @@ translate_paths = [
]
image_build = {
'^CloudImages$': [
{
'image-build': {
'format': [('qcow2','qcow2'), ('raw-xz','raw.xz')]
'name': 'Fedora-Cloud-Base',
'target': 'f25',
'version': '25',
'release': None,
'ksurl': 'git+https://pagure.io/fedora-kickstarts.git?#origin/f25',
'kickstart': 'fedora-cloud-base.ks',
'distro': 'Fedora-20',
'disk_size': 3,
'arches': ['x86_64'],
'repo_from': 'Cloud',
'repo': [
'http://kojipkgs.fedoraproject.org/pub/fedora/linux/updates/25/$arch/',
],
'install_tree_from': 'Cloud',
'subvariant': 'Cloud_Base'
}
},
{
'image-build': {
'format': [('vagrant-libvirt','vagrant-libvirt.box'), ('vagrant-virtualbox','vagrant-virtualbox.box')]
'name': 'Fedora-Cloud-Base-Vagrant',
'target': 'f25',
'version': '25',
'release': None,
'ksurl': 'git+https://pagure.io/fedora-kickstarts.git?#origin/f25',
'kickstart': 'fedora-cloud-base-vagrant.ks',
'distro': 'Fedora-20',
'disk_size': 40,
'arches': ['x86_64'],
'repo_from': 'Cloud',
'repo': [
'http://kojipkgs.fedoraproject.org/pub/fedora/linux/updates/25/$arch/',
],
'install_tree_from': 'Cloud',
'subvariant': 'Cloud_Base',
'ova-option': 'vagrant_sync_directory=/home/vagrant/sync'
}
},
{
'image-build': {
'format': [('qcow2','qcow2'), ('raw-xz','raw.xz')]

248
fedora-cloud.conf Normal file
View File

@ -0,0 +1,248 @@
# PRODUCT INFO
release_name = 'Fedora-Cloud'
release_short = 'Fedora-Cloud'
release_version = '25'
release_is_layered = False
# GENERAL SETTINGS
bootable = False
comps_file = 'comps-f25.xml' #{
# 'scm': 'git',
# 'repo': 'git://git.fedorahosted.org/git/comps.git',
# 'branch': None, # defaults to cvs/HEAD or git/master
# 'file': 'comps-f23.xml',
#}
variants_file='variants-fedora.xml'
sigkeys = ['FDB19C98', 'E372E838'] # None = unsigned
# limit tree architectures
# if undefined, all architectures from variants.xml will be included
tree_arches = ['x86_64']
# limit tree variants
# if undefined, all variants from variants.xml will be included
tree_variants = ['CloudImage']
hashed_directories = True
# RUNROOT settings
runroot = True
#runroot_channel = 'fedora_compose'
runroot_channel = 'compose'
runroot_tag = 'f25-build'
# PKGSET
pkgset_source = 'koji' # koji, repos
pkgset_koji_tag = 'f25-updates'
pkgset_koji_inherit = True
filter_system_release_packages = False
# GATHER
gather_source = 'comps'
gather_method = 'deps'
check_deps = False
greedy_method = 'build'
# fomat: [(variant_uid_regex, {arch|*: [repos]})]
# gather_lookaside_repos = []
# GATHER - JSON
# format: {variant_uid: {arch: package: [arch1, arch2, None (for any arch)]}}
#gather_source_mapping = '/path/to/mapping.json'
# CREATEREPO
createrepo_c = True
createrepo_checksum = 'sha256'
# CHECKSUMS
media_checksums = ['sha256']
media_checksum_one_file = True
media_checksum_base_filename = 'Fedora-%(variant)s-%(version)s-%(date)s.%(respin)s-%(arch)s'
#jigdo
create_jigdo = False
#extra_packages = [
# '/mnt/packages/foo*',
#]
# fomat: [(variant_uid_regex, {arch|*: [packages]})]
additional_packages = [
('.*', {
'*': [
'kernel.*',
'dracut.*',
'autocorr-.*',
'eclipse-nls-.*',
'hunspell-.*',
'hyphen-.*',
'calligra-l10n-.*',
'kde-l10n-.*',
'libreoffice-langpack-.*',
'man-pages-.*',
'mythes-.*',
],
}),
('^Everything$', {
'*': [
'*',
],
}),
('^Server$', {
'*': [
],
}),
('^Workstation$', {
'*': [
],
}),
('^Cloud$', {
'*': [
],
}),
]
multilib = [
('^Everything$', {
'x86_64': ['devel', 'runtime'],
's390x': ['devel', 'runtime']
})
]
filter_packages = [
('(Workstation|Server|Cloud)$', {
'*': [
'^kernel.*debug.*',
'^kernel-kdump.*',
'^kernel-tools.*',
'^syslog-ng.*',
'^astronomy-bookmarks',
'^generic.*',
'^GConf2-dbus.*',
'^bluez-gnome',
#Periods cause problems in paterns, so replace with *s
'^java-1.8.0-openjdk',
'^community-mysql.*',
'^jruby.*',
'^gimp-help-.*',
]
}),
]
# format: {arch|*: [packages]}
multilib_blacklist = {
'*': ['kernel*', 'kernel-PAE*', 'kernel*debug*',
'dmraid-devel', 'kdeutils-devel', 'mkinitrd-devel',
'java-1.5.0-gcj-devel', 'java-1.7.0-icedtea-devel',
'php-devel', 'java-1.6.0-openjdk-devel',
'java-1.7.0-openjdk-devel', 'java-1.8.0-openjdk-devel',
'httpd-devel', 'tomcat-native', 'php*', 'httpd',
'krb5-server', 'krb5-server-ldap', 'mod_*', 'ghc-*'
],
}
# format: {arch|*: [packages]}
multilib_whitelist = {
'*': ['libgnat', 'wine*', 'lmms-vst', 'nspluginwrapper',
'libflashsupport', 'valgrind', 'perl-libs', 'redhat-lsb',
'yaboot', 'syslinux-extlinux-nonlinux', 'syslinux-nonlinux',
'syslinux-tftpboot', 'nosync', '*-static'
],
}
createiso_skip = [
('^Workstation$', {
'*': True,
'src': True
}),
('^Server$', {
'src': True
}),
('^Cloud$', {
'*': True,
'src': True
}),
('^Everything$', {
'*': True,
'src': True
}),
]
# fomat: [(variant_uid_regex, {arch|*: [scm_dicts]})]
#extra_files = [
# ('^(Server|Workstation|Cloud)$', {
# '*': [
# {
# 'scm': 'rpm',
# 'repo': 'fedora-release-%(variant_id_lower)s',
# 'branch': None,
# 'file': [
# '/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-release',
# ],
# 'target': '',
# },
# ],
# }),
#]
# Image name respecting Fedora's image naming policy
image_name_format = 'Fedora-%(variant)s-%(disc_type)s-%(arch)s-%(version)s-%(date)s.%(respin)s.iso'
# # Use the same format for volume id
image_volid_formats = [
'Fedora-%(variant)s-%(disc_type)s-%(arch)s-%(version)s'
]
# No special handling for layered products, use same format as for regular images
image_volid_layered_product_formats = []
# Replace 'Cloud' with 'C' in volume id etc.
volume_id_substitutions = {
'Rawhide': 'rawh',
'Images': 'img',
'MATE_Compiz': 'MATE',
'Security': 'Sec',
'Electronic_Lab': 'Elec',
'Robotics': 'Robo',
'Scientific_KDE': 'SciK',
'Astronomy_KDE': 'AstK',
'Design_suite': 'Dsgn',
'Games': 'Game',
'Jam_KDE': 'Jam',
'Workstation': 'WS',
'Everything': 'E',
'Server': 'S',
'Cloud': 'C',
'Alpha': 'A',
'Beta': 'B',
'TC': 'T',
}
disc_types = {
'boot': 'netinst',
'live': 'Live',
}
translate_paths = [
('/mnt/koji/compose/', 'http://kojipkgs.fedoraproject.org/compose/'),
]
image_build = {
'^CloudImages$': [
{
'image-build': {
'format': [('qcow2','qcow2'), ('raw-xz','raw.xz')]
'name': 'Fedora-Cloud-Base',
'target': 'f25',
'version': '25',
'release': None,
'ksurl': 'git+https://pagure.io/fedora-kickstarts.git?#origin/f25',
'kickstart': 'fedora-cloud-base.ks',
'distro': 'Fedora-20',
'disk_size': 3,
'arches': ['x86_64'],
'repo': [
'http://kojipkgs.fedoraproject.org/pub/fedora/linux/updates/25/$arch/',
'http://kojipkgs.fedoraproject.org/pub/alt/releases/25/Cloud/$arch/os/',
],
'install_tree_from': 'http://kojipkgs.fedoraproject.org/pub/alt/releases/25/Cloud/$arch/os/',
'subvariant': 'Cloud_Base'
}
},
{
'image-build': {
'format': [('vagrant-libvirt','vagrant-libvirt.box'), ('vagrant-virtualbox','vagrant-virtualbox.box')]
'name': 'Fedora-Cloud-Base-Vagrant',
'target': 'f25',
'version': '25',
'release': None,
'ksurl': 'git+https://pagure.io/fedora-kickstarts.git?#origin/f25',
'kickstart': 'fedora-cloud-base-vagrant.ks',
'distro': 'Fedora-20',
'disk_size': 40,
'arches': ['x86_64'],
'repo': [
'http://kojipkgs.fedoraproject.org/pub/fedora/linux/updates/25/$arch/',
'http://kojipkgs.fedoraproject.org/pub/alt/releases/25/Cloud/$arch/os/'
],
'install_tree_from': 'http://kojipkgs.fedoraproject.org/pub/alt/releases/25/Cloud/$arch/os/',
'subvariant': 'Cloud_Base',
'ova-option': 'vagrant_sync_directory=/home/vagrant/sync'
}
},
],
}
koji_profile = 'compose_koji'