Skip to content

Commit dcf23be

Browse files
committed
fix: ignore image digest when doing upgrade-k8s
The `talosctl upgrade-k8s` doesn't support pinning to image digests, but it should ignore any image digests if they already exist in the machine configuration. Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com> (cherry picked from commit 0ab84c2)
1 parent f8a2a9b commit dcf23be

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

pkg/cluster/kubernetes/detect.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,14 @@ func DetectLowestVersion(ctx context.Context, cluster UpgradeProvider, options U
4848
continue
4949
}
5050

51-
idx := strings.LastIndex(container.Image, ":")
52-
if idx == -1 {
51+
image, _, _ := strings.Cut(container.Image, "@")
52+
53+
_, imageTag, ok := strings.Cut(image, ":")
54+
if !ok {
5355
continue
5456
}
5557

56-
v, err := semver.ParseTolerant(strings.TrimLeft(container.Image[idx+1:], "v"))
58+
v, err := semver.ParseTolerant(strings.TrimLeft(imageTag, "v"))
5759
if err != nil {
5860
options.Log("failed to parse %s container version %s", app, err)
5961

pkg/cluster/kubernetes/kubelet.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,8 @@ func upgradeKubeletPatcher(
191191
}
192192

193193
oldImage := kubeletSpec.TypedSpec().Image
194+
oldImage, _, _ = strings.Cut(oldImage, "@") // ignore digest if present
195+
194196
oldSuffix := extractKubeletVersionSuffix(oldImage)
195197
newVersion := options.Path.ToVersion() + oldSuffix
196198

pkg/cluster/kubernetes/talos_managed.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,7 @@ func upgradeStaticPodPatcher(options UpgradeOptions, service string, configResou
390390
}
391391

392392
logUpdate := func(oldImage string) {
393+
oldImage, _, _ = strings.Cut(oldImage, "@") // ignore digest if present
393394
_, version, _ := strings.Cut(oldImage, ":")
394395

395396
if version == "" {

0 commit comments

Comments
 (0)