feat: Moved preheatImage struct and parseManifestURL from manager/job/types.go to internal/job/image.go for better encapsulation #4243
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This pull request introduces significant refactoring and modularization of the preheat functionality for container images, primarily by moving the image-related logic to a new internal package and simplifying the
preheat
job implementation. Additionally, it introduces OpenTelemetry tracing for better observability.Refactoring and Modularization
Moved the image-related logic, including manifest parsing, authentication, and layer extraction, to the new
internal/job/image.go
file. This includes functions likeCreatePreheatRequestsByManifestURL
,resolveManifests
, andbuildPreheatRequestFromManifests
as well as supporting types likepreheatImage
andimageAuthClient
.Removed the redundant
GetImageLayers
function and related logic frommanager/job/preheat.go
, replacing it with a call tointernaljob.GetImageLayers
, which encapsulates the same functionality in the new internal module. [1] [2]Observability
tracer
) ininternal/job/job.go
for thejob
package, enabling distributed tracing for preheat-related operations.Code Simplification
manager/job/preheat.go
, as these are now handled within the new internal module. [1] [2]Related Issue
Motivation and Context
Screenshots (if appropriate)
Types of changes
Checklist