updated version checker widget to use glance-helper

This commit is contained in:
2026-01-15 18:25:43 +01:00
parent e9b0576575
commit 4996b76065
+10 -76
View File
@@ -929,73 +929,7 @@ data:
- type: custom-api
title: Container Versions
cache: 5m
url: ${PROMETHEUS_URL}/api/v1/query
parameters:
query: >
max by (image, current_version, latest_version) (
version_checker_is_latest_version{
container_type="container",
image!~"(^|.*/)(busybox|redis|alpine|nginx|mariadb|mysql|valkey)$",
image!~"^longhornio.*$",
image!~"(^|.*/)postgres.*$",
image!~"^registry\\.k8s\\.io/ingress-nginx/.*$",
current_version!~".*sha256:.*",
latest_version!~".*sha256:.*"
} == 0
)
subrequests:
up_to_date:
url: ${PROMETHEUS_URL}/api/v1/query
parameters:
query: >
count(
max by (image) (
version_checker_is_latest_version{
container_type="container",
image!~"(^|.*/)(busybox|redis|alpine|nginx|mariadb|mysql|valkey)$",
image!~"^longhornio.*$",
image!~"(^|.*/)postgres.*$",
image!~"^registry\\.k8s\\.io/ingress-nginx/.*$",
current_version!~".*sha256:.*",
latest_version!~".*sha256:.*"
} == 1
)
) or vector(0)
outdated:
url: ${PROMETHEUS_URL}/api/v1/query
parameters:
query: >
count(
max by (image) (
version_checker_is_latest_version{
container_type="container",
image!~"(^|.*/)(busybox|redis|alpine|nginx|mariadb|mysql|valkey)$",
image!~"^longhornio.*$",
image!~"(^|.*/)postgres.*$",
image!~"^registry\\.k8s\\.io/ingress-nginx/.*$",
current_version!~".*sha256:.*",
latest_version!~".*sha256:.*"
} == 0
)
) or vector(0)
total:
url: ${PROMETHEUS_URL}/api/v1/query
parameters:
query: >
count(
max by (image) (
version_checker_is_latest_version{
container_type="container",
image!~"(^|.*/)(busybox|redis|alpine|nginx|mariadb|mysql|valkey)$",
image!~"^longhornio.*$",
image!~"(^|.*/)postgres.*$",
image!~"^registry\\.k8s\\.io/ingress-nginx/.*$",
current_version!~".*sha256:.*",
latest_version!~".*sha256:.*"
}
)
) or vector(0)
url: http://glance-helper.glance-system.svc.cluster.local:8000/versions
template: |
<style>
.ver-widget { font-size: 0.9em; }
@@ -1074,10 +1008,10 @@ data:
}
</style>
{{ $upToDate := (.Subrequest "up_to_date").JSON.Float "data.result.0.value.1" }}
{{ $outdated := (.Subrequest "outdated").JSON.Float "data.result.0.value.1" }}
{{ $total := (.Subrequest "total").JSON.Float "data.result.0.value.1" }}
{{ $updates := .JSON.Array "data.result" }}
{{ $upToDate := .JSON.Float "summary.up_to_date" }}
{{ $outdated := .JSON.Float "summary.outdated" }}
{{ $total := .JSON.Float "summary.total" }}
{{ $updates := .JSON.Array "outdated" }}
<div class="ver-widget">
{{ if gt $total 0.0 }}
@@ -1099,11 +1033,11 @@ data:
{{ if gt $outdated 0.0 }}
<div class="ver-list">
{{ range $updates }}
<div class="ver-row" title="{{ .String "metric.image" }}">
<span class="ver-img">{{ trimPrefix "ghcr.io/" (trimPrefix "docker.io/" (trimPrefix "lscr.io/" (trimPrefix "quay.io/" (.String "metric.image")))) }}</span>
<span class="ver-cur">{{ .String "metric.current_version" }}</span>
<div class="ver-row" title="{{ .String "image" }}">
<span class="ver-img">{{ trimPrefix "ghcr.io/" (trimPrefix "docker.io/" (trimPrefix "lscr.io/" (trimPrefix "quay.io/" (.String "image")))) }}</span>
<span class="ver-cur">{{ .String "current_version" }}</span>
<span class="ver-arr">→</span>
<span class="ver-lat">{{ .String "metric.latest_version" }}</span>
<span class="ver-lat">{{ .String "latest_version" }}</span>
</div>
{{ end }}
</div>
@@ -1111,7 +1045,7 @@ data:
<div class="ver-allok">✓ All images up to date!</div>
{{ end }}
{{ else }}
<div class="ver-nodata">Waiting for version-checker metrics...<br><small>Check back in a few minutes</small></div>
<div class="ver-nodata">Waiting for version data...<br><small>Check glance-helper logs</small></div>
{{ end }}
</div>