mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2025-12-13 21:34:40 +03:00
download: Support for gvisor (part 2)
Gvisor releases, besides only being tags, have some particularities: - they are of the form yyyymmdd.p -> this get interpreted as a yaml float, so we need to explicitely convert to string to make it work. - there is no semver-like attached to the version numbers, but the API (= OCI container runtime interface) is expected to be stable (see linked discussion) - some older tags don't have hashs for some archs Link: https://groups.google.com/g/gvisor-users/c/SxMeHt0Yb6Y/m/Xtv7seULCAAJ
This commit is contained in:
@@ -239,17 +239,22 @@ def download_hash(only_downloads: [str]) -> None:
|
||||
new_versions = {
|
||||
c:
|
||||
{v for v in github_versions[c]
|
||||
if any(v > version and (v.major, v.minor) == (version.major, version.minor)
|
||||
for version in [max(minors) for _, minors in groupby(cur_v, lambda v: (v.minor, v.major))])
|
||||
# only get:
|
||||
# - patch versions (no minor or major bump)
|
||||
# - newer ones (don't get old patch version)
|
||||
if any(v > version
|
||||
and (
|
||||
(v.major, v.minor) == (version.major, version.minor)
|
||||
or c.startswith('gvisor')
|
||||
)
|
||||
for version in [max(minors) for _, minors in groupby(cur_v, lambda v: (v.minor, v.major))]
|
||||
)
|
||||
# only get:
|
||||
# - patch versions (no minor or major bump) (exception for gvisor which does not have a major.minor.patch scheme
|
||||
# - newer ones (don't get old patch version)
|
||||
}
|
||||
- set(cur_v)
|
||||
for component, archs in data.items()
|
||||
if (c := component.removesuffix('_checksums')) in downloads.keys()
|
||||
# this is only to bound cur_v in the scope
|
||||
and (cur_v := sorted(Version(k) for k in next(archs.values().__iter__()).keys()))
|
||||
and (cur_v := sorted(Version(str(k)) for k in next(archs.values().__iter__()).keys()))
|
||||
}
|
||||
|
||||
def get_hash(component: str, version: Version, arch: str):
|
||||
@@ -280,7 +285,7 @@ def download_hash(only_downloads: [str]) -> None:
|
||||
data[c] = {arch :
|
||||
{v :
|
||||
versions[v] for v in sorted(versions.keys(),
|
||||
key=Version,
|
||||
key=lambda v: Version(str(v)),
|
||||
reverse=True)
|
||||
}
|
||||
for arch, versions in data[c].items()
|
||||
|
||||
@@ -19,7 +19,7 @@ query($repoWithReleases: [ID!]!, $repoWithTags: [ID!]!) {
|
||||
|
||||
... on Repository {
|
||||
nameWithOwner
|
||||
refs(refPrefix: "refs/tags/", last: 100) {
|
||||
refs(refPrefix: "refs/tags/", last: 25) {
|
||||
nodes {
|
||||
name
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user