Compare commits

...

2 Commits

Author SHA1 Message Date
NoNE
a866292279 Deduplicate GraphQL node IDs in update-hashes to fix 502 err (#13064)
* Deduplicate GraphQL node IDs in update-hashes to fix 502

* Bump component_hash_update version to 1.0.1

Avoids stale pip/uv installation cache in CI pipelines
after the GraphQL deduplication fix.
2026-03-02 16:00:13 +05:30
ChengHao Yang
98ac2e40bf Test: fix vm_memory not enough for testing (#13060)
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2026-03-02 13:52:13 +05:30
3 changed files with 36 additions and 32 deletions

View File

@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "kubespray_component_hash_update" name = "kubespray_component_hash_update"
version = "1.0.0" version = "1.0.1"
dependencies = [ dependencies = [
"more_itertools", "more_itertools",
"ruamel.yaml", "ruamel.yaml",

View File

@@ -126,15 +126,20 @@ def download_hash(downloads: {str: {str: Any}}) -> None:
releases, tags = map( releases, tags = map(
dict, partition(lambda r: r[1].get("tags", False), downloads.items()) dict, partition(lambda r: r[1].get("tags", False), downloads.items())
) )
repos = { unique_release_ids = list(dict.fromkeys(
"with_releases": [r["graphql_id"] for r in releases.values()], r["graphql_id"] for r in releases.values()
"with_tags": [t["graphql_id"] for t in tags.values()], ))
} unique_tag_ids = list(dict.fromkeys(
t["graphql_id"] for t in tags.values()
))
response = s.post( response = s.post(
"https://api.github.com/graphql", "https://api.github.com/graphql",
json={ json={
"query": files(__package__).joinpath("list_releases.graphql").read_text(), "query": files(__package__).joinpath("list_releases.graphql").read_text(),
"variables": repos, "variables": {
"with_releases": unique_release_ids,
"with_tags": unique_tag_ids,
},
}, },
headers={ headers={
"Authorization": f"Bearer {os.environ['API_KEY']}", "Authorization": f"Bearer {os.environ['API_KEY']}",
@@ -155,31 +160,30 @@ def download_hash(downloads: {str: {str: Any}}) -> None:
except InvalidVersion: except InvalidVersion:
return None return None
repos = response.json()["data"] resp_data = response.json()["data"]
github_versions = dict( release_versions_by_id = {
zip( gql_id: {
chain(releases.keys(), tags.keys()), v
[ for r in repo["releases"]["nodes"]
{ if not r["isPrerelease"]
v and (v := valid_version(r["tagName"])) is not None
for r in repo["releases"]["nodes"] }
if not r["isPrerelease"] for gql_id, repo in zip(unique_release_ids, resp_data["with_releases"])
and (v := valid_version(r["tagName"])) is not None }
} tag_versions_by_id = {
for repo in repos["with_releases"] gql_id: {
] v
+ [ for t in repo["refs"]["nodes"]
{ if (v := valid_version(t["name"].removeprefix("release-")))
v is not None
for t in repo["refs"]["nodes"] }
if (v := valid_version(t["name"].removeprefix("release-"))) for gql_id, repo in zip(unique_tag_ids, resp_data["with_tags"])
is not None }
} github_versions = {}
for repo in repos["with_tags"] for name, info in releases.items():
], github_versions[name] = release_versions_by_id[info["graphql_id"]]
strict=True, for name, info in tags.items():
) github_versions[name] = tag_versions_by_id[info["graphql_id"]]
)
components_supported_arch = { components_supported_arch = {
component.removesuffix("_checksums"): [a for a in archs.keys()] component.removesuffix("_checksums"): [a for a in archs.keys()]

View File

@@ -2,7 +2,7 @@
# Instance settings # Instance settings
cloud_image: ubuntu-2404 cloud_image: ubuntu-2404
mode: all-in-one mode: all-in-one
vm_memory: 1800 vm_memory: 3072
# Kubespray settings # Kubespray settings
container_manager: crio container_manager: crio