Skip to content

Rebase XCP-ng changes onto v10.10.25 #42

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 65 commits into from
Mar 25, 2025
Merged

Conversation

ydirson
Copy link
Collaborator

@ydirson ydirson commented Mar 11, 2025

No description provided.

ydirson and others added 30 commits March 6, 2023 13:36
While developing and/or installing from an already-verified ISO, yum's
repo_gpgcheck just gets in the way.  This provides a general kill-switch
for checking repomd.xml.asc, through commandline or answerfile.

Signed-off-by: Yann Dirson <[email protected]>
Originally-by: Nicolas Raynaud <[email protected]>

Also adds support for it in the answerfile.

the general form is :
<raid device="md127">
  <disk>sda</disk>
  <disk>sdb</disk>
</raid>

avoid question and display waiting message when running mdadm

Signed-off-by: Samuel Verschelde <[email protected]>

When restoring from backup on a software RAID install, install grub on
raid members instead of disk (which is a mdadm device)

Signed-off-by: BenjiReis <[email protected]>

Orig-commit: 6e168b4
Orig-commit: 7557a00
Orig-commit: ee404b1
Orig-commit: e6497d1
Orig-commit: d33fe10
Similar to no-repo-gpgcheck but for RPM sigs.

Signed-off-by: Yann Dirson <[email protected]>
The presence of this parameter changes the installer behavior,
preventing local source installation and pre-populating the xcp-ng
install url.

Originally-by: Nicolas Raynaud <[email protected]>

Use the `--netinstall` parameter that is automatically
generated at preinit stage and translate it into
`answers['netinstall'] = True`.

Signed-off-by: Samuel Verschelde <[email protected]>

Orig-commit: 36395c3
Orig-commit: 098a2f4
Orig-commit: 0b298cd
Failing to do so can leave the kernel's idea of the partitions in weird
states.  There are likely bugs underlying those weird state, we just don't
want to be impacted by them at this point :)

Signed-off-by: Yann Dirson <[email protected]>
Global *gpgcheck flag can change the default from True to False, and these
new flags allow to override this default on a per-source basis.

Signed-off-by: Yann Dirson <[email protected]>
Signed-off-by: Samuel Verschelde <[email protected]>
Both fields are used for the 2 IP families and were writen in
an IPv4 specific block.

Signed-off-by: BenjiReis <[email protected]>
Inherits from `NetInterface` to mutualize the code

Signed-off-by: BenjiReis <[email protected]>
Add family specific validator as well

Signed-off-by: BenjiReis <[email protected]>
Add a screen to choose to configure IPv4, IPv6 or both
Display the interface screen for IPv4 and/or IPv6

Signed-off-by: BenjiReis <[email protected]>
Need to add `ndisc6` to the install.img

Signed-off-by: BenjiReis <[email protected]>
Add `isDynamic` helper to `NetInterface`

Signed-off-by: BenjiReis <[email protected]>
Add `etc/sysctl.d/91-net-ipv6.conf` in the restore list

Signed-off-by: BenjiReis <[email protected]>
Covers:
1. repo_gpgcheck:
  a. wrong system clock putting gpg key creation in the future, causing a
     yum crash (nothing special happens if the date of the signature is in
     the future ¯\_(ツ)_/¯)
  b. other yum crashes due to uncaught gpg exceptions (if any)
  c. lack of repomd signature (while repo_gpgcheck is in force)
  d. signature done by other key than the one in ISO ("repomd.xml signature
     could not be verified" ¯\_(ツ)_/¯)
2. gpgcheck:
  a. RPM signed with unknown key
  b. unsigned RPM referenced by unsigned repomd (no-repo-gpgcheck)
  c. RPM re-signed with unknown key, unsigned repomd (no-repo-gpgcheck)
  d. RPM overwritten with another RPM signed with known key (diagnosed
     through hash but, same diag as 2.c)
  e. delsigned/resigned/etc RPM, unchanged repomd (same diag as 2.c/d)

Does not cover notably:
  - unsigned RPM referenced by (re)signed repomd

In some cases Yum does not give an error, but dies because of an
uncaught exception, which makes this check quite brittle, but in the
worst case if messages change, we still fallback to the original
"Error installing packages" message.

Signed-off-by: Yann Dirson <[email protected]>
In interactive mode, when Driver Disks are used as local media, they
must *also* be installed as Supplemental Packs after installation.
This change remembers the use of Driver Disks and makes sure the
question is asked, even when the supplemental-packs feature is
disabled.

Signed-off-by: Yann Dirson <[email protected]>
It may not be obvious to users that local-media Driver Disks must be
inserted twice during installation.  This change uses the memorization
of usage of Driver Disks from previous commit, and uses it to explain
users they likely wants to insert their Driver Disk again.

Signed-off-by: Yann Dirson <[email protected]>
All files matchin `custom.*\.conf` will be kept
upon upgrade.

See: xapi-project/sm#600

Signed-off-by: BenjiReis <[email protected]>
Also change text for a more suitable description.

Originally-by: Samuel Verschelde <[email protected]>
Orig-commit: b4ebf81
Orig-commit: 03d3a84
Orig-commit: d3857b8
Orig-commit: 604f0b0

Signed-off-by: Yann Dirson <[email protected]>
This complements the default choice previously changed in the TUI.

Signed-off-by: Yann Dirson <[email protected]>
Before 5abd998 this code was calling
grubby's new-kernel-pkg, which unconditionally passes -f to mkinitrd.
Not using -f will cause install failure when a driver disk's rpm's
scripts have generated an initrd already (as is the case with the
intel igb driver)

Signed-off-by: Yann Dirson <[email protected]>
If log=True is passed to commit, dump the old and new partition tables
before applying the changes. At the same time, fix up the dump code to
handle GPT partition tables.

Signed-off-by: Ross Lagerwall <[email protected]>
(cherry picked from commit 7f58771)
ydirson and others added 16 commits March 19, 2025 10:38
Rebase of simple 8.2.1 patches onto 8.3 codebase
Global and per-source gpgcheck flags
Don't fail seeing a backup refering to non-existent disk
installFromYum: give more detailed error messages on gpg errors
* xcpng/restore-multipath-conf:
  Keep user multipath configuration upon upgrade
* driver-disks:
  Clarify Supplemental Packs dialog in presence of Driver Disks
  Always show Supplemental Packs dialog if Driver Disks are used.
Enhance tracing to hunt for restore bug
disktool: Optionally dump old/new partitions during commit
Upgrade: forbid upgrading with a key XAPI will reject
Backport from master.

Signed-off-by: Yann Dirson <[email protected]>
@ydirson
Copy link
Collaborator Author

ydirson commented Mar 19, 2025

Last push:

@ydirson ydirson marked this pull request as ready for review March 19, 2025 09:51
ydirson added 2 commits March 19, 2025 17:38
e9d686a triggers an unmount of backup_fs
before we're done with it, causing a restoration failure in 10.10.25:

 INFO     [2025-03-19 14:33:50] INSTALL FAILED.
 INFO     [2025-03-19 14:33:50] A fatal exception occurred:
 INFO     [2025-03-19 14:33:50] Traceback (most recent call last):
   File "/opt/xensource/installer/install.py", line 274, in go
     restore.restoreFromBackup(backup, progress)
   File "/opt/xensource/installer/restore.py", line 214, in restoreFromBackup
     branding = util.readKeyValueFile(os.path.join(backup_fs.mount_point, constants.INVENTORY_FILE))
   File "/opt/xensource/installer/util.py", line 322, in readKeyValueFile
     f = open(filename, "r")
 IOError: [Errno 2] No such file or directory: '/tmp/restore-backup-hrJwAR/etc/xensource-inventory'


Fortunately that data we want was already loaded, so this is a minimal fix.

Signed-off-by: Yann Dirson <[email protected]>
@glehmann
Copy link
Member

❯ git range-diff v10.10.19..10.10.19-8.3 v10.10.25..ydi/10.10.25-8.3
fatal : bad revision 'v10.10.25..ydi/10.10.25-8.3'

because the tags have not been imported from upstream.

git remote add upstream [email protected]:xenserver/host-installer.git
git fetch --tags upstream

fixes that

@ydirson
Copy link
Collaborator Author

ydirson commented Mar 24, 2025

the tags have not been imported from upstream.

Pushed v10.10.25 here

Copy link
Member

@stormi stormi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Trusting Yann's work and Gaëtan's review.

@ydirson ydirson merged commit 89e2629 into 10.10.25-8.3 Mar 25, 2025
1 check passed
@ydirson ydirson deleted the ydi/10.10.25-8.3 branch March 25, 2025 12:18
Comment on lines 681 to +689

return restore_list

# Keep IPv6 enablement/disablement upon upgrades
self.restore_list += ['etc/sysctl.d/91-net-ipv6.conf']

# Keep user multipath configuration
self.restore_list += [{'dir': 'etc/multipath/conf.d', 're': re.compile(r'custom.*\.conf')}]

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow, @glehmann somehow we missed this mismerge

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed git range-diff ignores merge commits and does not give the option to include them.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we'd best rebase the ipv6 branch on 10.10.25+ instead to reduce conflicts

@ydirson ydirson mentioned this pull request Apr 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants