Commit Graph

48 Commits

Author SHA1 Message Date
Sharpz7 a48825d260 [codespell] Fixing Spelling Mistakes
This is the first in a series of commits to add support for codespell. This is continuning the process completed in ironic-python-agent.

Future Commits will add a Tox Target, CI support and potentially a git-blame-ignore-revs file if their are lots of spelling mistakes that could clutter git blame.

Change-Id: I6ce80cc993cdd4c8d38266f3ff3f8f134f0fc5a9
2024-01-26 04:11:31 +00:00
Dmitry Tantsur 2a1c289cc5
Switch IPA building to Debian Bookworm
Bullseye has a broken lshw [1] so it will not work.
Fixes an issue with the firmware repo renaming in Bookworm.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1002025

Closes-Bug: #2043112
Change-Id: Ib0cb156b72e6fa90e1530796e81a9a41ffa9e54f
2023-12-08 15:43:55 +01:00
Dmitry Tantsur 9da0cf41d4
Fix building images for Bullseye and Bookworm
Bullseye requires installing lshw from backports because the default one
has broken JSON output:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1002025

Bookworm requires installing firmware from a different repository.

Change-Id: I1bfecfcaff1547f99fcb48cc54b8f7ff77f0b0d9
2023-12-08 15:38:23 +01:00
Julia Kreger 49367bc9d6 Remove /var/tmp/* from images
In some cases, things such as dracut regenerating the
initramfs file, may leave some artifacts in /var/tmp/ from
the ramdisk build. These are not needed and can be discarded.

Change-Id: Ibd2a61a7e42adfea868679c52c7a786d9aab1b36
2023-01-03 08:57:23 -08:00
Dmitry Tantsur cd3408613a Remove support for openSUSE since Python 3.6 is no longer supported
The conditions are left in the code in case someone somehow make it
work. We can clean them up later.

Change-Id: I65f6da0e90560c00eb82e8e4366fdaf3bbde8da1
2022-05-18 09:48:49 +02:00
Dmitry Tantsur d543aa8bf4 Remove support for distributions with Python 3.6
IPA can no longer be installed on them, other projects will follow.
Leave the jobs in place for projects that consume them.
Publish Stream 9 images (we'll need to clean up tarballs.o.o later).

Also force using Python 3.9 for tinyipa.

Change-Id: I350c563c1c4ab60ac10d7c9e4bb0715bfde1b1db
2022-05-13 12:25:25 +02:00
Iury Gregory Melo Ferreira e5bf43c791 Add multipath-io element
This commits introduces a new element `multipath-io`
that should be used when the system contains multipath devices.

Change-Id: I52761aecf0e17ed7482897b50a9b64ee514edfbe
2022-04-04 21:10:10 -03:00
Zuul dbe9995015 Merge "dhcp-all-interfaces: let NetworkManager doit." 2022-02-23 12:49:25 +00:00
Julia Kreger 94171f104c Create random character devices so systemd does not crash
Systemd, depending on the version and the configuration,
can attempt to open urandom when a ramdisk boots, before
the udevd is launched to handle the devices. In particular
in FIPS mode, this can result in the ramdisk crashing.

In order to handle this, we pre-create the chracter device
files which can be statically used in the early start sequence
to allow the agent to boot and deploy.

Change-Id: I587e66a0d6b652c4aeca6fc211602d999d4641e8
2022-02-16 09:19:57 -08:00
Riccardo Pittau 30415b17a9 Build tinyipa on tinycore 13.x
Change-Id: Idd9f77c7002026cbd97c78c23bb575009503ecdb
2022-02-03 14:50:33 +01:00
Harald Jensås bdb387bb84 dhcp-all-interfaces: let NetworkManager doit.
Override the default for DIB_DHCP_NETWORK_MANAGER_AUTO
to `true` on RHEL and CentOS release 8 and later.

The dhcp-all-interfaces element is configured to only
apply NetworkManager configuration. The service:
dhcp-all-interfaces will not be enabled. Not enabling the
service allows NetworkManager to do the interface auto-
configuration. In release 8 and later it should do this
just as good, or even better, compared to the
dhcp-all-interfaces.sh script.

Depends-On: Id6f8d6aaaf52a78175bb6c065ec88274c364834e
Change-Id: I12950733bfe54cae62d299b4c5987449d551857a
2022-01-24 07:02:03 +00:00
Steve Baker 66206d0b27 Remove centos7 job, python2 support
This change does the following:
- Removes the centos7 job, it uses python2 even though python2 was
  dropped from IPA in 2019.
  (see Ifd0e0b99bb82a7d7e82d6c14309468196f5734fc)
- Allow 60-ironic-python-agent-ramdisk-install to assume python3 and
  the venv module, the remaining centos7-python3 job will also test this
- Replaces the pip-and-virtualenv element with ensure-venv.
  pip-and-virtualenv exists to install virtualenv for python2
  environments, and it is unmaintained and mostly technical debt.

Change-Id: I9b6e03f50a4eb2484a04748e51d7348401b6ca04
2022-01-21 13:35:01 +13:00
Riccardo Pittau b1af22174b Build and publish arm64 debian based ipa ramdisk
Change-Id: Ic9a79fe9192ae09b13d7722dd5735ffc7709ce38
2021-11-15 08:21:56 +00:00
Zuul 8f8cff29b5 Merge "Remove support for iSCSI deploy from the DIB builder" 2021-09-14 13:33:21 +00:00
Zuul 68ba6f33c9 Merge "Stop explicitly supported Fedora" 2021-09-10 22:14:41 +00:00
Dmitry Tantsur 001100e2e2 Remove support for iSCSI deploy from the DIB builder
... but keep support for iscsistart used by iBFT.

Change-Id: I8e892b505d39197dbfffc8d47408b4747679cc85
2021-09-10 15:39:38 +02:00
Riccardo Pittau 3a4db0790b Use native Centos 8 Stream for dib images
Change-Id: I0ba0a529f470a3356340f0c4d9ccc32f669cedc0
2021-09-10 12:40:35 +02:00
Dmitry Tantsur f21e6dddfc Stop explicitly supported Fedora
It's a moving target that keeps breaking. Right now it's broken because
removing openssl-devel causes removal of dkms, which DIB insists on
installing.

Document the supported distributions based on what the CI runs
(yes, it's Ubuntu Bionic and openSUSE 15.1, there is no mistake).

Change-Id: I08263751ca158db5883d95407ad0f3c9807826eb
2021-09-10 12:15:05 +02:00
Dmitry Tantsur 0e243c4e51 tinyIPA: remove support for iSCSI deploy
Change-Id: Ice5ba6acefbee68a9526cf482235fda0eeef5dc4
2021-05-10 15:04:05 +02:00
Fedor Tarasenko 9f88a024c7 dhcp.sh predictible ifnames
Adds predictible and biosdevnames to dhcp.sh script filter
Useful for tinyipa image builds

Change-Id: I312dabd95de3823051af04fbc5f4c55c544f8b49
Story: #2008701
Task: #42021
2021-03-16 15:46:26 +00:00
Zuul 7845b97faa Merge "Support installing ironic-lib from source" 2021-02-17 12:05:29 +00:00
Julia Kreger c66244ff55 Remove PYOPTIMIZE_TINYIPA capability
Oslo.Privsep requries pycparser, which does not support being loaded
into python programs where the source is not available for doc string
references. This is because one of the things that happens with
an optomized python, is the files are "pre-compiled" and doc strings
are removed.

This is unfortunate, but just means the TinyIPA images are slightly
larger, Testing shows this is approximately 5 MB.

Change-Id: I3bdda3a8e595db8e84cd15bf083978c39514b1fa
2021-02-16 19:31:38 +00:00
Dmitry Tantsur fef13dbc76 Support installing ironic-lib from source
Change-Id: I82b275222f0caeb69a605b8b56dc73f38242ff7a
2021-02-11 17:19:20 +01:00
Jacob Anders 1a5a89610c Add nvme-cli package to IPA image
This change adds nvme-cli utility to the IPA image, which is required to
enable IPA to perform NVMe specific cleaning on supported devices.

Story: 2008290
Task: 41168
Change-Id: I2f63db9b739e53699bd5f164b79640927bf757d7
2021-02-03 09:43:53 +10:00
Dmitry Tantsur 5537564121 Removes unnecessary requirement of sdparm
Change-Id: I1fafbf31b8fb2fc411b722cec11b94b4b765c995
2021-01-22 12:40:39 +01:00
Zuul 5050311526 Merge "Make the debian job voting and start publishing debian images" 2021-01-06 14:09:57 +00:00
Julia Kreger 1b904b5dd3 Remove firmware from debian based systems
Adds logic to loop through the path debian uses to remove excess
firmware binaries that are un-needed for the agent to operate.

Change-Id: I95a12215b8c5b2d52f52145f79b5f245138ebfde
2021-01-04 17:41:12 +00:00
Zuul 8afcde90ce Merge "Add ironic-ramdisk-base to build general-purpose ramdisks" 2021-01-04 14:52:17 +00:00
Julia Kreger 6c9c505ca9 Add additional firmware images to be excluded
Removed additional firmware, largely Wi-Fi and embedded
SoC firmware, from the ramdisk as these devices are unlikely
to be needed in the process of the use of a deployment ramdisk.

Change-Id: Ia63c4d5d6c00c7fa64e7c2d570645b8a16aaf0c3
2020-12-17 14:22:53 +00:00
Dmitry Tantsur db238b9c99 Make the debian job voting and start publishing debian images
With only 270MiB in size, the Debian images are likely candidates
for our future default images. Given that CentOS Stream 8 images
are nearly 500MiB in size, Debian may be our only path forward.

Enable installing firmware on Debian images to make them suitable
for bare metal installations.

Do not try to install biosdevname on non-RH systems.

Change-Id: I2c2a71c4afd0cd534961317b7fe9d3fb5d007d24
2020-12-16 19:48:49 +01:00
Dmitry Tantsur 094aa37f90 Add ironic-ramdisk-base to build general-purpose ramdisks
Should be usable with the ramdisk deploy interface.

Change-Id: I07c3064322357ddb37cb6e8be2f672adcc1a9a0b
2020-12-16 17:51:37 +01:00
Zuul 2f2f15fce5 Merge "Revert "Switch images to CentOS Stream 8"" 2020-12-15 17:54:21 +00:00
Zuul 8e6fbfb6aa Merge "Remove netronome and amdgpu firmware by default" 2020-12-15 15:40:13 +00:00
Julia Kreger 0e59d168e1 Revert "Switch images to CentOS Stream 8"
This reverts commit
0d16bee11b.

It is being reverted as the centos stream images
contain extra, un-necessary libraries and packages
installed which swells the ramdisk size up substantially
and is causing failures in CI as the compressed image size
expanded by about 100MB, and uncompressed the stream images
are 1.1GB.

Change-Id: I71eed30c27c109ac03d41e6ec46067148eb9b007
2020-12-15 14:03:39 +00:00
Zuul 3d9c6881ea Merge "Switch images to CentOS Stream 8" 2020-12-14 02:37:17 +00:00
Dmitry Tantsur 0d16bee11b Switch images to CentOS Stream 8
Regular CentOS 8 is deprecated and is planned to reach EOL in 2021.
Use CentOS Stream which will also give us access to bug fixes and
features earlier.

Change-Id: I485271ade7594f7c4d17ed81aa677679ef4fb49e
2020-12-10 15:48:18 +01:00
Dmitry Tantsur 0f62572894 Support using lzma for initramfs compression
Reduces the size by roughly 30% at the expense of larger
decompression time.

Change-Id: I04613a26bd3f66ddcb1623e288d325666586fa6c
2020-12-03 11:46:05 +01:00
Dmitry Tantsur 2c7f7a55e6 Remove netronome and amdgpu firmware by default
Allow customizing which firmware to remove this way.

Change-Id: I714c0771c565814714881b979daaa4c83a15db1d
2020-11-27 12:03:24 +01:00
Dmitry Tantsur 5eebab3fc1 Force SELinux to be in permissive mode
The Fedora based ramdisk is outright broken with SELinux enforcing.
TripleO actually ships its ramdisks with selinux-permissive, let's
do the same.

Change-Id: Icfec4b8109a0ddefeb0f200c3fd1f1e2de104839
2020-11-02 10:49:24 +01:00
Dmitry Tantsur 8adfcc65c6 Add an element to install python-hardware
Requires returning EPEL support because of some dependencies.

Co-Authored-By: Mark Goddard <mark@stackhpc.com>
Co-Authored-By: Will Szumski <will@stackhpc.com>
Change-Id: I8da33dabda34e626baf6e7895fc450973d0a8fef
2020-09-24 14:39:57 +02:00
Dmitry Tantsur a28b8fa5bc Support installing with Python 3 on CentOS 7
RHEL/CentOS 8 dropped support for some older hardware that is still
in use. Since CentOS 7 has Python 3, let's support it for now.

Also fixes an issue with C.UTF-8 locale which does not seem to work on
CentOS 7 (and actually causes a failure with newer python packages).

Change-Id: I1b5797b030ef896ad4b2a95a504a0215ca6ee574
2020-07-31 18:12:28 +02:00
Dmitry Tantsur 79cd8ed97e Install linux-firmware in DIB images
It's removed as of https://review.opendev.org/#/c/675547/ but is
actually required for bare metal.

Story: #2007385
Task: #38969
Depends-On: https://review.opendev.org/727171
Change-Id: I7e924cf58df90d957afce8a058b575643527284b
2020-05-12 14:07:52 +02:00
Julia Kreger 789ebe1e95 Add ntpdate/ntpclient/chrony
Adds ntpdate to the binary package list for the diskimage-builder
element, and added ntpclient to the tinycore package list and added
a small shim to wrap ntpclient as ntpdate is not a native tinycore
package.

For larger ramdisks, we attempt to use chrony, which superceeds the ntp
package as a combined time server and client.

Change-Id: If99f2df31af8e4d41ad7813d25f0d779abc23f7a
Needed-By: https://review.opendev.org/#/c/707911/
2020-02-17 13:11:04 -08:00
Iury Gregory Melo Ferreira 15ec23f7e2 Add efivar
The efivar package is required when doing uefi boot.

Change-Id: Id736787bb3d6f971a9f0f26732af1c2d66151f0d
2020-01-07 15:46:33 +01:00
Dmitry Tantsur 3c78c29e94 Replace CentOS 7 images with CentOS 8
CentOS 7 uses Python 2. Although it's possible to install Python 3
on it, it not trivial with DIB. We should rather switch to
a distribution where Python 3 is the default version.

As a nice side effect, the CentOS 8 images seem smaller.

The CentOS 7 job definitions are kept around since they're used
on stable/train.

Change-Id: I6b23da21eab19c69f7b070adff76b35e1752bf8d
2019-12-26 12:37:59 +01:00
Iury Gregory Melo Ferreira e564be1905 Add efibootmgr
We will be using efibootmgr on ipa so let's add
to the ipa-builder so the ramdisk will have it.

Change-Id: Ic3b3f65715719b31f7e94d14504be9705ab4ba0e
2019-12-09 16:08:31 +01:00
Madhuri Kumari 55aaf172b1 Drop python 2.7 support and testing
OpenStack is dropping the py2.7 support in ussuri cycle.

ironic-python-agent-builder is ready with python 3 and ok to drop
the python 2.7 support.

Complete discussion & schedule can be found in
- http://lists.openstack.org/pipermail/openstack-discuss/2019-October/010142.html
- https://etherpad.openstack.org/p/drop-python2-support

Ussuri Communtiy-wide goal - https://review.opendev.org/#/c/691178/

Change-Id: I4dc5fe4cbb2ec4e604e18f77da4b5723ab7f9c2b
2019-11-23 18:39:21 +05:30
Dmitry Tantsur 77c8f45838 Initial structure
Change-Id: If014272a204953da387855e2666f01d4e9229eaa
2017-11-03 14:34:47 +01:00