diff --git a/cmd/admin/main.go b/cmd/admin/main.go index 3a50b007..9cbae78c 100644 --- a/cmd/admin/main.go +++ b/cmd/admin/main.go @@ -774,7 +774,7 @@ func main() { } // Initialize service logger initializeLoggers(*flagParams.Service) - // Analyze version and compare with the latest release + // Analyze version and compare with the latest release, runs in a separate goroutine to not delay the service startup go checkLatestRelease() // Service starts! osctrlAdminService() diff --git a/cmd/tls/main.go b/cmd/tls/main.go index 17838099..a8fb0638 100644 --- a/cmd/tls/main.go +++ b/cmd/tls/main.go @@ -135,6 +135,22 @@ func init() { flags = config.InitTLSFlags(flagParams) } +// Retrieve latest release information and compare +func checkLatestRelease() { + log.Info().Msg("Checking for the latest release...") + latest, err := version.RetrieveVersionData(version.VersionDataURL) + if err != nil { + log.Err(err).Msg("Error retrieving latest release information") + return + } + if version.CheckSuggestedRelease(latest.SuggestedRelease) { + log.Info().Msgf("%s (%s) is up to date with the suggested release (%s), latest %s", serviceName, buildVersion, latest.SuggestedRelease, latest.LatestRelease) + } else { + log.Info().Msgf("Please upgrade %s to at least %s. Latest version available: %s (current: %s)", serviceName, latest.SuggestedRelease, latest.LatestRelease, buildVersion) + log.Info().Msgf("Release notes: %s", latest.MoreInformation) + } +} + // Go go! func osctrlService() { // ////////////////////////////// Backend @@ -476,6 +492,8 @@ func main() { } // Initialize service logger initializeLoggers(*flagParams.Service) + // Analyze version and compare with the latest release, runs in a separate goroutine to not delay the service startup + go checkLatestRelease() // Service starts! osctrlService() return nil