diff --git a/api/internal/endpointutils/endpointutils.go b/api/internal/endpointutils/endpointutils.go index ca9f34ad1..68120355b 100644 --- a/api/internal/endpointutils/endpointutils.go +++ b/api/internal/endpointutils/endpointutils.go @@ -234,7 +234,7 @@ func getEndpointCheckinInterval(endpoint *portainer.Endpoint, settings *portaine {endpoint.Edge.SnapshotInterval, settings.Edge.SnapshotInterval}, } - for i := range len(intervals) { + for i := range intervals { effectiveInterval := intervals[i][0] if effectiveInterval <= 0 { effectiveInterval = intervals[i][1] diff --git a/api/internal/upgrade/upgrade_docker.go b/api/internal/upgrade/upgrade_docker.go index f7f4ecc59..7f5a24528 100644 --- a/api/internal/upgrade/upgrade_docker.go +++ b/api/internal/upgrade/upgrade_docker.go @@ -36,10 +36,12 @@ func (service *service) upgradeDocker(environment *portainer.Endpoint, licenseKe return err } + updaterImage := getUpdaterImage() + composeFile, err := mustache.RenderFile(templateName, map[string]string{ "image": image, "skip_pull_image": skipPullImageEnv, - "updater_image": os.Getenv(updaterImageEnvVar), + "updater_image": updaterImage, "license": licenseKey, "envType": envType, }) @@ -115,3 +117,11 @@ func (service *service) checkImageForDocker(ctx context.Context, environment *po return nil } } + +func getUpdaterImage() string { + updaterImage := os.Getenv(updaterImageEnvVar) + if updaterImage == "" { + updaterImage = "portainer/portainer-updater:" + portainer.APIVersion + } + return updaterImage +} diff --git a/api/internal/upgrade/upgrade_docker_test.go b/api/internal/upgrade/upgrade_docker_test.go new file mode 100644 index 000000000..f14d16ea3 --- /dev/null +++ b/api/internal/upgrade/upgrade_docker_test.go @@ -0,0 +1,29 @@ +package upgrade + +import ( + "os" + "testing" + + portainer "github.com/portainer/portainer/api" +) + +func TestGetUpdaterImage(t *testing.T) { + t.Run("updater image Environment Variable is set", func(t *testing.T) { + os.Setenv(updaterImageEnvVar, "portainer/portainer-updater:pr111") + + expect := "portainer/portainer-updater:pr111" + updaterImage := getUpdaterImage() + if updaterImage != expect { + t.Fatalf("expected %v, got %v", expect, updaterImage) + } + }) + + t.Run("updater image Environment Variable not set", func(t *testing.T) { + os.Unsetenv(updaterImageEnvVar) + expect := "portainer/portainer-updater:" + portainer.APIVersion + updaterImage := getUpdaterImage() + if updaterImage != expect { + t.Fatalf("expected %v, got %v", expect, updaterImage) + } + }) +}