Skip to content

Commit f060259

Browse files
Fix version warning showing for patch releases of latest supported Kubernetes (#688)
1 parent cb20a4a commit f060259

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

kr8s/_api.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,8 @@ async def _check_version(self) -> None:
292292
)
293293
return
294294

295+
# We only care about major/minor version differences, so we truncate the patch version
296+
version = parse_version(f"{version.major}.{version.minor}")
295297
if (
296298
version < KUBERNETES_MINIMUM_SUPPORTED_VERSION
297299
or version > KUBERNETES_MAXIMUM_SUPPORTED_VERSION

kr8s/tests/test_api.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# SPDX-License-Identifier: BSD 3-Clause License
33
import queue
44
import threading
5+
import warnings
56
from contextlib import asynccontextmanager
67
from unittest.mock import AsyncMock
78

@@ -11,6 +12,10 @@
1112
import kr8s
1213
import kr8s.asyncio
1314
from kr8s._async_utils import anext
15+
from kr8s._constants import (
16+
KUBERNETES_MAXIMUM_SUPPORTED_VERSION,
17+
KUBERNETES_MINIMUM_SUPPORTED_VERSION,
18+
)
1419
from kr8s._exceptions import APITimeoutError
1520
from kr8s.asyncio.objects import Pod, Service, Table
1621
from kr8s.objects import Pod as SyncPod
@@ -520,6 +525,7 @@ def test_create_sync(example_pod_spec, example_service_spec):
520525
"v1.27.0",
521526
"1.27.0-eks-113cf36",
522527
"v1.27.0-eks-113cf36",
528+
f"{KUBERNETES_MAXIMUM_SUPPORTED_VERSION.major}.{KUBERNETES_MAXIMUM_SUPPORTED_VERSION.minor+1}",
523529
"asdkjhaskdjhasd",
524530
],
525531
)
@@ -532,6 +538,25 @@ async def test_bad_kubernetes_version(version):
532538
api.async_version = keep
533539

534540

541+
@pytest.mark.parametrize(
542+
"version",
543+
[
544+
str(KUBERNETES_MINIMUM_SUPPORTED_VERSION),
545+
str(KUBERNETES_MAXIMUM_SUPPORTED_VERSION),
546+
f"{KUBERNETES_MAXIMUM_SUPPORTED_VERSION.major}.{KUBERNETES_MAXIMUM_SUPPORTED_VERSION.minor}.15",
547+
f"{KUBERNETES_MINIMUM_SUPPORTED_VERSION}-eks-113cf36",
548+
],
549+
)
550+
async def test_good_kubernetes_version(version):
551+
api = await kr8s.asyncio.api()
552+
keep = api.async_version
553+
api.async_version = AsyncMock(return_value={"gitVersion": version})
554+
with warnings.catch_warnings(record=True) as w:
555+
await api._check_version()
556+
assert w == []
557+
api.async_version = keep
558+
559+
535560
async def test_crd_caching(example_crd_spec):
536561
api = await kr8s.asyncio.api()
537562

0 commit comments

Comments
 (0)