add ubi and minimal variants

This commit is contained in:
Neil Hanlon 2023-11-21 20:56:36 -05:00
parent cc4cf4c0cd
commit 414d2cf615
Signed by: neil
GPG Key ID: 705BC21EC3C70F34
20 changed files with 215 additions and 14 deletions

View File

@ -1,4 +1,4 @@
- imagename: Rocky-9-Container
- imagename: Rocky-9-Container-Base
types: [tar]
docker-target: git.resf.org/sig_cloud/images:9.3
elements: [rocky-container-base]

10
9-container-minimal.yaml Normal file
View File

@ -0,0 +1,10 @@
- imagename: Rocky-9-Container-Minimal
types: [tar]
docker-target: git.resf.org/sig_cloud/images:9.3-ubi
elements: [rocky-container-minimal]
arch: ppc64le
environment:
DIB_ARCHITECTURE: ppc64le
DIB_YUM_DNF_CONTENTDIR: stg/rocky
DIB_AVOID_ISCSI: '1'
DIB_YUM_ROCKY_CONTAINER_MINIMAL: '1'

9
9-container-ubi.yaml Normal file
View File

@ -0,0 +1,9 @@
- imagename: Rocky-9-Container-UBI
types: [tar]
docker-target: git.resf.org/sig_cloud/images:9.3-ubi
elements: [rocky-container-ubi]
arch: ppc64le
environment:
DIB_ARCHITECTURE: ppc64le
DIB_YUM_DNF_CONTENTDIR: stg/rocky
DIB_AVOID_ISCSI: '1'

@ -1 +1 @@
Subproject commit 16026735e5b3f4f8f05dd3adc2c93d41f5d2f111
Subproject commit d17d7b15f9477c95001e9974a9150deb0a4474f9

View File

@ -0,0 +1,117 @@
#!/usr/bin/env python3
# dib-lint: disable=indent
# dib-lint indent requirements causes issue with pep8
# Copyright 2012 Hewlett-Packard Development Company, L.P.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import sys
# Manually maintained for brevity; consider making this compiled from
# distromatch or other rich data sources.
# Debian name on the left, Fedora/RHEL on the right.
#
# !!! DO NOT ADD ANY ENTRIES TO THIS FILE !!!
#
# This global list has been deprecated by the pkg-map element. New
# package mappings should go in pkg-map files inside each element.
#
package_map = {
'apache2': 'httpd',
'arping': 'iputils',
'augeas-tools': 'augeas',
'build-essential': 'make automake gcc gcc-c++ kernel-devel',
'default-jre': 'java',
'extlinux': 'syslinux-extlinux',
'gearman-job-server': 'gearmand',
'grub-pc': 'grub2-tools grub2',
'libaio1': 'libaio',
'libapache2-mod-wsgi': 'mod_wsgi',
'libc6-dev': 'glibc-devel',
'libmariadb-dev': 'mariadb-devel',
'libffi-dev': 'libffi-devel',
'libldap2-dev': 'python-ldap',
'libmysql-dev': 'mysql++-devel',
'libmysql-java': 'mysql-connector-java',
'libmysqlclient-dev': 'mysql-devel',
'libpq-dev': 'libpqxx-devel',
'libxslt-dev': 'libxslt-devel',
'libsasl2-dev': 'cyrus-sasl-devel',
'libsqlite3-dev': 'libsqlite3x-devel',
'libssl-dev': 'openssl-devel',
'libvirt-bin': 'libvirt',
'libxml2-dev': 'libxml2-devel',
'libz-dev': 'zlib-devel',
'linux-headers-generic': 'kernel-headers',
'linux-image-generic': 'kernel',
'lm-sensors': 'lm_sensors',
'mysql-client-5.5': 'mariadb',
'mysql-server-5.5': 'mariadb-server',
'nagios-plugins-basic': 'nagios-plugins-all',
'netcat-openbsd': 'nmap-ncat',
'nfs-common': 'nfs-utils',
'nfs-kernel-server': 'nfs-utils',
'open-iscsi': 'iscsi-initiator-utils',
'openjdk-7-jre-headless': 'java-1.7.0-openjdk-headless',
'openssh-client': 'openssh-clients',
'openvswitch-common': 'openvswitch',
'openvswitch-switch': 'openvswitch',
'python-dev': 'python-devel',
'python-libvirt': 'libvirt-python',
'python-memcache': 'python-memcached',
'python-mysqldb': 'MySQL-python',
'python-numpy': 'numpy',
'python-pyopenssl': 'pyOpenSSL',
'python-xattr': 'pyxattr',
'qemu-utils': 'qemu-img',
'qpid-client': 'qpid-cpp-client',
'qpidd': 'qpid-cpp-server',
'snmp-mibs-downloader': '',
'snmpd': 'net-snmp',
'stunnel4': 'stunnel',
'tftpd-hpa': 'tftp-server',
'tgt': 'scsi-target-utils',
'vlan': 'vconfig',
# openstack mappings
'openstack-neutron-dhcp-agent': 'openstack-neutron',
}
deprecated = []
for arg in sys.argv[1:]:
if arg not in package_map and arg.endswith('-dev'):
# convert -dev into devel
converted = '%s%s' % (arg, 'el')
deprecated.append((arg, converted))
print(converted)
else:
converted = package_map.get(arg, arg)
if converted != arg:
deprecated.append((arg, converted))
print(converted)
if deprecated:
print("WARNING: The following packages were re-mapped by "
"redhat-common map-packages\n"
"They should be converted to pkg-map:", file=sys.stderr)
for arg, converted in deprecated:
print(" %s -> %s" % (arg, converted), file=sys.stderr)
sys.exit(0)
# Tell emacs to use python-mode
# Local variables:
# mode: python
# End:

View File

@ -1,2 +1,2 @@
export YUM=dnf
export YUM="dnf"
export DNF_VAR_contentdir=stg/rocky

View File

@ -1 +0,0 @@
Verify we can build a rocky-minimal image.

View File

@ -1,2 +0,0 @@
block-device-gpt
vm

View File

@ -0,0 +1 @@
rocky-container-base

View File

@ -0,0 +1,2 @@
export YUM="microdnf"
export DIB_YUM_ROCKY_CONTAINER_MINIMAL=1

View File

@ -0,0 +1,6 @@
bash:
coreutils-single:
glibc-minimal-langpack:
microdnf:
rocky-release:
util-linux:

View File

@ -0,0 +1 @@
rocky-container-base

View File

@ -0,0 +1,29 @@
bash:
coreutils-single:
crypto-policies-scripts:
curl-minimal:
findutils:
gdb-gdbserver:
glibc-minimal-langpack:
gzip:
hostname:
uninstall: true
less:
uninstall: true
libcurl-minimal:
libusbx:
uninstall: true
linux-firmware-whence:
uninstall: true
linux-firmware:
uninstall: true
rocky-release:
rootfiles:
systemd:
tar:
usermode:
uninstall: true
util-linux:
vim-minimal:
which:
yum:

View File

@ -1,3 +1,4 @@
package-installs
rocky-common
rpm-distro
yum

View File

@ -0,0 +1 @@
export DIB_YUM_ROCKY_CONTAINER_MINIMAL="${DIB_YUM_ROCKY_CONTAINER_MINIMAL:-0}"

View File

@ -1,23 +1,39 @@
bash:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
binutils:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
coreutils-single:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
crypto-policies-scripts:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
curl-minimal:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
findutils:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
glibc-minimal-langpack:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
gzip:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
hostname:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
less:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
libcurl-minimal:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
libusbx:
linux-firmware:
uninstall: true
linux-firmware-whence:
uninstall: true
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
lsb_release:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
rootfiles:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
tar:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
usermode:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
systemd-libs:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
vim-minimal:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1
yum:
when: DIB_YUM_ROCKY_CONTAINER_MINIMAL!=1

View File

@ -1,7 +1,7 @@
{
"family": {
"redhat": {
"lsb_release": "ed hostname patch postfix tar time"
"lsb_release": "hostname tar"
}
}
}

View File

@ -0,0 +1,11 @@
#!/bin/bash
if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then
set -x
fi
set -eu
set -o pipefail
rm /etc/dnf/protected.d/sudo.conf
${YUM} clean all
${YUM} -y remove sudo python3 python-unversioned-command python3-pyyaml expat python3-libs python3-setuptools-wheel python3-pip-wheel

View File

@ -23,10 +23,10 @@ for dir in $(ls -d /usr/share/locale/* | grep -v 'en_US\|all_languages\|locale\.
rm -fr /usr/share/man
# Cleanup caches left by chroot
rm -fr /usr/lib64/python*/__pycache__/
find /usr/lib* -type d -name __pycache__ -print0 | xargs --null -I {} rm -frv {}
rm -fr /var/cache/dnf/*
rm -fr /var/lib/dnf/repos/*
rm -fr /run
rm -fr /home/ansible/

View File

@ -319,7 +319,7 @@ _install_repos
# (https://docs.fedoraproject.org/en-US/modularity/) we can pick up
# seemingly mismatched libraries.
if [[ ${DISTRO_NAME} =~ (fedora|openeuler|rocky) ]]; then
_install_pkg_manager dnf curl-minimal libcurl-minimal
_install_pkg_manager ${YUM} curl-minimal libcurl-minimal
elif [[ ${DISTRO_NAME} == centos && $DIB_RELEASE > "7" ]]; then
_install_pkg_manager dnf dnf-plugins-core curl libcurl
else