Project

General

Profile

Feature #26709

Rethink TFTP naming conventions for PXE files

Added by Lukas Zapletal 4 months ago. Updated 29 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
TFTP
Target version:
-
Difficulty:
Triaged:
Yes
Bugzilla link:
Pull request:
Team Backlog:
Fixed in Releases:
Found in Releases:

Description

The new naming convention implemented in #19389 is not good, while it workarounds concurrency problems it creates unecessary amount of files. Here is how we could implement this:

  • we can keep the current unique id approach in core (in Katello lets change from DBID to URL hash like in core)
  • new code in proxy * before anything is downloaded, do HTTP HEAD and acquire last-modified/etag sha1 hash * then download the content to a filename SHA1 (or skip if the file already exists) * then create a relative symlink FilenameFromForemanCore-XYZ -> SHA * extend TFTP API with "expiration" flag - every created symlink would have expiration time, this would be stored as FILENAME.expire_at timestamp or text file * expiration is set by Foreman core according to Token expiration (when it expires TFTP files are actually also invalid) - when set to zero no expiration is performed
  • there will be a cronjob running every day cleaning up expired symlinks
  • the cronjob can optionally delete SHA1 named (content) files which are "orphans" (have zero symlinks) and are older than 1 year

We can also use hardlinks instead of symlinks.


Related issues

Related to Foreman - Feature #19389: Change TFTP filename pattern to include unique installation media IDClosed

History

#1 Updated by Lukas Zapletal 4 months ago

  • Tracker changed from Bug to Feature

#2 Updated by Lukas Zapletal 4 months ago

  • Related to Feature #19389: Change TFTP filename pattern to include unique installation media ID added

#3 Updated by The Foreman Bot 4 months ago

  • Assignee set to Lukas Zapletal
  • Status changed from New to Ready For Testing
  • Pull request https://github.com/theforeman/foreman/pull/6726 added

#4 Updated by Lukas Zapletal 29 days ago

  • Assignee deleted (Lukas Zapletal)
  • Status changed from Ready For Testing to New
  • Description updated (diff)
  • Pull request deleted (https://github.com/theforeman/foreman/pull/6726)

#5 Updated by Lukas Zapletal 29 days ago

  • Subject changed from Perform HTTP HEAD prior downloading kernel/initramdisk to Rethink TFTP naming conventions for PXE files

Also available in: Atom PDF