chore: add comments and TODOs about the disabled image digest resolver

This commit is contained in:
Pavel Sviderski
2025-03-27 14:12:20 +10:00
parent 6e7fe405ef
commit 7c7530f977
2 changed files with 14 additions and 4 deletions
+6 -4
View File
@@ -17,14 +17,16 @@ const (
ServiceModeReplicated = "replicated" ServiceModeReplicated = "replicated"
ServiceModeGlobal = "global" ServiceModeGlobal = "global"
// PullPolicyAlways means the latest image is always pulled from the registry. // PullPolicyAlways means the image is always pulled from the registry.
PullPolicyAlways = "always" PullPolicyAlways = "always"
// PullPolicyMissing means the latest image is pulled from the registry only if it's not available in the cluster // PullPolicyMissing means the image is pulled from the registry only if it's not available on the machine where
// (missing on all machines). If the image is available on any machine, its registry digest is used which may result // a container is started. This is the default pull policy.
// in pulling the image on machines where it's not available. This is the default pull policy. // TODO: make each machine aware of the images on other machines and it possible to pull from them.
// Pull from the registry only if the image is missing on all machines.
PullPolicyMissing = "missing" PullPolicyMissing = "missing"
// PullPolicyNever means the image is never pulled from the registry. A service with this pull policy can only be // PullPolicyNever means the image is never pulled from the registry. A service with this pull policy can only be
// deployed to machines where the image is already available. // deployed to machines where the image is already available.
// TODO: see the TODO above for PullPolicyMissing. Pull from other machines in the cluster if available.
PullPolicyNever = "never" PullPolicyNever = "never"
) )
+8
View File
@@ -151,6 +151,14 @@ type ImageDigestResolver struct {
Client ImageResolverClient Client ImageResolverClient
} }
// Resolve resolves the image to the image with the digest according to the pull policy:
// - always: Fetch the latest digest for the image tag in the registry.
// - missing: Find the latest image matching the tag on any machine and use its digest, if it exists.
// When there is no matching image on any machine, it behaves like 'always'.
// - never: !Not implemented! Similar to 'missing' but when there is no matching image on any machine,
// it returns an error.
//
// If the image is already pinned to a digest, it is returned as is.
func (r *ImageDigestResolver) Resolve(image, policy string) (string, error) { func (r *ImageDigestResolver) Resolve(image, policy string) (string, error) {
if r.Ctx == nil { if r.Ctx == nil {
r.Ctx = context.Background() r.Ctx = context.Background()