diff --git a/check_versions.py b/check_versions.py index 449954b..dad96b2 100644 --- a/check_versions.py +++ b/check_versions.py @@ -1,4 +1,3 @@ -import re #!/usr/bin/env python3 """ k8s-version-tracker: Weekly Kubernetes image version checker and Mattermost notifier. @@ -9,6 +8,8 @@ notification with the weekly report. """ import os +import re +import json import logging import subprocess from dataclasses import dataclass, field @@ -16,7 +17,7 @@ from typing import Optional from datetime import datetime, timezone import requests -from kubernetes import config +from kubernetes import client, config from packaging.version import Version, InvalidVersion logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s") @@ -120,6 +121,7 @@ def parse_image_ref(image: str) -> ImageInfo: def _semver_tags(tags: list[str], current_tag: str) -> Optional[str]: """From a list of tags, return the latest stable semver tag comparable to current.""" norm = current_tag.lstrip("v") + has_v_prefix = current_tag.startswith("v") # Detect suffix pattern (e.g. '-alpine', '-amd64') suffix_match = re.search(r"(-[a-zA-Z][a-zA-Z0-9._-]*)$", norm) diff --git a/request_upgrades.py b/request_upgrades.py index 77f8e47..3984685 100644 --- a/request_upgrades.py +++ b/request_upgrades.py @@ -8,7 +8,7 @@ the tag updates. ArgoCD auto-syncs from there — no direct kubectl patching. """ import os -import re + import shutil import subprocess import tempfile @@ -18,7 +18,7 @@ from datetime import datetime, timezone from pathlib import Path import requests -from kubernetes import client, config +from kubernetes import config from packaging.version import Version, InvalidVersion from check_versions import ( diff --git a/web.py b/web.py index 39e6548..cb5213a 100644 --- a/web.py +++ b/web.py @@ -12,7 +12,7 @@ Routes: """ import logging -import os + from concurrent.futures import ThreadPoolExecutor, as_completed from datetime import datetime, timezone