Compare commits
No commits in common. "devel" and "feature/variant-images-download" have entirely different histories.
devel
...
feature/va
|
@ -17,17 +17,17 @@ jobs:
|
|||
uses: actions/checkout@v2
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
uses: docker/setup-qemu-action@v1
|
||||
# https://github.com/docker/setup-buildx-action
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
uses: docker/setup-buildx-action@v1
|
||||
with:
|
||||
install: true
|
||||
|
||||
- name: Login to ghcr
|
||||
if: github.event_name != 'pull_request'
|
||||
uses: docker/login-action@v3
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
|
@ -35,7 +35,7 @@ jobs:
|
|||
|
||||
- name: Build and push
|
||||
id: docker_build
|
||||
uses: docker/build-push-action@v5
|
||||
uses: docker/build-push-action@v2
|
||||
with:
|
||||
builder: ${{ steps.buildx.outputs.name }}
|
||||
platforms: linux/amd64,linux/arm64,linux/s390x,linux/ppc64le
|
||||
|
@ -44,4 +44,4 @@ jobs:
|
|||
push: ${{ github.event_name != 'pull_request' }}
|
||||
tags: ghcr.io/rocky-linux/sig-core-toolkit:latest
|
||||
cache-from: type=gha
|
||||
cache-to: type=inline
|
||||
cache-to: type=gha,mode=max
|
||||
|
|
|
@ -1 +1 @@
|
|||
*.sw[a-z]
|
||||
.swp
|
||||
|
|
15
README.md
15
README.md
|
@ -13,7 +13,8 @@ What does this have?
|
|||
* analyze -> Analysis utilities (such as download stats)
|
||||
* chat -> mattermost related utilities
|
||||
* func -> (mostly defunct) testing scripts and tools to test base functionality
|
||||
* iso -> Contains `empanadas`, which provides ISO, Compose, and Sync related utilities.
|
||||
* iso -> ISO, Compose, and Sync related utilities, primarily for Rocky Linux 9+
|
||||
* live -> Live image related utilities
|
||||
* mangle -> Manglers and other misc stuff
|
||||
* sync -> Sync tools, primarily for Rocky Linux 8 and will eventually be deprecated
|
||||
|
||||
|
@ -23,17 +24,13 @@ How can I help?
|
|||
Fork this repository and open a PR with your changes. Keep these things in mind
|
||||
when you make changes:
|
||||
|
||||
* Your PR should be against the devel branch (not optional)
|
||||
* Have pre-commit installed if possible
|
||||
* Have shellcheck installed if possible
|
||||
* Have pre-commit installed
|
||||
* Have shellcheck installed
|
||||
* Shell Scripts: These must pass a shellcheck test!
|
||||
* Python scripts: Try your best to follow PEP8 guidelines (even the best linters get things wrong)
|
||||
|
||||
* Note that not everything has to pass. Just try your best.
|
||||
|
||||
PR's against the main branch will be closed.
|
||||
|
||||
PR's are preferred at the [RESF Git Service](https://git.resf.org).
|
||||
Your PR should be against the devel branch at all times. PR's against the main
|
||||
branch will be closed.
|
||||
|
||||
Will some of this be moved into separate repositories?
|
||||
------------------------------------------------------
|
||||
|
|
|
@ -1,5 +1,2 @@
|
|||
log/*.log
|
||||
log/*.log.*
|
||||
clone_again/
|
||||
cloned/
|
||||
tftptest
|
||||
|
|
|
@ -5,20 +5,22 @@ These are a set of scripts that are designed to test the core functionality
|
|||
of a Rocky Linux system. They are designed to work on current versions of
|
||||
Rocky and are used to test a system as a Release Engineering self-QA but
|
||||
can be used by others for their own personal testing (under the assumption
|
||||
that you just want to see what happens, we don't judge.
|
||||
that you just want to see what happens, we don't judge :).
|
||||
|
||||
These tests *must* pass for a X.0 release to be considered "Core Validated".
|
||||
These tests *must* pass for a release to be considered "Core Validated"
|
||||
Checking against the upstream repositories for package matches are not enough
|
||||
and are/will be addressed by other tools.
|
||||
|
||||
* common -> Functions that our scripts and tests may or may not use. Templates
|
||||
and other files should come here too under common/files and
|
||||
scripts that use them should reference them as `./common/files/...`
|
||||
* core -> Core functionality and testing. For example, packages and service
|
||||
functionality.
|
||||
* lib -> Library tests (these may be done elsewhere, such as openqa)
|
||||
* lib -> Library tests (these may be done elsewhere)
|
||||
* log -> Log output. This repository has example logs of running on Rocky
|
||||
Linux.
|
||||
* modules -> Tests for module streams and their basic tests
|
||||
* stacks -> Software stacks, think like LAMP (may be done elsewhere, such as openqa)
|
||||
* stacks -> Software stacks, think like LAMP.
|
||||
|
||||
How to Run
|
||||
----------
|
||||
|
@ -148,13 +150,6 @@ security is important, actually work and function correctly.
|
|||
With that said, There is no reason to disable integral security layers on your
|
||||
system.
|
||||
|
||||
### Should EPEL be enabled?
|
||||
No. The point is to test Rocky packages, not EPEL. There are also package
|
||||
differences that will break (eg: nc -> nmap-ncat vs netcat).
|
||||
|
||||
### What about CRB or extras?
|
||||
It may say it's a failure, but it will continue anyway.
|
||||
|
||||
Current Tree
|
||||
------------
|
||||
```
|
||||
|
|
|
@ -36,25 +36,11 @@ function r_processor() {
|
|||
if [[ "$(basename ${file})" =~ README|^\.|^_ ]]; then
|
||||
continue
|
||||
fi
|
||||
[ -x "${file}" ] && echo "Begin processing script: ${file}" && "${file}"
|
||||
[ -x "${file}" ] && "${file}"
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
function r_checkEPELEnabled() {
|
||||
/usr/bin/dnf repolist | grep -q '^epel'
|
||||
return $?
|
||||
}
|
||||
|
||||
function r_checkTmpNoExec() {
|
||||
grep 'tmp' /etc/fstab | grep -q noexec
|
||||
tmpexec=$?
|
||||
|
||||
if [ "$tmpexec" -eq "0" ]; then
|
||||
r_log "internal" "WARN: noexec is set for temporary directories. Some tests may fail."
|
||||
fi
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Functions that deal with (p)ackages
|
||||
|
||||
|
@ -113,11 +99,7 @@ function p_getPackageArch() {
|
|||
}
|
||||
|
||||
function p_getDist() {
|
||||
rpm -q --whatprovides redhat-release --queryformat '%{version}\n' | cut -d'.' -f1
|
||||
}
|
||||
|
||||
function p_getMinorVersion() {
|
||||
rpm -q --whatprovides redhat-release --queryformat '%{version}\n' | cut -d'.' -f2
|
||||
rpm -q "$(rpm -qf /etc/redhat-release)" --queryformat '%{version}\n' | cut -d'.' -f1
|
||||
}
|
||||
|
||||
################################################################################
|
||||
|
@ -222,16 +204,12 @@ function m_recycleLog() {
|
|||
|
||||
rl_ver=$(p_getDist)
|
||||
rl_arch=$(m_getArch)
|
||||
rl_minor_ver=$(p_getMinorVersion)
|
||||
export rl_ver
|
||||
export rl_arch
|
||||
export rl_minor_ver
|
||||
|
||||
export -f r_log
|
||||
export -f r_checkExitStatus
|
||||
export -f r_processor
|
||||
export -f r_checkEPELEnabled
|
||||
export -f r_checkTmpNoExec
|
||||
export -f p_installPackageNormal
|
||||
export -f p_installPackageNoWeaks
|
||||
export -f p_removePackage
|
||||
|
@ -240,7 +218,6 @@ export -f p_resetModule
|
|||
export -f p_getPackageRelease
|
||||
export -f p_getPackageArch
|
||||
export -f p_getDist
|
||||
export -f p_getMinorVersion
|
||||
export -f m_serviceCycler
|
||||
export -f m_checkForPort
|
||||
export -f m_assertCleanExit
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
Basic tests, such as repos
|
|
@ -1,56 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
# label <label@rockylinux.org>
|
||||
import datetime
|
||||
import sys
|
||||
import dnf
|
||||
import dnf.exceptions
|
||||
|
||||
# pylint: disable=unnecessary-lambda-assignment
|
||||
now = datetime.datetime.today().strftime("%m-%d-%Y %T")
|
||||
|
||||
class DnfQuiet(dnf.Base):
|
||||
"""
|
||||
DNF object
|
||||
|
||||
This is in the event we need special functions
|
||||
"""
|
||||
def __init__(self):
|
||||
dnf.Base.__init__(self)
|
||||
|
||||
def main():
|
||||
"""
|
||||
Main run
|
||||
"""
|
||||
dnfobj = DnfQuiet()
|
||||
releasever = dnfobj.conf.releasever
|
||||
try:
|
||||
dnfobj.read_all_repos()
|
||||
# pylint: disable=bare-except
|
||||
except:
|
||||
print(f'[-] {now} -> Could not read repos', file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
rocky_default_repos = {
|
||||
'8': ['baseos', 'appstream', 'extras'],
|
||||
'9': ['baseos', 'appstream', 'extras']
|
||||
}.get(releasever, None)
|
||||
|
||||
if not rocky_default_repos:
|
||||
print(f'[-] {now} -> Not a Rocky Linux system')
|
||||
sys.exit(1)
|
||||
|
||||
print(f'[-] {now} -> Checking if non-default repo is enabled')
|
||||
_not_allowed=False
|
||||
for repo in list(dnfobj.repos.iter_enabled()):
|
||||
if not repo.id in rocky_default_repos:
|
||||
print(f'[-] {now} -> {repo.id} is enabled and should be disabled')
|
||||
_not_allowed=True
|
||||
if _not_allowed:
|
||||
print(f'[-] {now} -> FAIL - There are extra repos enabled')
|
||||
sys.exit(1)
|
||||
|
||||
print(f'[-] {now} -> PASS')
|
||||
sys.exit(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -1,8 +1,6 @@
|
|||
#!/bin/bash
|
||||
r_log "acl" "Install the acl package"
|
||||
p_installPackageNormal acl
|
||||
p_installPackageNormal attr
|
||||
# This normally is not needed.
|
||||
#r_log "acl" "Remount filesystems with ACL support"
|
||||
#mount -o remount,acl /
|
||||
r_log "acl" "Remount filesystems with ACL support (this normally should not be needed)"
|
||||
mount -o remount,acl /
|
||||
sleep 3
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
ACLFILE=/tmp/testfile_acl
|
||||
r_log "acl" "Test that the acl get and set functions work"
|
||||
touch "${ACLFILE}"
|
||||
trap '/bin/rm -f ${ACLFILE}' EXIT
|
||||
|
||||
# Use setfacl for readonly
|
||||
r_log "acl" "Set readonly ACL for the user nobody"
|
||||
|
@ -13,3 +12,4 @@ r_log "acl" "Verifying that the nobody user is set to read only"
|
|||
getfacl "${ACLFILE}" | grep -q 'user:nobody:r--'
|
||||
|
||||
r_checkExitStatus $?
|
||||
/bin/rm -f "${ACLFILE}"
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
#!/bin/bash
|
||||
ACLIMG=/tmp/testacl.img
|
||||
r_log "acl" "Test the use of xattr"
|
||||
touch "${ACLIMG}"
|
||||
trap '/bin/rm -f ${ACLIMG}' EXIT
|
||||
|
||||
# Use setfacl for readonly
|
||||
r_log "acl" "Create image"
|
||||
dd if=/dev/zero of=${ACLIMG} bs=1024000 count=100
|
||||
echo -e 'y\n' | mkfs.ext3 "${ACLIMG}"
|
||||
mkdir /mnt/xattr
|
||||
mount -t ext3 -o loop,user_xattr "${ACLIMG}" /mnt/xattr
|
||||
touch /mnt/xattr/testfile
|
||||
|
||||
r_log "acl" "Apply attrs as needed"
|
||||
setfattr -n user.nobody /mnt/xattr/testfile
|
||||
getfattr /mnt/xattr/testfile | grep -q 'user.nobody'
|
||||
final_status=$?
|
||||
|
||||
umount /mnt/xattr
|
||||
|
||||
r_checkExitStatus $final_status
|
|
@ -1,7 +1,6 @@
|
|||
#!/bin/bash
|
||||
r_log "archive" "Test bzip/bzcat/bunzip"
|
||||
FILE=/var/tmp/bziptest.txt
|
||||
trap '/bin/rm -f ${FILE}' EXIT
|
||||
|
||||
cat > "$FILE" <<EOF
|
||||
testing text
|
||||
|
@ -24,3 +23,5 @@ fi
|
|||
grep -q 'testing text' "${FILE}"
|
||||
|
||||
r_checkExitStatus $?
|
||||
|
||||
/bin/rm -f "${FILE}*"
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
#!/bin/bash
|
||||
r_log "archive" "Verifying gzip binaries"
|
||||
|
||||
echo -n "Processing; "
|
||||
for bin in gunzip gzexe gzip zcat zcmp zdiff zegrep zfgrep zforce zgrep zless zmore znew; do
|
||||
echo -n "$bin "
|
||||
echo -n "$bin"
|
||||
r_log "archive" "$bin"
|
||||
$bin --version &> /dev/null || r_checkExitStatus 1
|
||||
done
|
||||
|
|
|
@ -4,9 +4,6 @@ r_log "archive" "Test gzip/zcat/gunzip"
|
|||
FILE=/var/tmp/gzip-test.txt
|
||||
MD5HASH=e6331c582fbad6653832860f469f7d1b
|
||||
|
||||
# clean up
|
||||
trap '/bin/rm $FILE* &> /dev/null && /bin/rm -rf /var/tmp/gziptest &> /dev/null' EXIT
|
||||
|
||||
# Double check that stuff is cleared out
|
||||
/bin/rm $FILE* &> /dev/null
|
||||
/bin/rm -rf /var/tmp/gziptest &> /dev/null
|
||||
|
@ -110,3 +107,7 @@ tar -czf $FILE.tgz $FILE &> /dev/null
|
|||
gunzip $FILE.tgz
|
||||
[ -e $FILE.tar ]
|
||||
r_checkExitStatus $?
|
||||
|
||||
# clean up
|
||||
/bin/rm $FILE* &> /dev/null
|
||||
/bin/rm -rf /var/tmp/gziptest &> /dev/null
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
r_log "archive" "Checking gzexe"
|
||||
r_log "archive" "Creating archive"
|
||||
FILE=/var/tmp/gzexe-test-script
|
||||
trap '/bin/rm -f $FILE* 2>/dev/null' EXIT
|
||||
|
||||
/bin/rm -f $FILE* &>/dev/null
|
||||
|
||||
cat > $FILE <<EOF
|
||||
|
@ -20,3 +18,5 @@ r_log "archive" "Test gzexe"
|
|||
r_log "archive" "Check that it actually runs"
|
||||
$FILE | grep -q "Hello!"
|
||||
r_checkExitStatus $?
|
||||
|
||||
/bin/rm -f $FILE* 2>/dev/null
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#!/bin/bash
|
||||
r_log "archive" "Check zcmp and zdiff"
|
||||
BASEFILE="/var/tmp/gziptest"
|
||||
trap '/bin/rm -f ${BASEFILE}*' EXIT
|
||||
/bin/rm -f ${BASEFILE}
|
||||
|
||||
cat > ${BASEFILE}.1 <<EOF
|
||||
|
@ -16,3 +15,5 @@ r_log "archive" "Check zcmp"
|
|||
|
||||
r_log "archive" "Check zdiff"
|
||||
/bin/zdiff ${BASEFILE}.1.gz ${BASEFILE}.2.gz || r_checkExitStatus 1
|
||||
|
||||
/bin/rm -f ${BASEFILE}*
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
r_log "archive" "Testing zforce"
|
||||
|
||||
BASEFILE="/var/tmp/abcdefg"
|
||||
trap '/bin/rm "$BASEFILE.gz"' EXIT
|
||||
/bin/rm $BASEFILE* &>/dev/null
|
||||
|
||||
cat > $BASEFILE <<EOF
|
||||
|
@ -15,3 +14,5 @@ mv $BASEFILE.gz $BASEFILE
|
|||
zforce $BASEFILE || r_checkExitStatus 1
|
||||
[ -e "$BASEFILE.gz" ]
|
||||
r_checkExitStatus $?
|
||||
|
||||
/bin/rm "$BASEFILE.gz"
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#!/bin/bash
|
||||
r_log "archive" "Testing zgrep"
|
||||
BASEFILE=/var/tmp/zgreptest
|
||||
trap '/bin/rm $BASEFILE*' EXIT
|
||||
/bin/rm $BASEFILE* &> /dev/null
|
||||
|
||||
cat > $BASEFILE <<EOF
|
||||
|
@ -12,3 +11,5 @@ gzip $BASEFILE
|
|||
|
||||
zgrep -q 'Green Obsidian' $BASEFILE.gz
|
||||
r_checkExitStatus $?
|
||||
|
||||
/bin/rm $BASEFILE*
|
||||
|
|
|
@ -4,7 +4,6 @@ r_log "archive" "Test tar create and extract"
|
|||
TARDIR="/var/tmp/tartest"
|
||||
FILE1="$TARDIR/test.1.txt"
|
||||
FILE2="$TARDIR/test.2.txt"
|
||||
trap '/bin/rm -rf /var/tmp/tarfile.tar $TARDIR' EXIT
|
||||
|
||||
mkdir -p $TARDIR
|
||||
cat > $FILE1 <<EOF
|
||||
|
@ -33,3 +32,5 @@ if [ $RES1 == 0 ] && [ $RES2 == 0 ]; then
|
|||
fi
|
||||
|
||||
r_checkExitStatus $ret_val
|
||||
|
||||
/bin/rm -rf /var/tmp/tarfile.tar $TARDIR
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#!/bin/bash
|
||||
r_log "archive" "Check xzcmp and xzdiff"
|
||||
BASEFILE="/var/tmp/xztest"
|
||||
trap '/bin/rm -f ${BASEFILE}*' EXIT
|
||||
/bin/rm -f ${BASEFILE}
|
||||
|
||||
cat > ${BASEFILE}.1 <<EOF
|
||||
|
@ -16,3 +15,5 @@ r_log "archive" "Check xzcmp"
|
|||
|
||||
r_log "archive" "Check xzdiff"
|
||||
/bin/zdiff ${BASEFILE}.1.xz ${BASEFILE}.2.xz || r_checkExitStatus 1
|
||||
|
||||
/bin/rm -f ${BASEFILE}*
|
||||
|
|
|
@ -4,7 +4,6 @@ r_log "archive" "Test zip create and extract"
|
|||
ZIPDIR="/var/tmp/ziptest"
|
||||
FILE1="$ZIPDIR/test.1.txt"
|
||||
FILE2="$ZIPDIR/test.2.txt"
|
||||
trap '/bin/rm -rf /var/tmp/zipfile.zip $ZIPDIR' EXIT
|
||||
|
||||
mkdir -p $ZIPDIR
|
||||
cat > $FILE1 <<EOF
|
||||
|
@ -32,4 +31,6 @@ if [ $RES1 == 0 ] && [ $RES2 == 0 ]; then
|
|||
ret_val=0
|
||||
fi
|
||||
|
||||
r_checkExitStatus "$ret_val"
|
||||
r_checkExitStatus $ret_val
|
||||
|
||||
/bin/rm -rf /var/tmp/zipfile.zip $ZIPDIR
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
r_log "archive" "Testing lzop compress and decompress"
|
||||
|
||||
LZOFILE=/var/tmp/obsidian.txt
|
||||
trap '/bin/rm ${LZOFILE}' EXIT
|
||||
|
||||
echo 'Green Obsidian is the release name' > ${LZOFILE}
|
||||
|
||||
|
@ -14,5 +13,5 @@ lzop -d ${LZOFILE}.lzo -o ${LZOFILE}
|
|||
/bin/rm ${LZOFILE}.lzo
|
||||
|
||||
grep -q 'Green Obsidian' ${LZOFILE}
|
||||
ret_val="$?"
|
||||
r_checkExitStatus "$ret_val"
|
||||
|
||||
/bin/rm ${LZOFILE}
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
ATTRTEST="/var/tmp/attrtest.img"
|
||||
ATTRMNT="/mnt/attrtest"
|
||||
|
||||
trap 'umount /mnt/attrtest ; /bin/rm -f ${ATTRTEST} ; /bin/rm -rf ${ATTRMNT}' EXIT
|
||||
|
||||
r_log "attr" "Checking that *attr works"
|
||||
dd if=/dev/zero of="${ATTRTEST}" bs=1024000 count=100 &>/dev/null
|
||||
r_checkExitStatus $?
|
||||
|
@ -16,3 +14,8 @@ setfattr -n user.test "${ATTRMNT}/testfile"
|
|||
getfattr "${ATTRMNT}/testfile" | grep -oq "user.test"
|
||||
|
||||
r_checkExitStatus $?
|
||||
|
||||
# Cleanup
|
||||
umount /mnt/attrtest
|
||||
/bin/rm -f "${ATTRTEST}"
|
||||
/bin/rm -rf "${ATTRMNT}"
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#!/bin/bash
|
||||
r_log "coreutils" "Testing cat"
|
||||
trap "/bin/rm /var/tmp/cattest" EXIT
|
||||
|
||||
cat > /var/tmp/cattest <<EOF
|
||||
Green Obsidian
|
||||
|
@ -8,3 +7,5 @@ EOF
|
|||
|
||||
grep -q "Green Obsidian" /var/tmp/cattest
|
||||
r_checkExitStatus $?
|
||||
|
||||
/bin/rm /var/tmp/cattest
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
r_log "coreutils" "Testing readlink"
|
||||
trap "/bin/rm /var/tmp/listen" EXIT
|
||||
ln -s /var/tmp/talk /var/tmp/listen
|
||||
readlink /var/tmp/listen | grep -q "/var/tmp/talk"
|
||||
r_checkExitStatus $?
|
||||
/bin/rm /var/tmp/listen
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#!/bin/bash
|
||||
r_log "coreutils" "Test hash sum tools"
|
||||
trap '/bin/rm ${HASHFILE}' EXIT
|
||||
|
||||
HASHFILE=/var/tmp/obsidian
|
||||
echo "Green Obsidian is our release name" > ${HASHFILE}
|
||||
|
@ -23,3 +22,5 @@ r_checkExitStatus $?
|
|||
r_log "coreutils" "Test sha512sum"
|
||||
/usr/bin/sha512sum ${HASHFILE} | grep -q e50554c29a5cb7bd04279d3c0918e486024c79c4b305a2e360a97d4021dacf56ce0d17fa6e6a0e81ad03d5fb74fbe2d50cce6081c2c277f22b958cdae978a2f5
|
||||
r_checkExitStatus $?
|
||||
|
||||
/bin/rm ${HASHFILE}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#!/bin/bash
|
||||
r_log "coreutils" "Testing touch and ls"
|
||||
trap '/bin/rm /tmp/touch-?' EXIT
|
||||
|
||||
r_log "coreutils" "Touch files with specific dates"
|
||||
touch -t 199104230420 /tmp/touch-1
|
||||
|
@ -11,3 +10,5 @@ r_log "coreutils" "Verify that the oldest file is last"
|
|||
ls -lt /tmp/touch-? | tail -n 1 | grep -q 'touch-1'
|
||||
|
||||
r_checkExitStatus $?
|
||||
|
||||
/bin/rm /tmp/touch-?
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#!/bin/bash
|
||||
r_log "coreutils" "Ensure uniq works as expected"
|
||||
trap '/bin/rm /var/tmp/uniq' EXIT
|
||||
|
||||
cat > /var/tmp/uniq <<EOF
|
||||
Rocky
|
||||
|
@ -15,3 +14,4 @@ EOF
|
|||
|
||||
uniq -d /var/tmp/uniq | wc -l | grep -q 2 && uniq -u /var/tmp/uniq | wc -l | grep -q 4
|
||||
r_checkExitStatus $?
|
||||
/bin/rm /var/tmp/uniq
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
r_log "coreutils" "Ensure wc works as expected"
|
||||
r_log "coreutils" "This should have already been done with uniq"
|
||||
# Context: we should probably test some switches...
|
||||
trap "/bin/rm /var/tmp/wc" EXIT
|
||||
|
||||
cat > /var/tmp/wc <<EOF
|
||||
Rocky
|
||||
|
@ -22,3 +21,5 @@ wc -L /var/tmp/wc | grep -q 8 && \
|
|||
wc -w /var/tmp/wc | grep -q 8
|
||||
|
||||
r_checkExitStatus $?
|
||||
|
||||
/bin/rm /var/tmp/wc
|
||||
|
|
|
@ -5,18 +5,14 @@ OUTTER=/var/tmp/cpio/out
|
|||
INNER=/var/tmp/cpio/in
|
||||
PASSER=/var/tmp/cpio/pass
|
||||
|
||||
trap '/bin/rm -rf /var/tmp/cpio' EXIT
|
||||
|
||||
# Nothing should be here. Clean up first.
|
||||
[ -d /var/tmp/cpio ] && /bin/rm -rf /var/tmp/cpio
|
||||
|
||||
r_log "cpio" "Test basic copy out"
|
||||
mkdir -p "$OUTTER" "$INNER" "$PASSER"
|
||||
|
||||
# Ensure at least one file exists in /tmp to prevent errors.
|
||||
echo 1 > $(mktemp)
|
||||
# shellcheck disable=2012
|
||||
find /tmp -type f | cpio -o > "$OUTTER"/cpio.out 2> /dev/null
|
||||
ls /tmp | cpio -o > "$OUTTER"/cpio.out
|
||||
r_checkExitStatus $?
|
||||
|
||||
r_log "cpio" "Test basic copy in"
|
||||
|
@ -27,7 +23,7 @@ popd || exit 1
|
|||
|
||||
r_log "cpio" "Test basic passthrough"
|
||||
pushd "$INNER" || exit 1
|
||||
find . | cpio -pd "$PASSER"
|
||||
find /tmp | cpio -pd "$PASSER"
|
||||
r_checkExitStatus $?
|
||||
popd || exit 1
|
||||
|
||||
|
|
|
@ -15,4 +15,3 @@ r_checkExitStatus $?
|
|||
|
||||
r_log "cracklib" "Testing a complicated password"
|
||||
echo -e "2948_Obaym-" | cracklib-check | grep -q "OK"
|
||||
r_checkExitStatus $?
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
#!/bin/bash
|
||||
r_log "cron" "Testing hourly cron jobs"
|
||||
|
||||
trap '/bin/rm /etc/cron.{weekly,daily,hourly}/rocky.sh' EXIT
|
||||
|
||||
cat > /etc/cron.hourly/rocky.sh <<EOF
|
||||
#!/bin/bash
|
||||
echo "obsidian"
|
||||
|
@ -36,3 +34,5 @@ chmod +x /etc/cron.weekly/rocky.sh
|
|||
|
||||
run-parts /etc/cron.weekly | grep -q "obsidian"
|
||||
r_checkExitStatus $?
|
||||
|
||||
/bin/rm /etc/cron.{weekly,daily,hourly}/rocky.sh
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#!/bin/bash
|
||||
r_log "file" "Check that we can see a symlink"
|
||||
FILE_PATH=/var/tmp/linktest
|
||||
trap '/bin/rm ${FILE_PATH}' EXIT
|
||||
MIME="inode/symlink"
|
||||
ln -s /etc/issue $FILE_PATH
|
||||
file -i $FILE_PATH | grep -q "${MIME}"
|
||||
r_checkExitStatus $?
|
||||
|
||||
/bin/rm /var/tmp/linktest
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
r_log "findutils" "Testing basic find stuff"
|
||||
|
||||
TMPDIR=/var/tmp/find
|
||||
trap '/bin/rm -rf $TMPDIR' EXIT
|
||||
|
||||
[ -e $TMPDIR ] && rm -rf "$TMPDIR"
|
||||
|
||||
|
@ -38,8 +37,8 @@ r_log "findutils" "Perform for xargs test: fails with spaces in the name"
|
|||
# shellcheck disable=SC2038
|
||||
find "$TMPDIR" -type f | xargs ls &> /dev/null && { r_log "findutils" "Why did this get a 0 exit?"; exit "$FAIL"; }
|
||||
ret_val=$?
|
||||
if [ "$ret_val" -ne "0" ]; then
|
||||
r_checkExitStatus 0
|
||||
else
|
||||
r_checkExitStatus 1
|
||||
if [ "$ret_val" -ne 0 ]; then
|
||||
r_checkExitStatus $?
|
||||
fi
|
||||
|
||||
rm -rf "$TMPDIR"
|
||||
|
|
|
@ -1,14 +1,7 @@
|
|||
#!/bin/bash
|
||||
function cleanup() {
|
||||
cp /etc/raddb/users.backup /etc/raddb/users
|
||||
rm -rf /etc/raddb/users.backup
|
||||
systemctl stop radiusd.service
|
||||
}
|
||||
|
||||
r_log "freeradius" "Test basic freeradius functionality"
|
||||
r_log "freeradius" "Configure freeradius"
|
||||
trap cleanup EXIT
|
||||
|
||||
r_log "freeradius" "Configure freeradius"
|
||||
cp /etc/raddb/users /etc/raddb/users.backup
|
||||
cat >> /etc/raddb/users << EOF
|
||||
rocky Cleartext-Password := "rocky"
|
||||
|
@ -20,3 +13,7 @@ systemctl start radiusd.service
|
|||
sleep 1
|
||||
echo "User-Name=rocky,User-Password=rocky " | radclient -x localhost:1812 auth testing123 | grep -q 'Access-Accept'
|
||||
r_checkExitStatus $?
|
||||
|
||||
cp /etc/raddb/users.backup /etc/raddb/users
|
||||
rm -rf /etc/raddb/users.backup
|
||||
systemctl stop radiusd.service
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#!/bin/bash
|
||||
r_log "git" "Test basic git clones"
|
||||
trap 'rm -rf $TMPREPO' EXIT
|
||||
|
||||
WORKDIR=$(pwd)
|
||||
TMPREPO=/var/tmp/repo
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#!/bin/bash
|
||||
r_log "httpd" "Test basic authentication functionality"
|
||||
trap "rm /etc/httpd/conf.d/test-basic-auth.conf ; m_serviceCycler httpd reload" EXIT
|
||||
|
||||
cat > /etc/httpd/conf.d/test-basic-auth.conf <<EOF
|
||||
## Core basic auth test
|
||||
|
@ -16,8 +15,9 @@ EOF
|
|||
htpasswd -c -b /etc/httpd/htpasswd tester tester
|
||||
mkdir -p /var/www/html/basic_auth
|
||||
echo "Basic Auth Test" > /var/www/html/basic_auth/index.html
|
||||
# This isn't normally needed, it should just work
|
||||
restorecon -R /var/www/html
|
||||
m_serviceCycler httpd cycle
|
||||
curl -s -u tester:tester http://localhost/basic_auth/ | grep -q 'Basic Auth Test' > /dev/null 2>&1
|
||||
r_checkExitStatus $?
|
||||
|
||||
rm /etc/httpd/conf.d/test-basic-auth.conf
|
||||
m_serviceCycler httpd reload
|
||||
|
|
|
@ -1,12 +1,5 @@
|
|||
#!/bin/bash
|
||||
function cleanup() {
|
||||
rm /etc/httpd/conf.d/vhost.conf
|
||||
sed -i '/127.0.0.1 coretest/d' /etc/hosts
|
||||
m_serviceCycler httpd reload
|
||||
}
|
||||
|
||||
r_log "httpd" "Test basic vhost functionality"
|
||||
trap cleanup EXIT
|
||||
|
||||
echo "127.0.0.1 coretest" >> /etc/hosts
|
||||
cat > /etc/httpd/conf.d/vhost.conf << EOF
|
||||
|
@ -21,10 +14,12 @@ EOF
|
|||
|
||||
mkdir -p /var/www/vhost/coretest
|
||||
echo "core vhost test page" > /var/www/vhost/coretest/index.html
|
||||
# This isn't normally needed, it should just work
|
||||
restorecon -R /var/www/vhost
|
||||
m_serviceCycler httpd cycle
|
||||
|
||||
curl -s http://coretest/ | grep -q 'core vhost test page' > /dev/null 2>&1
|
||||
|
||||
r_checkExitStatus $?
|
||||
|
||||
rm /etc/httpd/conf.d/vhost.conf
|
||||
sed -i '/127.0.0.1 coretest/d' /etc/hosts
|
||||
m_serviceCycler httpd reload
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
r_log "httpd" "Test basic php"
|
||||
|
||||
echo "<?php echo phpinfo(); ?>" > /var/www/html/test.php
|
||||
# This isn't normally needed, it should just work
|
||||
restorecon -R /var/www/html
|
||||
curl -s http://localhost/test.php | grep -q 'PHP Version' > /dev/null 2>&1
|
||||
|
||||
r_checkExitStatus $?
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
r_log "openssh" "Install openssh"
|
||||
p_installPackageNormal openssh-clients openssh-server sshpass
|
|
@ -1,5 +0,0 @@
|
|||
#!/bin/bash
|
||||
r_log "openssh" "Ensure ssh is listening"
|
||||
|
||||
echo "" > /dev/tcp/localhost/22
|
||||
r_checkExitStatus $?
|
|
@ -1,16 +0,0 @@
|
|||
#!/bin/bash
|
||||
r_log "openssh" "Testing basic login (using sshpass)"
|
||||
trap 'userdel -rf sshpasstest; unset SSHPASS' EXIT
|
||||
|
||||
if sshd -T | grep -q "passwordauthentication yes"; then
|
||||
r_log "openssh" "Creating test user"
|
||||
export SSHPASS="Blu30nyx!"
|
||||
useradd sshpasstest
|
||||
echo "${SSHPASS}" | passwd --stdin sshpasstest
|
||||
r_log "openssh" "Testing login"
|
||||
sshpass -e ssh sshpasstest@localhost echo 'hello'
|
||||
r_checkExitStatus $?
|
||||
else
|
||||
r_log "openssh" "Skipping test"
|
||||
exit 0
|
||||
fi
|
|
@ -1,32 +0,0 @@
|
|||
#!/bin/bash
|
||||
r_log "openssh" "Testing key login (using sshpass)"
|
||||
|
||||
case $RL_VER in
|
||||
8)
|
||||
KEYTYPES="rsa ecdsa ed25519"
|
||||
;;
|
||||
9)
|
||||
KEYTYPES="rsa ecdsa ed25519"
|
||||
;;
|
||||
*)
|
||||
KEYTYPES="ed25519"
|
||||
;;
|
||||
esac
|
||||
|
||||
r_log "openssh" "Creating test user"
|
||||
useradd sshkeytest
|
||||
echo "Blu30nyx!" | passwd --stdin sshkeytest
|
||||
|
||||
for KEYTYPE in $KEYTYPES; do
|
||||
r_log "openssh" "Creating key: ${KEYTYPE}"
|
||||
runuser -l sshkeytest -c "echo | ssh-keygen -q -t ${KEYTYPE} -b 4096 -f ~/.ssh/id_${KEYTYPE}" > /dev/null
|
||||
runuser -l sshkeytest -c "cat ~/.ssh/*pub > ~/.ssh/authorized_keys && chmod 600 ~/.ssh/*keys" > /dev/null
|
||||
STRINGTEST=$(mktemp -u)
|
||||
echo "${STRINGTEST}" > /home/sshkeytest/test_file
|
||||
r_log "openssh" "Testing key: ${KEYTYPE}"
|
||||
runuser -l sshkeytest -c "ssh -i ~/.ssh/id_${KEYTYPE} localhost | grep -q ${STRINGTEST} /home/sshkeytest/test_file"
|
||||
ret_val=$?
|
||||
r_checkExitStatus $ret_val
|
||||
done
|
||||
|
||||
userdel -rf sshkeytest
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
r_log "podman" "Installing podman"
|
||||
p_installPackageNormal podman
|
|
@ -1,32 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
r_log "podman" "Testing podman"
|
||||
|
||||
test_to_run=(
|
||||
"podman version"
|
||||
"podman info"
|
||||
"podman run --rm quay.io/rockylinux/rockylinux:${RL_VER}"
|
||||
"podman system service -t 1"
|
||||
"touch ${HOME}/test.txt && \
|
||||
podman run --rm --privileged -v ${HOME}/test.txt:/test.txt quay.io/rockylinux/rockylinux:${RL_VER} bash -c 'echo HELLO > /test.txt' && \
|
||||
grep -qe 'HELLO' ${HOME}/test.txt && \
|
||||
rm -f ${HOME}/test.txt"
|
||||
"printf \"FROM quay.io/rockylinux/rockylinux:${RL_VER}\nCMD echo 'HELLO'\n\" > ${HOME}/Containerfile && \
|
||||
podman build -t test:latest -f ${HOME}/Containerfile && \
|
||||
podman image rm localhost/test:latest && \
|
||||
rm -rf ${HOME}/Containerfile"
|
||||
)
|
||||
|
||||
tmpoutput="$(mktemp)"
|
||||
trap 'rm -f ${tmpoutput}' EXIT
|
||||
|
||||
for command in "${test_to_run[@]}"; do
|
||||
r_log "podman" "Running $0: ${command}"
|
||||
if ! eval "${command}" > "${tmpoutput}" 2>&1; then
|
||||
r_log "podman" "${command} has failed."
|
||||
cat "${tmpoutput}"
|
||||
exit 1
|
||||
else
|
||||
r_checkExitStatus 0
|
||||
fi
|
||||
done
|
|
@ -1,31 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
r_log "podman" "Testing podman sockets"
|
||||
|
||||
useradd podman-remote
|
||||
loginctl enable-linger podman-remote
|
||||
tmpoutput="$(mktemp)"
|
||||
|
||||
trap 'loginctl terminate-user podman-remote && loginctl disable-linger podman-remote && sleep 1 && userdel -r podman-remote && rm -f ${tmpoutput}' EXIT
|
||||
|
||||
sleep 3
|
||||
|
||||
su -l podman-remote > "${tmpoutput}" 2>&1 <<EOF
|
||||
set -e
|
||||
export XDG_RUNTIME_DIR=/run/user/\$(id -u)
|
||||
systemctl --user enable --now podman.socket
|
||||
podman --url unix://run/user/\$(id -u)/podman/podman.sock run --name port-mapping-test -d -p 8080:80 docker.io/nginx
|
||||
pid=\$(systemctl --user show --property MainPID --value podman.service)
|
||||
while [ "\${pid}" -ne 0 ] && [ -d /proc/\${pid} ]; do sleep 1; echo "Waiting for podman to exit"; done
|
||||
podman --url unix://run/user/\$(id -u)/podman/podman.sock ps | grep -q -e port-mapping-test
|
||||
podman --url unix://run/user/\$(id -u)/podman/podman.sock container rm -f port-mapping-test
|
||||
systemctl --user disable --now podman.socket
|
||||
EOF
|
||||
|
||||
ret_val=$?
|
||||
|
||||
if [ "$ret_val" -ne 0 ]; then
|
||||
cat "${tmpoutput}"
|
||||
r_checkExitStatus 1
|
||||
fi
|
||||
r_checkExitStatus 0
|
|
@ -1,6 +1,5 @@
|
|||
#!/bin/bash
|
||||
r_log "postfix" "Install postfix (requires stop of other pieces)"
|
||||
# This is OK if it fails - This is also not logged except in stderr
|
||||
m_serviceCycler sendmail stop
|
||||
p_installPackageNormal postfix nc dovecot openssl
|
||||
m_serviceCycler postfix enable
|
||||
|
|
|
@ -18,3 +18,6 @@ mv /etc/dovecot/dovecot.conf.backup /etc/dovecot/dovecot.conf
|
|||
mv /etc/postfix/main.cf.backup /etc/postfix/main.cf
|
||||
|
||||
r_checkExitStatus $ret_val
|
||||
|
||||
cp -a /etc/postfix/main.cf.backup /etc/postfix/main.cf
|
||||
cp -a /etc/dovecot/dovecot.conf.backup /etc/dovecot/dovecot.conf
|
||||
|
|
|
@ -2,17 +2,6 @@
|
|||
r_log "postfix" "Test postfix with TLS"
|
||||
DROPDIR=/var/tmp/postfix
|
||||
|
||||
function cleanup() {
|
||||
mv /etc/postfix/main.cf.backup /etc/postfix/main.cf
|
||||
mv /etc/dovecot/dovecot.conf.backup /etc/dovecot/dovecot.conf
|
||||
rm /etc/pki/tls/certs/mail.crt
|
||||
rm /etc/pki/tls/private/mail.key
|
||||
rm -rf $DROPDIR/mail.*
|
||||
rm -rf /var/tmp/postfix
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
cp -a /etc/postfix/main.cf /etc/postfix/main.cf.backup
|
||||
cp -a /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.backup
|
||||
|
||||
|
@ -70,4 +59,11 @@ r_log "postfix" "Testing that postfix offers STARTTLS"
|
|||
echo "ehlo test" | nc -w 3 127.0.0.1 25 | grep -q "STARTTLS"
|
||||
ret_val=$?
|
||||
|
||||
r_checkExitStatus $ret_val
|
||||
mv /etc/postfix/main.cf.backup /etc/postfix/main.cf
|
||||
mv /etc/dovecot/dovecot.conf.backup /etc/dovecot/dovecot.conf
|
||||
rm /etc/pki/tls/certs/mail.crt
|
||||
rm /etc/pki/tls/certs/mail.key
|
||||
rm -rf $DROPDIR/mail.*
|
||||
rm -rf /var/tmp/postfix
|
||||
|
||||
r_checkExitStatus $?
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Check that the release package is 1.X
|
||||
r_log "rocky release" "Checking that the package is at least X.Y-1.B"
|
||||
|
||||
RELEASE_VER="$(rpm -q rocky-release --qf '%{RELEASE}')"
|
||||
RELNUM="${RELEASE_VER:0:1}"
|
||||
if [ "${RELNUM}" -ge "1" ]; then
|
||||
if [[ "${RELEASE_VER:0:3}" =~ ^${RELNUM}.[[:digit:]] ]]; then
|
||||
ret_val="0"
|
||||
else
|
||||
r_log "rocky release" "FAIL: The release package is not in X.Y-A.B format"
|
||||
ret_val="1"
|
||||
fi
|
||||
else
|
||||
r_log "rocky release" "FAIL: The release package likely starts with 0 and is not considered production ready."
|
||||
ret_val="1"
|
||||
fi
|
||||
|
||||
r_checkExitStatus $ret_val
|
|
@ -8,12 +8,7 @@ if [ ! -d /sys/firmware/efi ]; then
|
|||
exit 0
|
||||
fi
|
||||
else
|
||||
if [[ "$rl_arch" == "x86_64" ]]; then
|
||||
p_installPackageNormal pesign
|
||||
pesign --show-signature --in /boot/efi/EFI/rocky/shim.efi | grep -Eq "Microsoft Windows UEFI Driver Publisher"
|
||||
r_checkExitStatus $?
|
||||
else
|
||||
r_log "secureboot" "x86_64 is the only supported secureboot arch at this time"
|
||||
exit 0
|
||||
fi
|
||||
p_installPackageNormal pesign
|
||||
pesign --show-signature --in /boot/efi/EFI/rocky/shim.efi | grep -Eq "Microsoft Windows UEFI Driver Publisher"
|
||||
r_checkExitStatus $?
|
||||
fi
|
||||
|
|
|
@ -1,11 +1,4 @@
|
|||
#!/bin/bash
|
||||
function cleanup() {
|
||||
pwconv
|
||||
rm -rf /var/tmp/pwunconv /var/tmp/pwconv
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
r_log "shadow" "Check that pwck can use correct files"
|
||||
pwck -rq ./common/files/correct-passwd ./common/files/correct-shadow
|
||||
r_checkExitStatus $?
|
||||
|
@ -15,11 +8,9 @@ pwck -rq ./common/files/incorrect-passwd ./common/files/incorrect-shadow
|
|||
ret_val=$?
|
||||
if [ "$ret_val" -eq 0 ]; then
|
||||
r_log "shadow" "They're correct."
|
||||
r_checkExitStatus 1
|
||||
else
|
||||
r_log "shadow" "They're incorrect."
|
||||
r_checkExitStatus 0
|
||||
exit 1
|
||||
fi
|
||||
r_checkExitStatus 0
|
||||
|
||||
r_log "shadow" "Check that pwconv is functional"
|
||||
mkdir -p /var/tmp/pwconv
|
||||
|
|
|
@ -6,5 +6,5 @@ echo "rocky func" > /var/lib/tftpboot/tftptest
|
|||
tftp 127.0.0.1 -c get tftptest
|
||||
|
||||
grep -q "rocky func" tftptest
|
||||
r_checkExitStatus $?
|
||||
r_checkExitStatus
|
||||
/bin/rm tftptest
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
r_log "pdf" "Install enscript, ghostscript, and poppler"
|
||||
p_installPackageNormal fontconfig @fonts enscript ghostscript poppler-utils
|
|
@ -1,23 +0,0 @@
|
|||
#!/bin/bash
|
||||
r_log "pdf" "Create a PDF from postscript from text, convert it back to text and check"
|
||||
trap 'rm -rf $PSFILE $PDFFILE $TESTFILE' EXIT
|
||||
|
||||
TOFIND="BlueOnyx"
|
||||
PSFILE="/var/tmp/test.ps"
|
||||
PDFFILE="/var/tmp/test.pdf"
|
||||
TESTFILE="/var/tmp/psresult"
|
||||
|
||||
encript -q -p $PSFILE /etc/rocky-release
|
||||
|
||||
r_log "pdf" "Check created file"
|
||||
|
||||
grep -q $TOFIND $PSFILE
|
||||
pdf_ret_val=$?
|
||||
r_checkExitStatus $pdf_ret_val
|
||||
|
||||
ps2pdf $PSFILE $PDFFILE
|
||||
pdftotext -q $PDFFILE $TESTFILE
|
||||
r_log "pdf" "Checking after conversion to text"
|
||||
grep -q $TOFIND $TESTFILE
|
||||
text_ret_val=$?
|
||||
r_checkExitStatus $text_ret_val
|
|
@ -30,16 +30,6 @@ if [ "$SELINUX" != "Enforcing" ]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
r_checkEPELEnabled
|
||||
is_epel=$?
|
||||
if [[ "$is_epel" == "0" ]]; then
|
||||
echo "EPEL enabled. Stop."
|
||||
r_log "internal" "EPEL enabled. Stop."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
r_checkTmpNoExec
|
||||
|
||||
r_log "internal" "Starting Release Engineering Core Tests"
|
||||
|
||||
################################################################################
|
||||
|
@ -62,7 +52,7 @@ fi
|
|||
# TODO: get some stacks and lib in there
|
||||
|
||||
r_processor <(/usr/bin/find ./core -type f | sort -t'/')
|
||||
r_processor <(/usr/bin/find ./lib -type f | sort -t'/')
|
||||
#r_processor <(/usr/bin/find ./lib -type f | sort -t'/')
|
||||
#r_processor <(/usr/bin/find ./stacks -type f | sort -t'/')
|
||||
|
||||
r_log "internal" "Core Tests completed"
|
||||
|
|
|
@ -1,2 +1,7 @@
|
|||
While not considered a "stack", it's a combination of many things at once. So
|
||||
it is being tested as a stack.
|
||||
|
||||
We will be testing mainly against EL8. It is not clear if EL9 will keep idm as
|
||||
a module in 9. However, certain tests will be checking for the release just in
|
||||
case that the modules will disappear. (I can only hope that it does and that
|
||||
it just goes back to what Fedora is doing and what EL7 does). -label
|
||||
|
|
|
@ -1 +1 @@
|
|||
__version__ = '0.6.1'
|
||||
__version__ = '0.5.0'
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
# All imports are here
|
||||
import glob
|
||||
import hashlib
|
||||
import logging
|
||||
import os
|
||||
import platform
|
||||
import time
|
||||
from collections import defaultdict
|
||||
from typing import Tuple
|
||||
|
||||
import glob
|
||||
import rpm
|
||||
import yaml
|
||||
import logging
|
||||
import hashlib
|
||||
|
||||
|
||||
from collections import defaultdict
|
||||
from typing import Tuple
|
||||
|
||||
# An implementation from the Fabric python library
|
||||
class AttributeDict(defaultdict):
|
||||
def __init__(self):
|
||||
|
@ -26,31 +26,29 @@ class AttributeDict(defaultdict):
|
|||
def __setattr__(self, key, value):
|
||||
self[key] = value
|
||||
|
||||
|
||||
# These are a bunch of colors we may use in terminal output
|
||||
class Color:
|
||||
RED = "\033[91m"
|
||||
GREEN = "\033[92m"
|
||||
PURPLE = "\033[95m"
|
||||
CYAN = "\033[96m"
|
||||
DARKCYAN = "\033[36m"
|
||||
BLUE = "\033[94m"
|
||||
YELLOW = "\033[93m"
|
||||
UNDERLINE = "\033[4m"
|
||||
BOLD = "\033[1m"
|
||||
END = "\033[0m"
|
||||
INFO = "[" + BOLD + GREEN + "INFO" + END + "] "
|
||||
WARN = "[" + BOLD + YELLOW + "WARN" + END + "] "
|
||||
FAIL = "[" + BOLD + RED + "FAIL" + END + "] "
|
||||
STAT = "[" + BOLD + CYAN + "STAT" + END + "] "
|
||||
|
||||
RED = '\033[91m'
|
||||
GREEN = '\033[92m'
|
||||
PURPLE = '\033[95m'
|
||||
CYAN = '\033[96m'
|
||||
DARKCYAN = '\033[36m'
|
||||
BLUE = '\033[94m'
|
||||
YELLOW = '\033[93m'
|
||||
UNDERLINE = '\033[4m'
|
||||
BOLD = '\033[1m'
|
||||
END = '\033[0m'
|
||||
INFO = '[' + BOLD + GREEN + 'INFO' + END + '] '
|
||||
WARN = '[' + BOLD + YELLOW + 'WARN' + END + '] '
|
||||
FAIL = '[' + BOLD + RED + 'FAIL' + END + '] '
|
||||
STAT = '[' + BOLD + CYAN + 'STAT' + END + '] '
|
||||
|
||||
# vars and additional checks
|
||||
rldict = AttributeDict()
|
||||
sigdict = AttributeDict()
|
||||
config = {
|
||||
"rlmacro": rpm.expandMacro("%rhel"),
|
||||
"dist": "el" + rpm.expandMacro("%rhel"),
|
||||
"rlmacro": rpm.expandMacro('%rhel'),
|
||||
"dist": 'el' + rpm.expandMacro('%rhel'),
|
||||
"arch": platform.machine(),
|
||||
"date_stamp": time.strftime("%Y%m%d.%H%M%S", time.localtime()),
|
||||
"compose_root": "/mnt/compose",
|
||||
|
@ -68,29 +66,28 @@ config = {
|
|||
"aarch64": "arm64",
|
||||
"ppc64le": "ppc64le",
|
||||
"s390x": "s390x",
|
||||
"i686": "386",
|
||||
"i686": "386"
|
||||
},
|
||||
"aws_region": "us-east-2",
|
||||
"bucket": "resf-empanadas",
|
||||
"bucket_url": "https://resf-empanadas.s3.us-east-2.amazonaws.com",
|
||||
"bucket_url": "https://resf-empanadas.s3.us-east-2.amazonaws.com"
|
||||
}
|
||||
|
||||
# Importing the config from yaml
|
||||
import importlib_resources
|
||||
|
||||
_rootdir = importlib_resources.files("empanadas")
|
||||
|
||||
for conf in glob.iglob(f"{_rootdir}/configs/*.yaml"):
|
||||
with open(conf, "r", encoding="utf-8") as file:
|
||||
with open(conf, 'r', encoding="utf-8") as file:
|
||||
rldict.update(yaml.safe_load(file))
|
||||
|
||||
# Import all SIG configs from yaml
|
||||
for conf in glob.iglob(f"{_rootdir}/sig/*.yaml"):
|
||||
with open(conf, "r", encoding="utf-8") as file:
|
||||
with open(conf, 'r', encoding="utf-8") as file:
|
||||
sigdict.update(yaml.safe_load(file))
|
||||
|
||||
# The system needs to be a RHEL-like system. It cannot be Fedora or SuSE.
|
||||
# if "%rhel" in config['rlmacro']:
|
||||
#if "%rhel" in config['rlmacro']:
|
||||
# raise SystemExit(Color.BOLD + 'This is not a RHEL-like system.' + Color.END
|
||||
# + '\n\nPlease verify you are running on a RHEL-like system that is '
|
||||
# 'not Fedora nor SuSE. This means that the %rhel macro will be '
|
||||
|
@ -99,25 +96,21 @@ for conf in glob.iglob(f"{_rootdir}/sig/*.yaml"):
|
|||
|
||||
|
||||
# These will be set in their respective var files
|
||||
# REVISION = rlvars['revision'] + '-' + rlvars['rclvl']
|
||||
# rlvars = rldict[rlver]
|
||||
# rlvars = rldict[rlmacro]
|
||||
# COMPOSE_ISO_WORKDIR = COMPOSE_ROOT + "work/" + arch + "/" + date_stamp
|
||||
#REVISION = rlvars['revision'] + '-' + rlvars['rclvl']
|
||||
#rlvars = rldict[rlver]
|
||||
#rlvars = rldict[rlmacro]
|
||||
#COMPOSE_ISO_WORKDIR = COMPOSE_ROOT + "work/" + arch + "/" + date_stamp
|
||||
|
||||
|
||||
ALLOWED_TYPE_VARIANTS = {
|
||||
"Azure": ["Base", "LVM"],
|
||||
"Container": ["Base", "Minimal", "UBI", "WSL"],
|
||||
"EC2": ["Base", "LVM"],
|
||||
"GenericCloud": ["Base", "LVM"],
|
||||
"Vagrant": ["Libvirt", "Vbox", "VMware"],
|
||||
"OCP": ["Base"],
|
||||
"RPI": ["Base"],
|
||||
"GenericArm": ["Minimal"],
|
||||
"Azure": ["Base", "LVM"],
|
||||
"Container": ["Base", "Minimal", "UBI"],
|
||||
"EC2": ["Base", "LVM"],
|
||||
"GenericCloud": ["Base", "LVM"],
|
||||
"Vagrant": ["Libvirt", "Vbox"],
|
||||
"OCP": None
|
||||
}
|
||||
|
||||
|
||||
def valid_type_variant(_type: str, variant: str = "") -> bool:
|
||||
def valid_type_variant(_type: str, variant: str="") -> bool:
|
||||
if _type not in ALLOWED_TYPE_VARIANTS:
|
||||
raise Exception(f"Type is invalid: ({_type}, {variant})")
|
||||
if ALLOWED_TYPE_VARIANTS[_type] == None:
|
||||
|
@ -125,19 +118,12 @@ def valid_type_variant(_type: str, variant: str = "") -> bool:
|
|||
raise Exception(f"{_type} Type expects no variant type.")
|
||||
return True
|
||||
if variant not in ALLOWED_TYPE_VARIANTS[_type]:
|
||||
if variant and variant.capitalize() in ALLOWED_TYPE_VARIANTS[_type]:
|
||||
raise Exception(
|
||||
f"Capitalization mismatch. Found: ({_type}, {variant}). Expected: ({_type}, {variant.capitalize()})"
|
||||
)
|
||||
raise Exception(
|
||||
f"Type/Variant Combination is not allowed: ({_type}, {variant})"
|
||||
)
|
||||
if variant.capitalize() in ALLOWED_TYPE_VARIANTS[_type]:
|
||||
raise Exception(f"Capitalization mismatch. Found: ({_type}, {variant}). Expected: ({_type}, {variant.capitalize()})")
|
||||
raise Exception(f"Type/Variant Combination is not allowed: ({_type}, {variant})")
|
||||
return True
|
||||
|
||||
|
||||
from attrs import define, field
|
||||
|
||||
|
||||
@define(kw_only=True)
|
||||
class Architecture:
|
||||
name: str = field()
|
||||
|
|
|
@ -1,220 +0,0 @@
|
|||
---
|
||||
'10':
|
||||
fullname: 'Rocky Linux 10.0'
|
||||
revision: '10.0'
|
||||
rclvl: 'RC1'
|
||||
major: '10'
|
||||
minor: '0'
|
||||
profile: '10'
|
||||
disttag: 'el10'
|
||||
code: "Red Quartz"
|
||||
bugurl: 'https://bugs.rockylinux.org'
|
||||
checksum: 'sha256'
|
||||
fedora_major: '20'
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
- ppc64le
|
||||
- s390x
|
||||
provide_multilib: False
|
||||
project_id: 'e7b83c0a-b514-4903-b739-6943bbb307f7'
|
||||
repo_symlinks:
|
||||
NFV: 'nfv'
|
||||
renames:
|
||||
all: 'devel'
|
||||
all_repos:
|
||||
- 'all'
|
||||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
- 'CRB'
|
||||
- 'HighAvailability'
|
||||
- 'ResilientStorage'
|
||||
- 'RT'
|
||||
- 'NFV'
|
||||
- 'SAP'
|
||||
- 'SAPHANA'
|
||||
- 'extras'
|
||||
- 'plus'
|
||||
extra_repos: []
|
||||
structure:
|
||||
packages: 'os/Packages'
|
||||
repodata: 'os/repodata'
|
||||
iso_map:
|
||||
xorrisofs: True
|
||||
iso_level: False
|
||||
images:
|
||||
dvd:
|
||||
disc: True
|
||||
variant: 'AppStream'
|
||||
repos:
|
||||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
minimal:
|
||||
disc: True
|
||||
isoskip: True
|
||||
repos:
|
||||
- 'minimal'
|
||||
- 'BaseOS'
|
||||
variant: 'minimal'
|
||||
volname: 'dvd'
|
||||
BaseOS:
|
||||
disc: False
|
||||
isoskip: True
|
||||
variant: 'BaseOS'
|
||||
repos:
|
||||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
lorax:
|
||||
noupgrade: False
|
||||
squashfs_only: True
|
||||
repos:
|
||||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
variant: 'BaseOS'
|
||||
lorax_removes: []
|
||||
required_pkgs:
|
||||
- 'lorax'
|
||||
- 'isomd5sum'
|
||||
- 'lorax-templates-rhel'
|
||||
- 'lorax-templates-generic'
|
||||
- 'xorriso'
|
||||
cloudimages:
|
||||
images:
|
||||
Azure:
|
||||
format: vhd
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-Azure-Base
|
||||
- Cloud-Azure-LVM
|
||||
EC2:
|
||||
format: qcow2
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-EC2-Base
|
||||
- Cloud-EC2-LVM
|
||||
GenericCloud:
|
||||
format: qcow2
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-GenericCloud-Base
|
||||
- Cloud-GenericCloud-LVM
|
||||
Container:
|
||||
format: tar.xz
|
||||
variants: [Base, Minimal, Toolbox, UBI]
|
||||
kiwi:
|
||||
type: "oci"
|
||||
profile_names:
|
||||
- Container-Base
|
||||
- Container-Minimal
|
||||
- Container-Toolbox
|
||||
- Container-UBI
|
||||
RPI:
|
||||
format: raw.xz
|
||||
OCP:
|
||||
format: qcow2
|
||||
variants: [Base]
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-OCP-Base
|
||||
Vagrant:
|
||||
format: box
|
||||
variants: [Libvirt, Vbox, VMware]
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Vagrant-Libvirt
|
||||
- Vagrant-Vbox
|
||||
- Vagrant-VMware
|
||||
livemap:
|
||||
builder: "lorax"
|
||||
git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
|
||||
branch: 'r10'
|
||||
ksentry:
|
||||
Workstation: rocky-live-workstation.ks
|
||||
Workstation-Lite: rocky-live-workstation-lite.ks
|
||||
XFCE: rocky-live-xfce.ks
|
||||
KDE: rocky-live-kde.ks
|
||||
MATE: rocky-live-mate.ks
|
||||
Cinnamon: rocky-live-cinnamon.ks
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
required_pkgs:
|
||||
- 'lorax-lmc-novirt'
|
||||
- 'vim-minimal'
|
||||
- 'pykickstart'
|
||||
- 'git'
|
||||
kiwimap:
|
||||
git_repo: 'https://git.resf.org/sig_core/rocky-kiwi-descriptions.git'
|
||||
branch: 'r9'
|
||||
required_pkgs:
|
||||
- dracut-kiwi-live
|
||||
- git
|
||||
- kiwi
|
||||
- kiwi-cli
|
||||
- kiwi-systemdeps-bootloaders
|
||||
- kiwi-systemdeps-containers
|
||||
- kiwi-systemdeps-core
|
||||
- kiwi-systemdeps-disk-images
|
||||
- kiwi-systemdeps-filesystems
|
||||
- kiwi-systemdeps-image-validation
|
||||
- kiwi-systemdeps-iso-media
|
||||
repoclosure_map:
|
||||
arches:
|
||||
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
||||
aarch64: '--forcearch=aarch64 --arch=aarch64 --arch=noarch'
|
||||
ppc64le: '--forcearch=ppc64le --arch=ppc64le --arch=noarch'
|
||||
s390x: '--forcearch=s390x --arch=s390x --arch=noarch'
|
||||
repos:
|
||||
devel: []
|
||||
BaseOS: []
|
||||
AppStream:
|
||||
- BaseOS
|
||||
CRB:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
HighAvailability:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
ResilientStorage:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
RT:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
NFV:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
SAP:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
- HighAvailability
|
||||
SAPHANA:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
- HighAvailability
|
||||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
|
||||
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r10/'
|
||||
branch: 'r10'
|
||||
gpg:
|
||||
stable: 'SOURCES/RPM-GPG-KEY-Rocky-10'
|
||||
testing: 'SOURCES/RPM-GPG-KEY-Rocky-10-Testing'
|
||||
list:
|
||||
- 'SOURCES/Contributors'
|
||||
- 'SOURCES/COMMUNITY-CHARTER'
|
||||
- 'SOURCES/EULA'
|
||||
- 'SOURCES/LICENSE'
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-10'
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-10-Testing'
|
||||
...
|
|
@ -1,220 +0,0 @@
|
|||
---
|
||||
'10-lookahead':
|
||||
fullname: 'Rocky Linux 10.0'
|
||||
revision: '10.0'
|
||||
rclvl: 'LH1'
|
||||
major: '10'
|
||||
minor: '0'
|
||||
profile: '10-lookahead'
|
||||
disttag: 'el10'
|
||||
code: "Red Quartz"
|
||||
bugurl: 'https://bugs.rockylinux.org'
|
||||
checksum: 'sha256'
|
||||
fedora_major: '20'
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
- ppc64le
|
||||
- s390x
|
||||
provide_multilib: False
|
||||
project_id: 'e7b83c0a-b514-4903-b739-6943bbb307f7'
|
||||
repo_symlinks:
|
||||
NFV: 'nfv'
|
||||
renames:
|
||||
all: 'devel'
|
||||
all_repos:
|
||||
- 'all'
|
||||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
- 'CRB'
|
||||
- 'HighAvailability'
|
||||
- 'ResilientStorage'
|
||||
- 'RT'
|
||||
- 'NFV'
|
||||
- 'SAP'
|
||||
- 'SAPHANA'
|
||||
- 'extras'
|
||||
- 'plus'
|
||||
extra_repos: []
|
||||
structure:
|
||||
packages: 'os/Packages'
|
||||
repodata: 'os/repodata'
|
||||
iso_map:
|
||||
xorrisofs: True
|
||||
iso_level: False
|
||||
images:
|
||||
dvd:
|
||||
disc: True
|
||||
variant: 'AppStream'
|
||||
repos:
|
||||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
minimal:
|
||||
disc: True
|
||||
isoskip: True
|
||||
repos:
|
||||
- 'minimal'
|
||||
- 'BaseOS'
|
||||
variant: 'minimal'
|
||||
volname: 'dvd'
|
||||
BaseOS:
|
||||
disc: False
|
||||
isoskip: True
|
||||
variant: 'BaseOS'
|
||||
repos:
|
||||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
lorax:
|
||||
noupgrade: False
|
||||
squashfs_only: True
|
||||
repos:
|
||||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
variant: 'BaseOS'
|
||||
lorax_removes: []
|
||||
required_pkgs:
|
||||
- 'lorax'
|
||||
- 'isomd5sum'
|
||||
- 'lorax-templates-rhel'
|
||||
- 'lorax-templates-generic'
|
||||
- 'xorriso'
|
||||
cloudimages:
|
||||
images:
|
||||
Azure:
|
||||
format: vhd
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-Azure-Base
|
||||
- Cloud-Azure-LVM
|
||||
EC2:
|
||||
format: qcow2
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-EC2-Base
|
||||
- Cloud-EC2-LVM
|
||||
GenericCloud:
|
||||
format: qcow2
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-GenericCloud-Base
|
||||
- Cloud-GenericCloud-LVM
|
||||
Container:
|
||||
format: tar.xz
|
||||
variants: [Base, Minimal, Toolbox, UBI]
|
||||
kiwi:
|
||||
type: "oci"
|
||||
profile_names:
|
||||
- Container-Base
|
||||
- Container-Minimal
|
||||
- Container-Toolbox
|
||||
- Container-UBI
|
||||
RPI:
|
||||
format: raw.xz
|
||||
OCP:
|
||||
format: qcow2
|
||||
variants: [Base]
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-OCP-Base
|
||||
Vagrant:
|
||||
format: box
|
||||
variants: [Libvirt, Vbox, VMware]
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Vagrant-Libvirt
|
||||
- Vagrant-Vbox
|
||||
- Vagrant-VMware
|
||||
livemap:
|
||||
builder: "lorax"
|
||||
git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
|
||||
branch: 'r10'
|
||||
ksentry:
|
||||
Workstation: rocky-live-workstation.ks
|
||||
Workstation-Lite: rocky-live-workstation-lite.ks
|
||||
XFCE: rocky-live-xfce.ks
|
||||
KDE: rocky-live-kde.ks
|
||||
MATE: rocky-live-mate.ks
|
||||
Cinnamon: rocky-live-cinnamon.ks
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
required_pkgs:
|
||||
- 'lorax-lmc-novirt'
|
||||
- 'vim-minimal'
|
||||
- 'pykickstart'
|
||||
- 'git'
|
||||
kiwimap:
|
||||
git_repo: 'https://git.resf.org/sig_core/rocky-kiwi-descriptions.git'
|
||||
branch: 'r9'
|
||||
required_pkgs:
|
||||
- dracut-kiwi-live
|
||||
- git
|
||||
- kiwi
|
||||
- kiwi-cli
|
||||
- kiwi-systemdeps-bootloaders
|
||||
- kiwi-systemdeps-containers
|
||||
- kiwi-systemdeps-core
|
||||
- kiwi-systemdeps-disk-images
|
||||
- kiwi-systemdeps-filesystems
|
||||
- kiwi-systemdeps-image-validation
|
||||
- kiwi-systemdeps-iso-media
|
||||
repoclosure_map:
|
||||
arches:
|
||||
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
||||
aarch64: '--forcearch=aarch64 --arch=aarch64 --arch=noarch'
|
||||
ppc64le: '--forcearch=ppc64le --arch=ppc64le --arch=noarch'
|
||||
s390x: '--forcearch=s390x --arch=s390x --arch=noarch'
|
||||
repos:
|
||||
devel: []
|
||||
BaseOS: []
|
||||
AppStream:
|
||||
- BaseOS
|
||||
CRB:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
HighAvailability:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
ResilientStorage:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
RT:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
NFV:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
SAP:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
- HighAvailability
|
||||
SAPHANA:
|
||||
- BaseOS
|
||||
- AppStream
|
||||
- HighAvailability
|
||||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
|
||||
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r10s/'
|
||||
branch: 'r10s'
|
||||
gpg:
|
||||
stable: 'SOURCES/RPM-GPG-KEY-Rocky-10'
|
||||
testing: 'SOURCES/RPM-GPG-KEY-Rocky-10-Testing'
|
||||
list:
|
||||
- 'SOURCES/Contributors'
|
||||
- 'SOURCES/COMMUNITY-CHARTER'
|
||||
- 'SOURCES/EULA'
|
||||
- 'SOURCES/LICENSE'
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-10'
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-10-Testing'
|
||||
...
|
|
@ -7,7 +7,6 @@
|
|||
minor: '7'
|
||||
profile: '8'
|
||||
disttag: 'el8'
|
||||
code: "Green Obsidian"
|
||||
bugurl: 'https://bugs.rockylinux.org'
|
||||
checksum: 'sha256'
|
||||
fedora_major: '20'
|
||||
|
@ -80,7 +79,7 @@
|
|||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
EC2:
|
||||
format: qcow2
|
||||
format: raw
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
GenericCloud:
|
||||
|
@ -92,7 +91,6 @@
|
|||
variants: [Base, Minimal, UBI]
|
||||
OCP:
|
||||
format: qcow2
|
||||
variants: [Base]
|
||||
livemap:
|
||||
git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
|
||||
branch: 'r8'
|
||||
|
@ -108,6 +106,10 @@
|
|||
- 'vim-minimal'
|
||||
- 'pykickstart'
|
||||
- 'git'
|
||||
variantmap:
|
||||
git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git'
|
||||
branch: 'r8-beta'
|
||||
git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r8-beta/'
|
||||
repoclosure_map:
|
||||
arches:
|
||||
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
---
|
||||
'8':
|
||||
fullname: 'Rocky Linux 8'
|
||||
revision: '8.9'
|
||||
revision: '8.7'
|
||||
rclvl: 'RC1'
|
||||
major: '8'
|
||||
minor: '9'
|
||||
minor: '7'
|
||||
profile: '8'
|
||||
disttag: 'el8'
|
||||
code: "Green Obsidian"
|
||||
bugurl: 'https://bugs.rockylinux.org'
|
||||
checksum: 'sha256'
|
||||
fedora_major: '20'
|
||||
|
@ -80,7 +79,7 @@
|
|||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
EC2:
|
||||
format: qcow2
|
||||
format: raw
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
GenericCloud:
|
||||
|
@ -89,15 +88,9 @@
|
|||
primary_variant: 'Base'
|
||||
Container:
|
||||
format: tar.xz
|
||||
variants: [Base, Minimal, UBI, WSL]
|
||||
RPI:
|
||||
format: raw.xz
|
||||
variants: [Base, Minimal, UBI]
|
||||
OCP:
|
||||
format: qcow2
|
||||
variants: [Base]
|
||||
Vagrant:
|
||||
format: box
|
||||
variants: [Libvirt, Vbox, VMware]
|
||||
livemap:
|
||||
git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
|
||||
branch: 'r8'
|
||||
|
@ -113,6 +106,10 @@
|
|||
- 'vim-minimal'
|
||||
- 'pykickstart'
|
||||
- 'git'
|
||||
variantmap:
|
||||
git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git'
|
||||
branch: 'r8'
|
||||
git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r8/'
|
||||
repoclosure_map:
|
||||
arches:
|
||||
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
minor: '8'
|
||||
profile: '8'
|
||||
disttag: 'el8'
|
||||
code: "Green Obsidian"
|
||||
bugurl: 'https://bugs.rockylinux.org'
|
||||
checksum: 'sha256'
|
||||
fedora_major: '20'
|
||||
|
@ -80,7 +79,7 @@
|
|||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
EC2:
|
||||
format: qcow2
|
||||
format: raw
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
GenericCloud:
|
||||
|
@ -92,7 +91,6 @@
|
|||
variants: [Base, Minimal, UBI]
|
||||
OCP:
|
||||
format: qcow2
|
||||
variants: [Base]
|
||||
livemap:
|
||||
git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
|
||||
branch: 'r8'
|
||||
|
@ -108,6 +106,10 @@
|
|||
- 'vim-minimal'
|
||||
- 'pykickstart'
|
||||
- 'git'
|
||||
variantmap:
|
||||
git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git'
|
||||
branch: 'r8s'
|
||||
git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r8s/'
|
||||
repoclosure_map:
|
||||
arches:
|
||||
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
---
|
||||
'9-beta':
|
||||
fullname: 'Rocky Linux 9.4'
|
||||
revision: '9.4'
|
||||
fullname: 'Rocky Linux 9.2'
|
||||
revision: '9.2'
|
||||
rclvl: 'BETA1'
|
||||
major: '9'
|
||||
minor: '4'
|
||||
minor: '2'
|
||||
profile: '9-beta'
|
||||
disttag: 'el9'
|
||||
code: "Blue Onyx"
|
||||
bugurl: 'https://bugs.rockylinux.org'
|
||||
checksum: 'sha256'
|
||||
fedora_major: '20'
|
||||
|
@ -17,7 +16,7 @@
|
|||
- ppc64le
|
||||
- s390x
|
||||
provide_multilib: True
|
||||
project_id: 'df5bcbfc-ba83-4da8-84d6-ae0168921b4d'
|
||||
project_id: '0048077b-1573-4cb7-8ba7-cce823857ba5'
|
||||
repo_symlinks:
|
||||
NFV: 'nfv'
|
||||
renames:
|
||||
|
@ -35,13 +34,6 @@
|
|||
- 'SAPHANA'
|
||||
- 'extras'
|
||||
- 'plus'
|
||||
extra_repos:
|
||||
- name: 'core-common'
|
||||
url: 'https://yumrepofs.build.resf.org/v1/projects/47e0b4a8-84ba-43a9-bb94-eb99dde4cf14/repo/core-common/$basearch'
|
||||
priority: '100'
|
||||
- name: 'core-infra'
|
||||
url: 'https://yumrepofs.build.resf.org/v1/projects/47e0b4a8-84ba-43a9-bb94-eb99dde4cf14/repo/core-infra/$basearch'
|
||||
priority: '100'
|
||||
structure:
|
||||
packages: 'os/Packages'
|
||||
repodata: 'os/repodata'
|
||||
|
@ -62,7 +54,6 @@
|
|||
- 'minimal'
|
||||
- 'BaseOS'
|
||||
variant: 'minimal'
|
||||
volname: 'dvd'
|
||||
BaseOS:
|
||||
disc: False
|
||||
isoskip: True
|
||||
|
@ -71,13 +62,12 @@
|
|||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
lorax:
|
||||
noupgrade: False
|
||||
squashfs_only: True
|
||||
repos:
|
||||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
variant: 'BaseOS'
|
||||
lorax_removes: []
|
||||
lorax_removes:
|
||||
- 'libreport-rhel-anaconda-bugzilla'
|
||||
required_pkgs:
|
||||
- 'lorax'
|
||||
- 'genisoimage'
|
||||
|
@ -91,68 +81,28 @@
|
|||
format: vhd
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-Azure-Base
|
||||
- Cloud-Azure-LVM
|
||||
EC2:
|
||||
format: qcow2
|
||||
format: raw
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-EC2-Base
|
||||
- Cloud-EC2-LVM
|
||||
GenericCloud:
|
||||
format: qcow2
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-GenericCloud-Base
|
||||
- Cloud-GenericCloud-LVM
|
||||
Container:
|
||||
format: tar.xz
|
||||
variants: [Base, Minimal, Toolbox, UBI]
|
||||
kiwi:
|
||||
type: "oci"
|
||||
profile_names:
|
||||
- Container-Base
|
||||
- Container-Minimal
|
||||
- Container-Toolbox
|
||||
- Container-UBI
|
||||
RPI:
|
||||
format: raw.xz
|
||||
variants: [Base, Minimal, UBI]
|
||||
OCP:
|
||||
format: qcow2
|
||||
variants: [Base]
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-OCP-Base
|
||||
Vagrant:
|
||||
format: box
|
||||
variants: [Libvirt, Vbox, VMware]
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Vagrant-Libvirt
|
||||
- Vagrant-Vbox
|
||||
- Vagrant-VMware
|
||||
livemap:
|
||||
builder: "lorax"
|
||||
git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
|
||||
branch: 'r9'
|
||||
branch: 'r9-beta'
|
||||
ksentry:
|
||||
Workstation: rocky-live-workstation.ks
|
||||
Workstation-Lite: rocky-live-workstation-lite.ks
|
||||
XFCE: rocky-live-xfce.ks
|
||||
KDE: rocky-live-kde.ks
|
||||
MATE: rocky-live-mate.ks
|
||||
Cinnamon: rocky-live-cinnamon.ks
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
|
@ -161,21 +111,10 @@
|
|||
- 'vim-minimal'
|
||||
- 'pykickstart'
|
||||
- 'git'
|
||||
kiwimap:
|
||||
git_repo: 'https://git.resf.org/sig_core/rocky-kiwi-descriptions.git'
|
||||
branch: 'r9'
|
||||
required_pkgs:
|
||||
- dracut-kiwi-live
|
||||
- git
|
||||
- kiwi
|
||||
- kiwi-cli
|
||||
- kiwi-systemdeps-bootloaders
|
||||
- kiwi-systemdeps-containers
|
||||
- kiwi-systemdeps-core
|
||||
- kiwi-systemdeps-disk-images
|
||||
- kiwi-systemdeps-filesystems
|
||||
- kiwi-systemdeps-image-validation
|
||||
- kiwi-systemdeps-iso-media
|
||||
variantmap:
|
||||
git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git'
|
||||
branch: 'r9-beta'
|
||||
git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r9-beta/'
|
||||
repoclosure_map:
|
||||
arches:
|
||||
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
||||
|
@ -213,7 +152,7 @@
|
|||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
|
||||
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/'
|
||||
branch: 'r9-beta'
|
||||
branch: 'r9'
|
||||
gpg:
|
||||
stable: 'SOURCES/RPM-GPG-KEY-Rocky-9'
|
||||
testing: 'SOURCES/RPM-GPG-KEY-Rocky-9-Testing'
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
---
|
||||
'9':
|
||||
fullname: 'Rocky Linux 9.4'
|
||||
revision: '9.4'
|
||||
fullname: 'Rocky Linux 9.1'
|
||||
revision: '9.1'
|
||||
rclvl: 'RC1'
|
||||
major: '9'
|
||||
minor: '4'
|
||||
minor: '1'
|
||||
profile: '9'
|
||||
disttag: 'el9'
|
||||
code: "Blue Onyx"
|
||||
bugurl: 'https://bugs.rockylinux.org'
|
||||
checksum: 'sha256'
|
||||
fedora_major: '20'
|
||||
|
@ -17,7 +16,7 @@
|
|||
- ppc64le
|
||||
- s390x
|
||||
provide_multilib: True
|
||||
project_id: 'df5bcbfc-ba83-4da8-84d6-ae0168921b4d'
|
||||
project_id: '0048077b-1573-4cb7-8ba7-cce823857ba5'
|
||||
repo_symlinks:
|
||||
NFV: 'nfv'
|
||||
renames:
|
||||
|
@ -35,13 +34,6 @@
|
|||
- 'SAPHANA'
|
||||
- 'extras'
|
||||
- 'plus'
|
||||
extra_repos:
|
||||
- name: 'core-common'
|
||||
url: 'https://yumrepofs.build.resf.org/v1/projects/47e0b4a8-84ba-43a9-bb94-eb99dde4cf14/repo/core-common/$basearch'
|
||||
priority: '100'
|
||||
- name: 'core-infra'
|
||||
url: 'https://yumrepofs.build.resf.org/v1/projects/47e0b4a8-84ba-43a9-bb94-eb99dde4cf14/repo/core-infra/$basearch'
|
||||
priority: '100'
|
||||
structure:
|
||||
packages: 'os/Packages'
|
||||
repodata: 'os/repodata'
|
||||
|
@ -71,13 +63,12 @@
|
|||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
lorax:
|
||||
noupgrade: False
|
||||
squashfs_only: True
|
||||
repos:
|
||||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
variant: 'BaseOS'
|
||||
lorax_removes: []
|
||||
lorax_removes:
|
||||
- 'libreport-rhel-anaconda-bugzilla'
|
||||
required_pkgs:
|
||||
- 'lorax'
|
||||
- 'genisoimage'
|
||||
|
@ -91,59 +82,20 @@
|
|||
format: vhd
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-Azure-Base
|
||||
- Cloud-Azure-LVM
|
||||
EC2:
|
||||
format: qcow2
|
||||
format: raw
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-EC2-Base
|
||||
- Cloud-EC2-LVM
|
||||
GenericCloud:
|
||||
format: qcow2
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-GenericCloud-Base
|
||||
- Cloud-GenericCloud-LVM
|
||||
Container:
|
||||
format: tar.xz
|
||||
variants: [Base, Minimal, Toolbox, UBI]
|
||||
kiwi:
|
||||
type: "oci"
|
||||
profile_names:
|
||||
- Container-Base
|
||||
- Container-Minimal
|
||||
- Container-Toolbox
|
||||
- Container-UBI
|
||||
RPI:
|
||||
format: raw.xz
|
||||
variants: [Base, Minimal, UBI]
|
||||
OCP:
|
||||
format: qcow2
|
||||
variants: [Base]
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-OCP-Base
|
||||
Vagrant:
|
||||
format: box
|
||||
variants: [Libvirt, Vbox, VMware]
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Vagrant-Libvirt
|
||||
- Vagrant-Vbox
|
||||
- Vagrant-VMware
|
||||
livemap:
|
||||
builder: "lorax"
|
||||
git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
|
||||
branch: 'r9'
|
||||
ksentry:
|
||||
|
@ -152,7 +104,6 @@
|
|||
XFCE: rocky-live-xfce.ks
|
||||
KDE: rocky-live-kde.ks
|
||||
MATE: rocky-live-mate.ks
|
||||
Cinnamon: rocky-live-cinnamon.ks
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
|
@ -161,21 +112,10 @@
|
|||
- 'vim-minimal'
|
||||
- 'pykickstart'
|
||||
- 'git'
|
||||
kiwimap:
|
||||
git_repo: 'https://git.resf.org/sig_core/rocky-kiwi-descriptions.git'
|
||||
variantmap:
|
||||
git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git'
|
||||
branch: 'r9'
|
||||
required_pkgs:
|
||||
- dracut-kiwi-live
|
||||
- git
|
||||
- kiwi
|
||||
- kiwi-cli
|
||||
- kiwi-systemdeps-bootloaders
|
||||
- kiwi-systemdeps-containers
|
||||
- kiwi-systemdeps-core
|
||||
- kiwi-systemdeps-disk-images
|
||||
- kiwi-systemdeps-filesystems
|
||||
- kiwi-systemdeps-image-validation
|
||||
- kiwi-systemdeps-iso-media
|
||||
git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r9/'
|
||||
repoclosure_map:
|
||||
arches:
|
||||
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
minor: '0'
|
||||
profile: '9'
|
||||
disttag: 'el9'
|
||||
code: "Blue Onyx"
|
||||
bugurl: 'https://bugs.rockylinux.org'
|
||||
checksum: 'sha256'
|
||||
fedora_major: '20'
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
---
|
||||
'9-lookahead':
|
||||
fullname: 'Rocky Linux 9.5'
|
||||
revision: '9.5'
|
||||
fullname: 'Rocky Linux 9.2'
|
||||
revision: '9.2'
|
||||
rclvl: 'LH1'
|
||||
major: '9'
|
||||
minor: '5'
|
||||
minor: '2'
|
||||
profile: '9-lookahead'
|
||||
disttag: 'el9'
|
||||
code: "Blue Onyx"
|
||||
bugurl: 'https://bugs.rockylinux.org'
|
||||
checksum: 'sha256'
|
||||
fedora_major: '20'
|
||||
|
@ -35,13 +34,6 @@
|
|||
- 'SAPHANA'
|
||||
- 'extras'
|
||||
- 'plus'
|
||||
extra_repos:
|
||||
- name: 'core-common'
|
||||
url: 'https://yumrepofs.build.resf.org/v1/projects/47e0b4a8-84ba-43a9-bb94-eb99dde4cf14/repo/core-common/$basearch'
|
||||
priority: '100'
|
||||
- name: 'core-infra'
|
||||
url: 'https://yumrepofs.build.resf.org/v1/projects/47e0b4a8-84ba-43a9-bb94-eb99dde4cf14/repo/core-infra/$basearch'
|
||||
priority: '100'
|
||||
structure:
|
||||
packages: 'os/Packages'
|
||||
repodata: 'os/repodata'
|
||||
|
@ -62,7 +54,6 @@
|
|||
- 'minimal'
|
||||
- 'BaseOS'
|
||||
variant: 'minimal'
|
||||
volname: 'dvd'
|
||||
BaseOS:
|
||||
disc: False
|
||||
isoskip: True
|
||||
|
@ -71,13 +62,12 @@
|
|||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
lorax:
|
||||
noupgrade: False
|
||||
squashfs_only: True
|
||||
repos:
|
||||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
variant: 'BaseOS'
|
||||
lorax_removes: []
|
||||
lorax_removes:
|
||||
- 'libreport-rhel-anaconda-bugzilla'
|
||||
required_pkgs:
|
||||
- 'lorax'
|
||||
- 'genisoimage'
|
||||
|
@ -91,68 +81,28 @@
|
|||
format: vhd
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-Azure-Base
|
||||
- Cloud-Azure-LVM
|
||||
EC2:
|
||||
format: qcow2
|
||||
format: raw
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-EC2-Base
|
||||
- Cloud-EC2-LVM
|
||||
GenericCloud:
|
||||
format: qcow2
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-GenericCloud-Base
|
||||
- Cloud-GenericCloud-LVM
|
||||
Container:
|
||||
format: tar.xz
|
||||
variants: [Base, Minimal, Toolbox, UBI]
|
||||
kiwi:
|
||||
type: "oci"
|
||||
profile_names:
|
||||
- Container-Base
|
||||
- Container-Minimal
|
||||
- Container-Toolbox
|
||||
- Container-UBI
|
||||
RPI:
|
||||
format: raw.xz
|
||||
variants: [Base, Minimal, UBI]
|
||||
OCP:
|
||||
format: qcow2
|
||||
variants: [Base]
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Cloud-OCP-Base
|
||||
Vagrant:
|
||||
format: box
|
||||
variants: [Libvirt, Vbox, VMware]
|
||||
kiwi:
|
||||
type: "oem"
|
||||
profile_names:
|
||||
- Vagrant-Libvirt
|
||||
- Vagrant-Vbox
|
||||
- Vagrant-VMware
|
||||
livemap:
|
||||
builder: "lorax"
|
||||
git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
|
||||
branch: 'r9'
|
||||
branch: 'r9lh'
|
||||
ksentry:
|
||||
Workstation: rocky-live-workstation.ks
|
||||
Workstation-Lite: rocky-live-workstation-lite.ks
|
||||
XFCE: rocky-live-xfce.ks
|
||||
KDE: rocky-live-kde.ks
|
||||
MATE: rocky-live-mate.ks
|
||||
Cinnamon: rocky-live-cinnamon.ks
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
|
@ -161,21 +111,10 @@
|
|||
- 'vim-minimal'
|
||||
- 'pykickstart'
|
||||
- 'git'
|
||||
kiwimap:
|
||||
git_repo: 'https://git.resf.org/sig_core/rocky-kiwi-descriptions.git'
|
||||
branch: 'r9'
|
||||
required_pkgs:
|
||||
- dracut-kiwi-live
|
||||
- git
|
||||
- kiwi
|
||||
- kiwi-cli
|
||||
- kiwi-systemdeps-bootloaders
|
||||
- kiwi-systemdeps-containers
|
||||
- kiwi-systemdeps-core
|
||||
- kiwi-systemdeps-disk-images
|
||||
- kiwi-systemdeps-filesystems
|
||||
- kiwi-systemdeps-image-validation
|
||||
- kiwi-systemdeps-iso-media
|
||||
variantmap:
|
||||
git_repo: 'https://git.rockylinux.org/rocky/pungi-rocky.git'
|
||||
branch: 'r9lh'
|
||||
git_raw_path: 'https://git.rockylinux.org/rocky/pungi-rocky/-/raw/r9lh/'
|
||||
repoclosure_map:
|
||||
arches:
|
||||
x86_64: '--forcearch=x86_64 --arch=x86_64 --arch=athlon --arch=i686 --arch=i586 --arch=i486 --arch=i386 --arch=noarch'
|
||||
|
@ -213,7 +152,7 @@
|
|||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release.git'
|
||||
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release/-/raw/r9/'
|
||||
branch: 'r9s'
|
||||
branch: 'r9lh'
|
||||
gpg:
|
||||
stable: 'SOURCES/RPM-GPG-KEY-Rocky-9'
|
||||
testing: 'SOURCES/RPM-GPG-KEY-Rocky-9-Testing'
|
||||
|
|
|
@ -2,15 +2,12 @@
|
|||
'rln':
|
||||
fullname: 'Rocky Linux New'
|
||||
revision: '10'
|
||||
rclvl: 'RLN134'
|
||||
rclvl: 'RLN120'
|
||||
major: '10'
|
||||
minor: '0'
|
||||
profile: 'rln'
|
||||
disttag: 'rln134'
|
||||
code: "Silver Magma"
|
||||
bugurl: 'https://bugs.rockylinux.org'
|
||||
checksum: 'sha256'
|
||||
fedora_major: '20'
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
|
@ -53,9 +50,7 @@
|
|||
isoskip: True
|
||||
repos:
|
||||
- 'minimal'
|
||||
- 'BaseOS'
|
||||
variant: 'minimal'
|
||||
volname: 'dvd'
|
||||
BaseOS:
|
||||
disc: False
|
||||
isoskip: True
|
||||
|
@ -64,7 +59,6 @@
|
|||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
lorax:
|
||||
noupgrade: False
|
||||
repos:
|
||||
- 'BaseOS'
|
||||
- 'AppStream'
|
||||
|
@ -85,7 +79,7 @@
|
|||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
EC2:
|
||||
format: qcow2
|
||||
format: raw
|
||||
variants: [Base, LVM]
|
||||
primary_variant: 'Base'
|
||||
GenericCloud:
|
||||
|
@ -95,14 +89,8 @@
|
|||
Container:
|
||||
format: tar.xz
|
||||
variants: [Base, Minimal, UBI]
|
||||
RPI:
|
||||
format: raw.xz
|
||||
OCP:
|
||||
format: qcow2
|
||||
variants: [Base]
|
||||
Vagrant:
|
||||
format: box
|
||||
variants: [Libvirt, Vbox, VMware]
|
||||
livemap:
|
||||
git_repo: 'https://git.resf.org/sig_core/kickstarts.git'
|
||||
branch: 'rln'
|
||||
|
@ -111,8 +99,6 @@
|
|||
Workstation-Lite: rocky-live-workstation-lite.ks
|
||||
XFCE: rocky-live-xfce.ks
|
||||
KDE: rocky-live-kde.ks
|
||||
MATE: rocky-live-mate.ks
|
||||
Cinnamon: rocky-live-cinnamon.ks
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
|
|
|
@ -31,7 +31,6 @@ parser.add_argument('--type', type=str, help="Image type (container, genclo, azu
|
|||
parser.add_argument('--variant', type=str, help="", required=False)
|
||||
parser.add_argument('--release', type=str, help="Image release for subsequent builds with the same date stamp (rarely needed)", required=False)
|
||||
parser.add_argument('--kube', action='store_true', help="output as a K8s job(s)", required=False)
|
||||
parser.add_argument('--timeout', type=str, help="change timeout for imagefactory build process (default 3600)", required=False, default='3600')
|
||||
|
||||
|
||||
results = parser.parse_args()
|
||||
|
@ -81,7 +80,6 @@ class ImageBuild:
|
|||
target_uuid: Optional[str] = field(default="")
|
||||
tdl_path: pathlib.Path = field(init=False)
|
||||
template: Template = field()
|
||||
timeout: str = field(default='3600')
|
||||
type_variant: str = field(init=False)
|
||||
variant: Optional[str] = field()
|
||||
|
||||
|
@ -96,13 +94,46 @@ class ImageBuild:
|
|||
self.package_args = self._package_args()
|
||||
self.common_args = self._common_args()
|
||||
|
||||
self.metadata = pathlib.Path(self.outdir, ".imagefactory-metadata.json")
|
||||
self.metadata = pathlib.Path(self.outdir, "metadata.json")
|
||||
|
||||
self.kickstart_path = pathlib.Path(f"{KICKSTART_PATH}/Rocky-{self.architecture.major}-{self.type_variant}.ks")
|
||||
|
||||
self.checkout_kickstarts()
|
||||
self.kickstart_arg = self.kickstart_imagefactory_args()
|
||||
|
||||
# Yes, this is gross. I'll fix it later.
|
||||
if self.image_type in ["Container"]:
|
||||
self.stage_commands = [
|
||||
["tar", "-C", f"{self.outdir}", "--strip-components=1", "-x", "-f", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", "*/layer.tar"],
|
||||
["xz", f"{self.outdir}/layer.tar"]
|
||||
]
|
||||
if self.image_type in ["GenericCloud", "OCP"]:
|
||||
self.stage_commands = [
|
||||
["qemu-img", "convert", "-c", "-f", "raw", "-O", "qcow2", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.qcow2"]
|
||||
]
|
||||
if self.image_type in ["EC2"]:
|
||||
self.stage_commands = [
|
||||
["qemu-img", "convert", "-f", "raw", "-O", "qcow2", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.qcow2"]
|
||||
]
|
||||
if self.image_type in ["Azure"]:
|
||||
self.stage_commands = [
|
||||
["/prep-azure.sh", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{STORAGE_DIR}"],
|
||||
["cp", lambda: f"{STORAGE_DIR}/{self.target_uuid}.vhd", f"{self.outdir}/{self.outname}.vhd"]
|
||||
]
|
||||
if self.image_type in ["Vagrant"]:
|
||||
_map = {
|
||||
"Vbox": "vmdk",
|
||||
"Libvirt": "qcow2"
|
||||
}
|
||||
output = f"{_map[self.variant]}" #type: ignore
|
||||
self.stage_commands = [
|
||||
["qemu-img", "convert", "-c", "-f", "raw", "-O", output, lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.{output}"]
|
||||
]
|
||||
|
||||
|
||||
if self.stage_commands:
|
||||
self.stage_commands.append(["cp", "-v", lambda: f"{STORAGE_DIR}/{self.target_uuid}.meta", f"{self.outdir}/build.meta"])
|
||||
|
||||
try:
|
||||
os.mkdir(self.outdir)
|
||||
except FileExistsError as e:
|
||||
|
@ -122,82 +153,6 @@ class ImageBuild:
|
|||
finally:
|
||||
f.flush()
|
||||
|
||||
# Yes, this is gross. I'll fix it later.
|
||||
if self.image_type in ["Container"]:
|
||||
self.stage_commands = [
|
||||
["tar", "-C", f"{self.outdir}", "--strip-components=1", "-x", "-f", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", "*/layer.tar"],
|
||||
["xz", f"{self.outdir}/layer.tar"]
|
||||
]
|
||||
if self.image_type in ["RPI"]:
|
||||
self.stage_commands = [
|
||||
["cp", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.raw"],
|
||||
["xz", f"{self.outdir}/{self.outname}.raw"]
|
||||
]
|
||||
if self.image_type in ["GenericCloud", "OCP", "GenericArm"]:
|
||||
self.stage_commands = [
|
||||
["qemu-img", "convert", "-c", "-f", "raw", "-O", "qcow2", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.qcow2"]
|
||||
]
|
||||
if self.image_type in ["EC2"]:
|
||||
self.stage_commands = [
|
||||
["qemu-img", "convert", "-f", "raw", "-O", "qcow2", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.qcow2"]
|
||||
]
|
||||
if self.image_type in ["Azure"]:
|
||||
self.stage_commands = [
|
||||
["/prep-azure.sh", lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{STORAGE_DIR}"],
|
||||
["cp", lambda: f"{STORAGE_DIR}/{self.target_uuid}.vhd", f"{self.outdir}/{self.outname}.vhd"]
|
||||
]
|
||||
if self.image_type in ["Vagrant"]:
|
||||
_map = {
|
||||
"Vbox": {"format": "vmdk", "provider": "virtualbox"},
|
||||
"Libvirt": {"format": "qcow2", "provider": "libvirt", "virtual_size": 10},
|
||||
"VMware": {"format": "vmdk", "provider": "vmware_desktop"}
|
||||
}
|
||||
output = f"{_map[self.variant]['format']}" #type: ignore
|
||||
provider = f"{_map[self.variant]['provider']}" # type: ignore
|
||||
|
||||
# pop from the options map that will be passed to the vagrant metadata.json
|
||||
convert_options = _map[self.variant].pop('convertOptions') if 'convertOptions' in _map[self.variant].keys() else '' #type: ignore
|
||||
|
||||
|
||||
self.stage_commands = [
|
||||
["qemu-img", "convert", "-c", "-f", "raw", "-O", output, *convert_options, lambda: f"{STORAGE_DIR}/{self.target_uuid}.body", f"{self.outdir}/{self.outname}.{output}"],
|
||||
["tar", "-C", self.outdir, "-czf", f"/tmp/{self.outname}.box", '.'],
|
||||
["mv", f"/tmp/{self.outname}.box", self.outdir]
|
||||
]
|
||||
self.prepare_vagrant(_map[self.variant])
|
||||
|
||||
if self.stage_commands:
|
||||
self.stage_commands.append(["cp", "-v", lambda: f"{STORAGE_DIR}/{self.target_uuid}.meta", f"{self.outdir}/build.meta"])
|
||||
|
||||
|
||||
def prepare_vagrant(self, options):
|
||||
"""Setup the output directory for the Vagrant type variant, dropping templates as required"""
|
||||
file_loader = FileSystemLoader(f"{_rootdir}/templates")
|
||||
tmplenv = Environment(loader=file_loader)
|
||||
|
||||
templates = {}
|
||||
templates['Vagrantfile'] = tmplenv.get_template(f"vagrant/Vagrantfile.{self.variant}")
|
||||
templates['metadata.json'] = tmplenv.get_template('vagrant/metadata.tmpl.json')
|
||||
templates['info.json'] = tmplenv.get_template('vagrant/info.tmpl.json')
|
||||
|
||||
if self.variant == "VMware":
|
||||
templates[f"{self.outname}.vmx"] = tmplenv.get_template('vagrant/vmx.tmpl')
|
||||
|
||||
if self.variant == "Vbox":
|
||||
templates['box.ovf'] = tmplenv.get_template('vagrant/box.tmpl.ovf')
|
||||
|
||||
if self.variant == "Libvirt":
|
||||
# Libvirt vagrant driver expects the qcow2 file to be called box.img.
|
||||
qemu_command_index = [i for i, d in enumerate(self.stage_commands) if d[0] == "qemu-img"][0]
|
||||
self.stage_commands.insert(qemu_command_index+1, ["mv", f"{self.outdir}/{self.outname}.qcow2", f"{self.outdir}/box.img"])
|
||||
|
||||
for name, template in templates.items():
|
||||
self.render_template(f"{self.outdir}/{name}", template,
|
||||
name=self.outname,
|
||||
arch=self.architecture.name,
|
||||
options=options
|
||||
)
|
||||
|
||||
def checkout_kickstarts(self) -> int:
|
||||
cmd = ["git", "clone", "--branch", f"r{self.architecture.major}", rlvars['livemap']['git_repo'], f"{KICKSTART_PATH}"]
|
||||
ret, out, err, _ = self.runCmd(cmd, search=False)
|
||||
|
@ -231,20 +186,20 @@ class ImageBuild:
|
|||
|
||||
def _command_args(self):
|
||||
args_mapping = {
|
||||
"debug": "--debug",
|
||||
"debug": "--debug"
|
||||
}
|
||||
return [param for name, param in args_mapping.items() if getattr(self.cli_args, name)]
|
||||
|
||||
def _package_args(self) -> List[str]:
|
||||
if self.image_type in ["Container"]:
|
||||
if self.image_type == "Container":
|
||||
return ["--parameter", "compress", "xz"]
|
||||
return [""]
|
||||
|
||||
def _common_args(self) -> List[str]:
|
||||
args = []
|
||||
if self.image_type in ["Container"]:
|
||||
if self.image_type == "Container":
|
||||
args = ["--parameter", "offline_icicle", "true"]
|
||||
if self.image_type in ["GenericCloud", "EC2", "Vagrant", "Azure", "OCP", "RPI", "GenericArm"]:
|
||||
if self.image_type in ["GenericCloud", "EC2", "Vagrant", "Azure", "OCP"]:
|
||||
args = ["--parameter", "generate_icicle", "false"]
|
||||
return args
|
||||
|
||||
|
@ -257,27 +212,19 @@ class ImageBuild:
|
|||
def kickstart_imagefactory_args(self) -> List[str]:
|
||||
|
||||
if not self.kickstart_path.is_file():
|
||||
log.warning(f"Kickstart file is not available: {self.kickstart_path}")
|
||||
log.warn(f"Kickstart file is not available: {self.kickstart_path}")
|
||||
if not debug:
|
||||
log.warning("Exiting because debug mode is not enabled.")
|
||||
log.warn("Exiting because debug mode is not enabled.")
|
||||
exit(2)
|
||||
|
||||
return ["--file-parameter", "install_script", str(self.kickstart_path)]
|
||||
|
||||
def render_template(self, path, template, **kwargs) -> pathlib.Path:
|
||||
with open(path, "wb") as f:
|
||||
_template = template.render(**kwargs)
|
||||
f.write(_template.encode())
|
||||
f.flush()
|
||||
output = pathlib.Path(path)
|
||||
if not output.exists():
|
||||
log.error("Failed to write template")
|
||||
raise Exception("Failed to template")
|
||||
return output
|
||||
|
||||
def render_icicle_template(self) -> pathlib.Path:
|
||||
output = tempfile.NamedTemporaryFile(delete=False).name
|
||||
return self.render_template(output, self.template,
|
||||
handle, output = tempfile.mkstemp()
|
||||
if not handle:
|
||||
exit(3)
|
||||
with os.fdopen(handle, "wb") as tmp:
|
||||
_template = self.template.render(
|
||||
architecture=self.architecture.name,
|
||||
iso8601date=BUILDTIME.strftime("%Y%m%d"),
|
||||
installdir="kickstart" if self.cli_args.kickstartdir else "os",
|
||||
|
@ -289,15 +236,27 @@ class ImageBuild:
|
|||
utcnow=BUILDTIME,
|
||||
version_variant=self.architecture.version if not self.variant else f"{self.architecture.version}-{self.variant}",
|
||||
)
|
||||
tmp.write(_template.encode())
|
||||
tmp.flush()
|
||||
output = pathlib.Path(output)
|
||||
if not output.exists():
|
||||
log.error("Failed to write TDL template")
|
||||
raise Exception("Failed to write TDL template")
|
||||
return output
|
||||
|
||||
def build_command(self) -> List[str]:
|
||||
build_command = ["imagefactory", "--timeout", self.timeout, *self.command_args, "base_image", *self.common_args, *self.kickstart_arg, self.tdl_path]
|
||||
build_command = ["imagefactory", *self.command_args, "base_image", *self.common_args, *self.kickstart_arg, self.tdl_path
|
||||
# "|", "tee", "-a", f"{outdir}/logs/base_image-{outname}.out",
|
||||
# "|", "tail", "-n4", ">", f"{outdir}/base.meta", "||", "exit", "2"
|
||||
]
|
||||
return build_command
|
||||
def package_command(self) -> List[str]:
|
||||
package_command = ["imagefactory", *self.command_args, "target_image", self.out_type, *self.common_args,
|
||||
"--id", f"{self.base_uuid}",
|
||||
*self.package_args,
|
||||
"--parameter", "repository", self.outname,
|
||||
# "|", "tee", "-a", f"{outdir}/base_image-{outname}.out",
|
||||
# "|", "tail", "-n4", ">", f"{outdir}/target.meta", "||", "exit", "3"
|
||||
]
|
||||
return package_command
|
||||
|
||||
|
@ -324,7 +283,7 @@ class ImageBuild:
|
|||
def package(self) -> int:
|
||||
# Some build types don't need to be packaged by imagefactory
|
||||
# @TODO remove business logic if possible
|
||||
if self.image_type in ["GenericCloud", "EC2", "Azure", "Vagrant", "OCP", "RPI", "GenericArm"]:
|
||||
if self.image_type in ["GenericCloud", "EC2", "Azure", "Vagrant", "OCP"]:
|
||||
self.target_uuid = self.base_uuid if hasattr(self, 'base_uuid') else ""
|
||||
|
||||
if self.target_uuid:
|
||||
|
@ -440,7 +399,7 @@ class ImageBuild:
|
|||
return template
|
||||
|
||||
def save(self):
|
||||
with open(self.metadata, "w") as f:
|
||||
with open(pathlib.Path(self.outdir, "metadata.json"), "w") as f:
|
||||
try:
|
||||
o = { name: getattr(self, name) for name in ["base_uuid", "target_uuid"] }
|
||||
log.debug(o)
|
||||
|
|
|
@ -11,15 +11,12 @@ parser = argparse.ArgumentParser(description="Live ISO Compose")
|
|||
parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True)
|
||||
parser.add_argument('--isolation', type=str, help="Mock Isolation")
|
||||
parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here")
|
||||
parser.add_argument('--peridot', action='store_true', help="Use peridot repos")
|
||||
parser.add_argument('--image', type=str, help="Granular choice in which live image is built")
|
||||
parser.add_argument('--logger', type=str)
|
||||
parser.add_argument('--live-iso-mode', type=str, default='local')
|
||||
parser.add_argument('--hashed', action='store_true')
|
||||
parser.add_argument('--just-copy-it', action='store_true', help="Just copy the images to the compose dir")
|
||||
parser.add_argument('--force-build', action='store_true', help="Just build and overwrite the images")
|
||||
parser.add_argument('--builder', type=str, help="Choose a builder type and override the set value in the configs")
|
||||
parser.add_argument('--increment', type=str, help="Changes the default increment of 0 to a number of your choice")
|
||||
results = parser.parse_args()
|
||||
rlvars = rldict[results.release]
|
||||
major = rlvars['major']
|
||||
|
@ -32,12 +29,9 @@ a = LiveBuild(
|
|||
live_iso_mode=results.live_iso_mode,
|
||||
image=results.image,
|
||||
compose_dir_is_here=results.local_compose,
|
||||
peridot=results.peridot,
|
||||
hashed=results.hashed,
|
||||
justcopyit=results.just_copy_it,
|
||||
force_build=results.force_build,
|
||||
builder=results.builder,
|
||||
image_increment=results.increment,
|
||||
logger=results.logger
|
||||
)
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ parser = argparse.ArgumentParser(description="Peridot Sync and Compose")
|
|||
# All of our options
|
||||
parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True)
|
||||
parser.add_argument('--arch', type=str, help="Architecture")
|
||||
parser.add_argument('--fpsync', type=str, help="Use fpsync instead of rsync")
|
||||
parser.add_argument('--logger', type=str)
|
||||
|
||||
# Parse them
|
||||
|
@ -29,7 +28,6 @@ a = RepoSync(
|
|||
config,
|
||||
major=major,
|
||||
arch=results.arch,
|
||||
fpsync=results.fpsync,
|
||||
logger=results.logger,
|
||||
)
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
# This script can be called to do single syncs or full on syncs.
|
||||
|
||||
import os
|
||||
import argparse
|
||||
import logging
|
||||
import sys
|
||||
|
@ -17,7 +16,6 @@ parser = argparse.ArgumentParser(description="Peridot Sync and Compose")
|
|||
parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True)
|
||||
parser.add_argument('--sig', type=str, help="SIG Name if applicable")
|
||||
parser.add_argument('--symlink', action='store_true', help="symlink to latest")
|
||||
parser.add_argument('--copy-old-compose', action='store_true', help="Runs an rsync from previous compose")
|
||||
parser.add_argument('--logger', type=str)
|
||||
|
||||
# Parse them
|
||||
|
@ -61,21 +59,16 @@ def run():
|
|||
date_stamp,
|
||||
logger
|
||||
)
|
||||
compose_latest_dir = os.path.join(
|
||||
config['compose_root'],
|
||||
major,
|
||||
"latest-{}-{}".format(
|
||||
shortname,
|
||||
profile,
|
||||
)
|
||||
)
|
||||
if results.copy_old_compose:
|
||||
if os.path.exists(compose_latest_dir):
|
||||
previous_compose_path = os.path.realpath(compose_latest_dir)
|
||||
else:
|
||||
log.warning('No symlink exists; we cannot copy from the old compose')
|
||||
|
||||
if results.symlink:
|
||||
compose_latest_dir = os.path.join(
|
||||
config['compose_root'],
|
||||
major,
|
||||
"latest-{}-{}".format(
|
||||
shortname,
|
||||
profile,
|
||||
)
|
||||
)
|
||||
if os.path.exists(compose_latest_dir):
|
||||
os.remove(compose_latest_dir)
|
||||
|
||||
|
|
|
@ -16,7 +16,6 @@ parser.add_argument('--rc', action='store_true', help="Release Candidate, Beta,
|
|||
results = parser.parse_args()
|
||||
rlvars = rldict[results.release]
|
||||
major = rlvars['major']
|
||||
minor = rlvars['minor']
|
||||
|
||||
EXTARCH=["s390x", "ppc64le"]
|
||||
EKSARCH=["amd64", "arm64"]
|
||||
|
@ -32,18 +31,16 @@ def run():
|
|||
elif results.env == "all":
|
||||
arches = EKSARCH+EXTARCH
|
||||
|
||||
command = ["build-iso", "--release", f"{results.release}", "--isolation", "simple"]
|
||||
command = ["build-iso", "--release", f"{results.release}", "--isolation", "simple", "--hashed"]
|
||||
if results.rc:
|
||||
command += ["--rc"]
|
||||
else:
|
||||
command += ["--hashed"]
|
||||
|
||||
buildstamp = datetime.datetime.utcnow()
|
||||
|
||||
out = ""
|
||||
for architecture in arches:
|
||||
copy_command = (f"aws s3 cp --recursive --exclude=* --include=lorax* "
|
||||
f"/var/lib/mock/rocky-{ major }.{ minor }-$(uname -m)/root/builddir/ "
|
||||
f"/var/lib/mock/rocky-{ major }-$(uname -m)/root/builddir/ "
|
||||
f"s3://resf-empanadas/buildiso-{ major }-{ architecture }/{ buildstamp.strftime('%s') }/"
|
||||
)
|
||||
out += job_template.render(
|
||||
|
@ -55,7 +52,6 @@ def run():
|
|||
jobname="buildiso",
|
||||
namespace="empanadas",
|
||||
major=major,
|
||||
minor=minor,
|
||||
restartPolicy="Never",
|
||||
)
|
||||
|
||||
|
|
|
@ -13,9 +13,6 @@ parser.add_argument('--s3', action='store_true', help="S3")
|
|||
parser.add_argument('--arch', type=str, help="Architecture")
|
||||
parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here")
|
||||
parser.add_argument('--force-download', action='store_true', help="Force a download")
|
||||
parser.add_argument('--s3-region', type=str, help="S3 region (overrides defaults)")
|
||||
parser.add_argument('--s3-bucket', type=str, help="S3 bucket name (overrides defaults)")
|
||||
parser.add_argument('--s3-bucket-url', type=str, help="S3 bucket url (overrides defaults)")
|
||||
parser.add_argument('--logger', type=str)
|
||||
results = parser.parse_args()
|
||||
rlvars = rldict[results.release]
|
||||
|
@ -29,9 +26,6 @@ a = IsoBuild(
|
|||
arch=results.arch,
|
||||
force_download=results.force_download,
|
||||
compose_dir_is_here=results.local_compose,
|
||||
s3_region=results.s3_region,
|
||||
s3_bucket=results.s3_bucket,
|
||||
s3_bucket_url=results.s3_bucket_url,
|
||||
logger=results.logger,
|
||||
)
|
||||
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
# builds ISO's
|
||||
|
||||
import argparse
|
||||
|
||||
from empanadas.common import *
|
||||
from empanadas.util import Checks
|
||||
from empanadas.util import IsoBuild
|
||||
|
||||
parser = argparse.ArgumentParser(description="ISO Artifact Builder")
|
||||
|
||||
parser.add_argument('--release', type=str, help="Major Release Version", required=True)
|
||||
parser.add_argument('--s3', action='store_true', help="S3")
|
||||
parser.add_argument('--arch', type=str, help="Architecture")
|
||||
parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here")
|
||||
parser.add_argument('--force-download', action='store_true', help="Force a download")
|
||||
parser.add_argument('--s3-region', type=str, help="S3 region (overrides defaults)")
|
||||
parser.add_argument('--s3-bucket', type=str, help="S3 bucket name (overrides defaults)")
|
||||
parser.add_argument('--s3-bucket-url', type=str, help="S3 bucket url (overrides defaults)")
|
||||
parser.add_argument('--logger', type=str)
|
||||
results = parser.parse_args()
|
||||
rlvars = rldict[results.release]
|
||||
major = rlvars['major']
|
||||
|
||||
a = IsoBuild(
|
||||
rlvars,
|
||||
config,
|
||||
major=major,
|
||||
s3=results.s3,
|
||||
arch=results.arch,
|
||||
force_download=results.force_download,
|
||||
compose_dir_is_here=results.local_compose,
|
||||
s3_region=result.s3_region,
|
||||
s3_bucket=result.s3_bucket,
|
||||
s3_bucket_url=result.s3_bucket_url,
|
||||
logger=results.logger,
|
||||
)
|
||||
|
||||
def run():
|
||||
a.run_pull_iso_images()
|
|
@ -15,9 +15,6 @@ parser.add_argument('--arch', type=str, help="Architecture")
|
|||
parser.add_argument('--local-compose', action='store_true', help="Compose Directory is Here")
|
||||
parser.add_argument('--force-unpack', action='store_true', help="Force an unpack")
|
||||
parser.add_argument('--force-download', action='store_true', help="Force a download")
|
||||
parser.add_argument('--s3-region', type=str, help="S3 region (overrides defaults)")
|
||||
parser.add_argument('--s3-bucket', type=str, help="S3 bucket name (overrides defaults)")
|
||||
parser.add_argument('--s3-bucket-url', type=str, help="S3 bucket url (overrides defaults)")
|
||||
parser.add_argument('--logger', type=str)
|
||||
results = parser.parse_args()
|
||||
rlvars = rldict[results.release]
|
||||
|
@ -33,9 +30,6 @@ a = IsoBuild(
|
|||
force_unpack=results.force_unpack,
|
||||
force_download=results.force_download,
|
||||
compose_dir_is_here=results.local_compose,
|
||||
s3_region=results.s3_region,
|
||||
s3_bucket=results.s3_bucket,
|
||||
s3_bucket_url=results.s3_bucket_url,
|
||||
logger=results.logger,
|
||||
)
|
||||
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
# This script can be called to do single syncs or full on syncs.
|
||||
|
||||
import argparse
|
||||
|
||||
from empanadas.common import *
|
||||
from empanadas.util import Checks
|
||||
from empanadas.util import RepoSync
|
||||
|
||||
# Start up the parser baby
|
||||
parser = argparse.ArgumentParser(description="Peridot Sync and Compose")
|
||||
|
||||
# All of our options
|
||||
parser.add_argument('--release', type=str, help="Major Release Version or major-type (eg 9-beta)", required=True)
|
||||
parser.add_argument('--logger', type=str)
|
||||
|
||||
# Parse them
|
||||
results = parser.parse_args()
|
||||
rlvars = rldict[results.release]
|
||||
major = rlvars['major']
|
||||
|
||||
r = Checks(rlvars, config['arch'])
|
||||
r.check_validity()
|
||||
|
||||
# Send them and do whatever I guess
|
||||
a = RepoSync(
|
||||
rlvars,
|
||||
config,
|
||||
major=major,
|
||||
logger=results.logger,
|
||||
)
|
||||
|
||||
def run():
|
||||
a.refresh_compose_treeinfo()
|
|
@ -29,7 +29,6 @@ parser.add_argument('--refresh-extra-files', action='store_true')
|
|||
# I am aware this is confusing, I want podman to be the default option
|
||||
parser.add_argument('--simple', action='store_false')
|
||||
parser.add_argument('--logger', type=str)
|
||||
parser.add_argument('--log-level', type=str, default='INFO')
|
||||
parser.add_argument('--disable-gpg-check', action='store_false')
|
||||
parser.add_argument('--disable-repo-gpg-check', action='store_false')
|
||||
parser.add_argument('--clean-old-packages', action='store_true')
|
||||
|
@ -61,7 +60,6 @@ a = SigRepoSync(
|
|||
nofail=results.no_fail,
|
||||
refresh_extra_files=results.refresh_extra_files,
|
||||
logger=results.logger,
|
||||
log_level=results.log_level,
|
||||
gpg_check=results.disable_gpg_check,
|
||||
repo_gpg_check=results.disable_repo_gpg_check,
|
||||
reposync_clean_old=results.clean_old_packages,
|
||||
|
|
|
@ -10,9 +10,6 @@ altarch:
|
|||
altarch-rockyrpi:
|
||||
allowed_arches:
|
||||
- aarch64
|
||||
altarch-devel:
|
||||
allowed_arches:
|
||||
- aarch64
|
||||
additional_dirs:
|
||||
- 'images'
|
||||
extra_files:
|
||||
|
@ -33,9 +30,6 @@ altarch:
|
|||
altarch-rockyrpi:
|
||||
allowed_arches:
|
||||
- aarch64
|
||||
altarch-devel:
|
||||
allowed_arches:
|
||||
- aarch64
|
||||
additional_dirs:
|
||||
- 'images'
|
||||
extra_files:
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
core:
|
||||
'8':
|
||||
profile: 'core'
|
||||
project_id: '91e0dd2f-448e-4b75-9066-3946aceb60db'
|
||||
project_id: ''
|
||||
addtional_dirs: []
|
||||
repo:
|
||||
core-common:
|
||||
|
@ -23,7 +23,7 @@ core:
|
|||
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Core'
|
||||
'9':
|
||||
profile: 'core'
|
||||
project_id: '47e0b4a8-84ba-43a9-bb94-eb99dde4cf14'
|
||||
project_id: ''
|
||||
addtional_dirs: []
|
||||
repo:
|
||||
core-common:
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
fasttrack:
|
||||
'8':
|
||||
profile: 'fasttrack'
|
||||
project_id: ''
|
||||
addtional_dirs: []
|
||||
repo:
|
||||
fasttrack-common:
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-fasttrack.git'
|
||||
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-fasttrack/-/raw/r8/'
|
||||
branch: 'r8'
|
||||
gpg:
|
||||
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-FastTrack'
|
||||
list:
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-FastTrack'
|
||||
'9':
|
||||
profile: 'fasttrack'
|
||||
project_id: ''
|
||||
addtional_dirs: []
|
||||
repo:
|
||||
fasttrack-common:
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
- ppc64le
|
||||
- s390x
|
||||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-fasttrack.git'
|
||||
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-fasttrack/-/raw/r9/'
|
||||
branch: 'r9'
|
||||
gpg:
|
||||
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-FastTrack'
|
||||
list:
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-FastTrack'
|
||||
...
|
|
@ -1,49 +0,0 @@
|
|||
---
|
||||
hpc:
|
||||
'8':
|
||||
profile: 'hpc'
|
||||
project_id: '78a2db02-ebe5-4654-9a04-6482eb9c8b84'
|
||||
addtional_dirs: []
|
||||
repo:
|
||||
hpc-common:
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
hpc-core:
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-hpc.git'
|
||||
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-hpc/-/raw/r8/'
|
||||
branch: 'r8'
|
||||
gpg:
|
||||
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-HPC'
|
||||
list:
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-HPC'
|
||||
'9':
|
||||
profile: 'hpc'
|
||||
project_id: 'aee28795-e163-4a99-935d-f0a78cf33e75'
|
||||
addtional_dirs: []
|
||||
repo:
|
||||
hpc-common:
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
- ppc64le
|
||||
- s390x
|
||||
hpc-core:
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
- ppc64le
|
||||
- s390x
|
||||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-hpc.git'
|
||||
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-hpc/-/raw/r9/'
|
||||
branch: 'r9'
|
||||
gpg:
|
||||
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-HPC'
|
||||
list:
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-HPC'
|
||||
...
|
|
@ -1,59 +0,0 @@
|
|||
---
|
||||
kernel:
|
||||
'8':
|
||||
profile: 'kernel'
|
||||
project_id: '13172560-6e5d-4e65-ae71-750f99096856'
|
||||
addtional_dirs: []
|
||||
repo:
|
||||
kernel-lts:
|
||||
allowed_arches:
|
||||
- aarch64
|
||||
- x86_64
|
||||
kernel-drivers:
|
||||
allowed_arches:
|
||||
- aarch64
|
||||
- x86_64
|
||||
kernel-mainline:
|
||||
allowed_arches:
|
||||
- aarch64
|
||||
- x86_64
|
||||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-kernel.git'
|
||||
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-kernel/-/raw/r8/'
|
||||
branch: 'r8'
|
||||
gpg:
|
||||
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Kernel'
|
||||
list:
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Kernel'
|
||||
'9':
|
||||
profile: 'kernel'
|
||||
project_id: '708f99fe-7e89-4241-959a-4ff259786b4a'
|
||||
addtional_dirs: []
|
||||
repo:
|
||||
kernel-lts:
|
||||
allowed_arches:
|
||||
- aarch64
|
||||
- x86_64
|
||||
- ppc64le
|
||||
- s390x
|
||||
kernel-drivers:
|
||||
allowed_arches:
|
||||
- aarch64
|
||||
- x86_64
|
||||
- ppc64le
|
||||
- s390x
|
||||
kernel-mainline:
|
||||
allowed_arches:
|
||||
- aarch64
|
||||
- x86_64
|
||||
- ppc64le
|
||||
- s390x
|
||||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-kernel.git'
|
||||
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-kernel/-/raw/r9/'
|
||||
branch: 'r9'
|
||||
gpg:
|
||||
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Kernel'
|
||||
list:
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Kernel'
|
||||
...
|
|
@ -1,39 +0,0 @@
|
|||
---
|
||||
security:
|
||||
'8':
|
||||
profile: 'security'
|
||||
project_id: '41baa8a8-7dbe-46fe-9f0b-4e2420372bbc'
|
||||
addtional_dirs: []
|
||||
repo:
|
||||
security-common:
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-security.git'
|
||||
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-security/-/raw/r8/'
|
||||
branch: 'r8'
|
||||
gpg:
|
||||
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Security'
|
||||
list:
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Security'
|
||||
'9':
|
||||
profile: 'security'
|
||||
project_id: '041a90b2-51f5-44a4-8be8-b2905c1ad95b'
|
||||
addtional_dirs: []
|
||||
repo:
|
||||
security-common:
|
||||
allowed_arches:
|
||||
- x86_64
|
||||
- aarch64
|
||||
- ppc64le
|
||||
- s390x
|
||||
extra_files:
|
||||
git_repo: 'https://git.rockylinux.org/staging/src/rocky-release-security.git'
|
||||
git_raw_path: 'https://git.rockylinux.org/staging/src/rocky-release-security/-/raw/r9/'
|
||||
branch: 'r9'
|
||||
gpg:
|
||||
stable: 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Security'
|
||||
list:
|
||||
- 'SOURCES/RPM-GPG-KEY-Rocky-SIG-Security'
|
||||
...
|
|
@ -4,7 +4,6 @@ that match the given ISO. You will see the following formats:
|
|||
|
||||
* Rocky-X.Y-ARCH-TYPE (ISO File)
|
||||
* Rocky-X.Y-DATE-ARCH-TYPE (ISO File)
|
||||
* Rocky-X-latest-ARCH-TYPE (Symlink)
|
||||
* Rocky-ARCH-TYPE (Symlink)
|
||||
|
||||
X will be the major release.
|
||||
|
@ -19,15 +18,19 @@ The second format is in the case of rebuilt ISO's, in the case of addressing
|
|||
a bug or providing an updated image (eg for a newer kernel, a newer secure
|
||||
boot shim, and so on).
|
||||
|
||||
The third format is also in the case of a rebuilt ISO. This will always point
|
||||
to the absolute latest ISO of its type. This is used for osinfo and may be
|
||||
used on our main website. This serves as a predictable method to download
|
||||
the latest ISO whether from curl/wget or using libvirt that relies on osinfo
|
||||
to provide the download URL.
|
||||
The third format in the list is a symlink to the "latest" ISO. Currently, this
|
||||
is not advertised on the main site, but there may be potential for this in
|
||||
the future as a value add.
|
||||
|
||||
The fourth format in the list is a symlink to the "latest" ISO. This was
|
||||
originally used as part of osinfo and has been carried over for backwards
|
||||
compatibility reasons.
|
||||
This is "unversioned" ISO symlink is for these cases:
|
||||
|
||||
* A pre-determined download location for users/mirrors/service providers who
|
||||
want an always available and deterministic download location, which can be
|
||||
easier to script
|
||||
|
||||
* osinfo database / libvirt use where if a user selects Rocky Linux X, it
|
||||
should be aware of and be able to download from that location. This should
|
||||
be fully supported in Rocky Linux 8.7 and 9.1, and future Fedora versions.
|
||||
|
||||
If you have any questions, please reach out to us:
|
||||
|
||||
|
|
|
@ -1,46 +1,20 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
# funtions
|
||||
function podman_setup_dirs() {
|
||||
{{ lorax_pkg_cmd }}
|
||||
mkdir -p {{ compose_work_iso_dir }}/{{ arch }}
|
||||
cd {{ compose_work_iso_dir }}/{{ arch }}
|
||||
set +e
|
||||
test -f {{ isoname }} && { echo "ERROR: ISO ALREDY EXISTS!"; exit 32; }
|
||||
set -e
|
||||
}
|
||||
|
||||
function podman_create_links() {
|
||||
# symlink to unversioned image name
|
||||
ln -sf {{ isoname }} {{ generic_isoname }}
|
||||
ln -sf {{ isoname }} {{ latest_isoname }}
|
||||
ln -sf {{ isoname }}.manifest {{ generic_isoname }}.manifest
|
||||
ln -sf {{ isoname }}.manifest {{ latest_isoname }}.manifest
|
||||
}
|
||||
|
||||
function local_setup_env() {
|
||||
cd /builddir
|
||||
if ! TEMPLATE="$($(head -n1 $(which lorax) | cut -c3-) -c 'import pylorax; print(pylorax.find_templates())')"; then
|
||||
TEMPLATE="/usr/share/lorax"
|
||||
fi
|
||||
}
|
||||
|
||||
function check_for_sorry() {
|
||||
if xorriso -indev {{ isoname }} -report_el_torito as_mkisofs 2>&1 | grep -q SORRY; then
|
||||
echo "IMAGE WAS NOT BUILT CORRECTLY"
|
||||
exit 23
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
{% if extra_iso_mode == "podman" %}
|
||||
podman_setup_dirs
|
||||
{{ lorax_pkg_cmd }}
|
||||
mkdir -p {{ compose_work_iso_dir }}/{{ arch }}
|
||||
cd {{ compose_work_iso_dir }}/{{ arch }}
|
||||
test -f {{ isoname }} && { echo "ERROR: ISO ALREDY EXISTS!"; exit 1; }
|
||||
{% else %}
|
||||
local_setup_env
|
||||
cd /builddir
|
||||
|
||||
if ! TEMPLATE="$($(head -n1 $(which lorax) | cut -c3-) -c 'import pylorax; print(pylorax.find_templates())')"; then
|
||||
TEMPLATE="/usr/share/lorax"
|
||||
fi
|
||||
{% endif %}
|
||||
|
||||
|
||||
{{ make_image }}
|
||||
|
||||
{{ isohybrid }}
|
||||
|
@ -49,11 +23,9 @@ local_setup_env
|
|||
|
||||
{{ make_manifest }}
|
||||
|
||||
## Check that the ISO came out fine
|
||||
set +e
|
||||
check_for_sorry
|
||||
set -e
|
||||
|
||||
{% if extra_iso_mode == "podman" %}
|
||||
podman_create_links
|
||||
# symlink to unversioned image name
|
||||
ln -sf {{ isoname }} {{ generic_isoname }}
|
||||
ln -sf {{ isoname }}.manifest {{ generic_isoname }}.manifest
|
||||
|
||||
{% endif %}
|
||||
|
|
|
@ -24,9 +24,6 @@ lorax --product="${PRODUCT}" \
|
|||
{%- for repo in repos %}
|
||||
--source={{ repo.url }} \
|
||||
{%- endfor %}
|
||||
{%- if squashfs_only %}
|
||||
--squashfs-only \
|
||||
{%- endif %}
|
||||
--bugurl="${BUGURL}" \
|
||||
--variant="${VARIANT}" \
|
||||
--nomacboot \
|
||||
|
|
|
@ -1,17 +1,6 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
# functions
|
||||
function check_for_container() {
|
||||
[[ -f /run/.containerenv ]]; container_ec=$?
|
||||
grep -q "0::/$" /proc/1/cgroup; pid_ec=$?
|
||||
grep -q "0::/$" /proc/self/cgroup; self_ec=$?
|
||||
|
||||
if [[ "$pid_ec" == "0" ]] || [[ "$self_ec" == 0 ]]; then
|
||||
exit 23
|
||||
fi
|
||||
}
|
||||
|
||||
{% if live_iso_mode == "podman" %}
|
||||
{{ live_pkg_cmd }}
|
||||
mkdir -p {{ compose_live_work_dir }}/{{ arch }}
|
||||
|
@ -20,32 +9,19 @@ test -f {{ isoname }} && { echo "ERROR: ISO ALREDY EXISTS!"; exit 1; }
|
|||
|
||||
major=$(grep loop /proc/devices | cut -c3)
|
||||
for index in 0 1 2 3 4 5; do
|
||||
mknod /dev/loop$index b $major $index
|
||||
mknod /dev/loop$index $major $index
|
||||
done
|
||||
{% else %}
|
||||
# This section is typically for mock. It is possible to run mock within a
|
||||
# container, but we generally don't like this. Even though we can do this,
|
||||
# it does not mean that livemedia-creator is going to work. There are ways
|
||||
# around this, such as making sure the container is privileged to have loop
|
||||
# devices, and the loop devices should exist on the host. After, the loop
|
||||
# devices have to be cleaned up.
|
||||
#
|
||||
# The lorax devs have a way of doing this, but it requires privleges and
|
||||
# the containers cannot be root, as far as I understand it. Having root
|
||||
# containers is bad practice IMO.
|
||||
#
|
||||
# Even so, we don't support it. These checks are to prevent (you) from
|
||||
# getting needless headaches.
|
||||
set +e
|
||||
check_for_container
|
||||
set -e
|
||||
|
||||
cd /builddir
|
||||
|
||||
{% endif %}
|
||||
|
||||
{{ git_clone }}
|
||||
pushd /builddir/ks/live/{{ major }}/{{ arch }}/{{ kloc }} || { echo "Could not change directory"; exit 1; }
|
||||
if [ -d "/builddir/ks/live/{{ major }}/peridot" ]; then
|
||||
pushd /builddir/ks/live/{{ major }}/{{ arch }}/peridot || { echo "Could not change directory"; exit 1; }
|
||||
else
|
||||
pushd /builddir/ks/live/{{ major }}/{{ arch }}/stage || { echo "Could not change directory"; exit 1; }
|
||||
fi
|
||||
ksflatten -c {{ ks_file }} -o /builddir/ks.cfg
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error flattening kickstart"
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
set -o pipefail
|
||||
|
||||
# Vars
|
||||
MOCK_CFG="/var/tmp/lorax-{{ releasever }}.cfg"
|
||||
MOCK_ROOT="/var/lib/mock/{{ shortname|lower }}-{{ releasever }}-{{ arch }}"
|
||||
MOCK_CFG="/var/tmp/lorax-{{ major }}.cfg"
|
||||
MOCK_ROOT="/var/lib/mock/{{ shortname|lower }}-{{ major }}-{{ arch }}"
|
||||
MOCK_RESL="${MOCK_ROOT}/result"
|
||||
MOCK_CHRO="${MOCK_ROOT}/root"
|
||||
MOCK_LOG="${MOCK_RESL}/mock-output.log"
|
||||
|
@ -40,7 +40,7 @@ mock \
|
|||
|
||||
mock_ret_val=$?
|
||||
if [ $mock_ret_val -eq 0 ]; then
|
||||
# Copy resulting data to /var/lib/mock/{{ shortname|lower }}-{{ releasever }}-{{ arch }}/result
|
||||
# Copy resulting data to /var/lib/mock/{{ shortname|lower }}-{{ major }}-{{ arch }}/result
|
||||
mkdir -p "${MOCK_RESL}"
|
||||
cp "${MOCK_CHRO}${BUILDDIR}/${IMAGE_ISO}" "${MOCK_RESL}"
|
||||
cp "${MOCK_CHRO}${BUILDDIR}/${IMAGE_ISO}.manifest" "${MOCK_RESL}"
|
||||
|
|
|
@ -10,9 +10,6 @@
|
|||
<icicle>
|
||||
<extra_command>rpm -qa --qf '%{NAME},%{VERSION},%{RELEASE},%{ARCH},%{EPOCH},%{SIZE},%{SIGMD5},%{BUILDTIME}\n'</extra_command>
|
||||
</icicle>
|
||||
{%- if architecture == 'ppc64le' -%}
|
||||
<kernelparam>ip=::::::dhcp:1450</kernelparam>
|
||||
{%- endif -%}
|
||||
</os>
|
||||
<description>Rocky-{{major}}-{{type}}-{{version_variant}}.{{iso8601date}}.{{release}}.{{architecture}} Generated on {{utcnow}}</description>
|
||||
<disk>
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
set -o pipefail
|
||||
|
||||
# Vars
|
||||
MOCK_CFG="/var/tmp/lorax-{{ releasever }}.cfg"
|
||||
MOCK_ROOT="/var/lib/mock/{{ shortname|lower }}-{{ releasever }}-{{ arch }}"
|
||||
MOCK_CFG="/var/tmp/lorax-{{ major }}.cfg"
|
||||
MOCK_ROOT="/var/lib/mock/{{ shortname|lower }}-{{ major }}-{{ arch }}"
|
||||
MOCK_RESL="${MOCK_ROOT}/result"
|
||||
MOCK_CHRO="${MOCK_ROOT}/root"
|
||||
MOCK_LOG="${MOCK_RESL}/mock-output.log"
|
||||
|
@ -39,7 +39,7 @@ mock \
|
|||
|
||||
mock_ret_val=$?
|
||||
if [ $mock_ret_val -eq 0 ]; then
|
||||
# Copy resulting data to /var/lib/mock/{{ shortname|lower }}-{{ releasever }}-{{ arch }}/result
|
||||
# Copy resulting data to /var/lib/mock/{{ shortname|lower }}-{{ major }}-{{ arch }}/result
|
||||
mkdir -p "${MOCK_RESL}"
|
||||
cp "${MOCK_CHRO}${BUILDDIR}/${LORAX_TAR}" "${MOCK_RESL}"
|
||||
else
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
config_opts['root'] = '{{ shortname|lower }}-{{ releasever }}-{{ arch }}'
|
||||
config_opts['root'] = '{{ shortname|lower }}-{{ major }}-{{ arch }}'
|
||||
config_opts['description'] = '{{ fullname }}'
|
||||
config_opts['target_arch'] = '{{ arch }}'
|
||||
config_opts['legal_host_arches'] = ('{{ arch }}',)
|
||||
|
@ -9,7 +9,6 @@ config_opts['releasever'] = '{{ major }}'
|
|||
config_opts['package_manager'] = '{{ pkgmanager|default("dnf") }}'
|
||||
config_opts['extra_chroot_dirs'] = [ '/run/lock', ]
|
||||
# config_opts['bootstrap_image'] = 'quay.io/{{ shortname|lower }}/{{ shortname|lower }}:{{ major }}'
|
||||
config_opts['use_bootstrap_image'] = False
|
||||
|
||||
# If compose is local, the bind mounts will be here
|
||||
{% if compose_dir_is_here %}
|
||||
|
@ -43,7 +42,6 @@ name={{ repo.name }}
|
|||
baseurl={{ repo.url }}
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
priority={{ repo.priority | default(100) }}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: {{ jobname }}-{{ major }}-{{ architecture }}-{{ buildTime }}
|
||||
name: {{ jobname }}-{{ major }}-{{ architecture }}
|
||||
namespace: {{ namespace }}
|
||||
spec:
|
||||
template:
|
||||
|
@ -13,7 +13,6 @@ spec:
|
|||
containers:
|
||||
- name: {{ jobname }}-{{ major }}-{{ architecture }}
|
||||
image: {{ imageName }}
|
||||
imagePullPolicy: Always
|
||||
command: ["/bin/bash", "-c"]
|
||||
args:
|
||||
- |
|
||||
|
@ -53,8 +52,6 @@ spec:
|
|||
key: peridot.rockylinux.org/workflow-tolerates-arch
|
||||
operator: Equal
|
||||
value: {{ architecture }}
|
||||
nodeSelector:
|
||||
kubernetes.io/arch: {{ architecture }}
|
||||
restartPolicy: {{ restartPolicy }}
|
||||
volumes:
|
||||
- name: resolv-conf
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
set -o pipefail
|
||||
|
||||
# Vars
|
||||
MOCK_CFG="/var/tmp/live-{{ releasever }}.cfg"
|
||||
MOCK_ROOT="/var/lib/mock/{{ shortname|lower }}-{{ releasever }}-{{ arch }}"
|
||||
MOCK_CFG="/var/tmp/live-{{ major }}.cfg"
|
||||
MOCK_ROOT="/var/lib/mock/{{ shortname|lower }}-{{ major }}-{{ arch }}"
|
||||
MOCK_RESL="${MOCK_ROOT}/result"
|
||||
MOCK_CHRO="${MOCK_ROOT}/root"
|
||||
MOCK_LOG="${MOCK_RESL}/mock-output.log"
|
||||
|
@ -44,7 +44,7 @@ mock \
|
|||
|
||||
mock_ret_val=$?
|
||||
if [ $mock_ret_val -eq 0 ]; then
|
||||
# Copy resulting data to /var/lib/mock/{{ shortname|lower }}-{{ releasever }}-{{ arch }}/result
|
||||
# Copy resulting data to /var/lib/mock/{{ shortname|lower }}-{{ major }}-{{ arch }}/result
|
||||
mkdir -p "${MOCK_RESL}"
|
||||
cp "${MOCK_CHRO}${BUILDDIR}/lmc/${IMAGE_ISO}" "${MOCK_RESL}"
|
||||
else
|
||||
|
|
|
@ -30,13 +30,9 @@ libblockdev-utils
|
|||
libbytesize
|
||||
libgcab1
|
||||
libjcat
|
||||
libsss_autofs
|
||||
libudisks2
|
||||
libxmlb
|
||||
mokutil
|
||||
python3-lxml
|
||||
shim-aa64
|
||||
sssd-nfs-idmap
|
||||
udisks2
|
||||
volume_key-libs
|
||||
NetworkManager-wifi
|
||||
|
|
|
@ -27,11 +27,7 @@ libblockdev-utils
|
|||
libbytesize
|
||||
libgcab1
|
||||
libjcat
|
||||
libsss_autofs
|
||||
libudisks2
|
||||
libxmlb
|
||||
python3-lxml
|
||||
sssd-nfs-idmap
|
||||
udisks2
|
||||
volume_key-libs
|
||||
NetworkManager-wifi
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue