diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1dfcd1cf7d..c2e49c2cc8 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -25,12 +25,7 @@ updates: # Kubernetes version matrix release pins - directories: - - "/images/capi/packer/config/kubernetes-version-dependencies/release-1-31" - - "/images/capi/packer/config/kubernetes-version-dependencies/release-1-32" - - "/images/capi/packer/config/kubernetes-version-dependencies/release-1-33" - - "/images/capi/packer/config/kubernetes-version-dependencies/release-1-34" - - "/images/capi/packer/config/kubernetes-version-dependencies/release-1-35" - - "/images/capi/packer/config/kubernetes-version-dependencies/release-1-36" + - "/images/capi/packer/config/kubernetes-version-dependencies/release-*/*" package-ecosystem: "gomod" open-pull-requests-limit: 5 schedule: @@ -41,6 +36,8 @@ updates: groups: kubernetes-version-matrix-release-pins: patterns: [ "*" ] + allow: + - dependency-type: "direct" ignore: - dependency-name: "github.com/containerd/containerd/v2" update-types: @@ -72,7 +69,7 @@ updates: # Kubernetes version matrix rolling latest - directories: - - "/images/capi/packer/config/kubernetes-version-dependencies/latest" + - "/images/capi/packer/config/kubernetes-version-dependencies/latest/*" package-ecosystem: "gomod" open-pull-requests-limit: 3 schedule: @@ -83,6 +80,8 @@ updates: groups: kubernetes-version-matrix-latest: patterns: [ "*" ] + allow: + - dependency-type: "direct" ignore: - dependency-name: "github.com/containerd/containerd/v2" update-types: diff --git a/.github/workflows/update-kubernetes-version-matrix.yaml b/.github/workflows/update-kubernetes-version-matrix.yaml index 24f303ccd2..ecf2edccd1 100644 --- a/.github/workflows/update-kubernetes-version-matrix.yaml +++ b/.github/workflows/update-kubernetes-version-matrix.yaml @@ -43,7 +43,7 @@ jobs: exit 1 fi - tracking_pattern='^images/capi/packer/config/kubernetes-version-dependencies/(latest|release-[0-9]+-[0-9]+)/go\.(mod|sum)$' + tracking_pattern='^images/capi/packer/config/kubernetes-version-dependencies/(latest|release-[0-9]+-[0-9]+)/(containerd|cni-plugins|runc|kubernetes|cri-tools)/go\.(mod|sum)$' invalid_files="$( printf '%s\n' "${changed_files}" | grep -Ev "${tracking_pattern}" || true @@ -78,7 +78,7 @@ jobs: fi generated_pattern='^images/capi/packer/config/kubernetes-version-(latest|matrix)\.yaml$' - tracking_pattern='^images/capi/packer/config/kubernetes-version-dependencies/(latest|release-[0-9]+-[0-9]+)/go\.(mod|sum)$' + tracking_pattern='^images/capi/packer/config/kubernetes-version-dependencies/(latest|release-[0-9]+-[0-9]+)/(containerd|cni-plugins|runc|kubernetes|cri-tools)/go\.(mod|sum)$' invalid_files="$( git diff --name-only | grep -Ev "(${generated_pattern})|(${tracking_pattern})" || true diff --git a/docs/book/src/capi/kubernetes-version-matrix.md b/docs/book/src/capi/kubernetes-version-matrix.md index 9a74cbce94..1c6b02b6fe 100644 --- a/docs/book/src/capi/kubernetes-version-matrix.md +++ b/docs/book/src/capi/kubernetes-version-matrix.md @@ -39,15 +39,57 @@ images/capi/hack/kubernetes-version-matrix.py update --write images/capi/hack/kubernetes-version-matrix.py verify ``` -Generated Go module manifests under -`images/capi/packer/config/kubernetes-version-dependencies/` let Dependabot -track the same versions as module dependencies. Release-pinned entries accept -patch updates only. The rolling `latest` entry can move to newer minor versions. -Kubernetes releases are tracked through `k8s.io/client-go` module tags and then -mapped back to Kubernetes `v1.x.y` versions in the matrix. +Dependabot tracks the same versions as Go module dependencies. Every tracked +dependency gets its own synthetic module under +`images/capi/packer/config/kubernetes-version-dependencies/`: -When Dependabot updates those manifests, the -`Update Kubernetes version matrix` workflow regenerates the YAML files with: +```text +kubernetes-version-dependencies/ + latest/ # rolling entry + cni-plugins/ # github.com/containernetworking/plugins + containerd/ # github.com/containerd/containerd/v2 + cri-tools/ # sigs.k8s.io/cri-tools + kubernetes/ # k8s.io/client-go + runc/ # github.com/opencontainers/runc + release-1-31/ # one directory per release pin, same five modules + ... +``` + +Each module requires exactly one dependency, so minimal version selection +cannot let one tracked dependency raise the pin of another. Release-pinned +entries accept patch updates only. The rolling `latest` entry can move to newer +minor versions. Kubernetes releases are tracked through `k8s.io/client-go` +module tags and then mapped back to Kubernetes `v1.x.y` versions in the matrix. + +Each module also has a `tools.go` file with a single blank import. Dependabot +always runs `go mod tidy` after an update, and tidy drops requirements that no +package imports, which would empty the manifest. The imported package is the +lightest one in the tracked module so that tidy records no indirect +requirements. Because tidy also rewrites the `go` directive and may add a +`toolchain` line, `verify` checks the required module and version rather than +comparing the whole file against a template. It also checks that go.sum carries +both `h1:` checksums for the pinned version, so a go.mod left ahead of its +go.sum fails instead of passing quietly. + +`kubernetes_cni_semver` pins the CNI plugins tarball and is tracked +independently of `kubernetes_cni_deb_version` and +`kubernetes_cni_rpm_version`, which pin the distro `kubernetes-cni` package. +The two are versioned separately upstream, so `update --write` refreshes the +package versions and carries the tarball version over unchanged. A CNI module +update can therefore advance `kubernetes_cni_semver` before the matching +`kubernetes-cni` package is published: URL-based targets then install the newer +tarball while package-based targets keep the pinned package version. + +More generally, `update --write` only rewrites what it resolves from upstream +release metadata: the Kubernetes version fields, the kubernetes-cni package +versions and crictl. `containerd_version`, `runc_version` and +`kubernetes_cni_semver` are carried over. This holds for the rolling `latest` +entry too, which is refreshed from its own values rather than from the release +pin for the same minor, so a version Dependabot moved ahead on `latest` is +never rolled back by a refresh. + +When Dependabot updates the modules, the `Update Kubernetes version matrix` +workflow regenerates the YAML files with: ```sh images/capi/hack/kubernetes-version-matrix.py sync-tracking --write @@ -55,5 +97,21 @@ images/capi/hack/kubernetes-version-matrix.py verify ``` Run `update --write` when refreshing directly from upstream release and package -metadata. It updates the YAML files and regenerates the Dependabot tracking -manifests. +metadata. It updates the YAML files and then rewrites and tidies any tracking +module whose version changed. + +Bootstrap the tracking modules for a new release selector after adding its +entry to the matrix with: + +```sh +images/capi/hack/kubernetes-version-matrix.py render-tracking --write +``` + +`render-tracking --write` and `update --write` need the `go` command because +they regenerate each changed module with `go mod tidy`. Both check for it up +front and exit before touching a file, so a missing toolchain cannot leave a +go.mod ahead of its go.sum. `verify` and `sync-tracking` do not need `go`. +`verify` needs no network access beyond a `yq` binary, which `hack/ensure-yq.sh` +downloads when one is not already installed. `sync-tracking` only reaches the +network when the tracked Kubernetes version moved and the Debian package +revision has to be resolved again. diff --git a/images/capi/hack/kubernetes-version-matrix.py b/images/capi/hack/kubernetes-version-matrix.py index 4a1325b7e6..cb30922905 100755 --- a/images/capi/hack/kubernetes-version-matrix.py +++ b/images/capi/hack/kubernetes-version-matrix.py @@ -20,6 +20,7 @@ import argparse import difflib +import fnmatch import gzip import importlib.util import json @@ -31,7 +32,7 @@ import urllib.request import xml.etree.ElementTree as ET from pathlib import Path -from typing import Any +from typing import Any, NamedTuple sys.dont_write_bytecode = True @@ -45,6 +46,7 @@ "sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies" ) TRACKING_GO_VERSION = "1.24" +DEPENDABOT_FILE = REPO_ROOT / ".github/dependabot.yml" KUBERNETES_DEB_RESOLVER = ( REPO_ROOT / ".github/actions/configure-k8s-version/resolve-kubernetes-deb-version.py" ) @@ -71,13 +73,70 @@ "kubernetes_series", "runc_version", ) +LICENSE_HEADER = """// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +""" + + +class TrackedModule(NamedTuple): + """One synthetic Go module that tracks a single matrix dependency. + + ``package`` is the lightest importable package in ``module``. It only has + to pull the module into the requirement graph, so the fewer transitive + imports it has, the fewer indirect requirements ``go mod tidy`` records. + """ + + name: str + module: str + entry_key: str + package: str + + TRACKED_GO_MODULES = ( - ("github.com/containerd/containerd/v2", "containerd_version"), - ("github.com/containernetworking/plugins", "kubernetes_cni_semver"), - ("github.com/opencontainers/runc", "runc_version"), - ("k8s.io/client-go", "kubernetes_semver"), - ("sigs.k8s.io/cri-tools", "crictl_version"), + TrackedModule( + "containerd", + "github.com/containerd/containerd/v2", + "containerd_version", + "github.com/containerd/containerd/v2/version", + ), + TrackedModule( + "cni-plugins", + "github.com/containernetworking/plugins", + "kubernetes_cni_semver", + "github.com/containernetworking/plugins/pkg/utils/buildversion", + ), + TrackedModule( + "runc", + "github.com/opencontainers/runc", + "runc_version", + "github.com/opencontainers/runc/types/features", + ), + TrackedModule( + "kubernetes", + "k8s.io/client-go", + "kubernetes_semver", + "k8s.io/client-go/util/homedir", + ), + TrackedModule( + "cri-tools", + "sigs.k8s.io/cri-tools", + "crictl_version", + "sigs.k8s.io/cri-tools/pkg/version", + ), ) +TOOLS_IMPORT_RE = re.compile(r'^\s*_\s+"([^"]+)"', re.MULTILINE) +GO_MOD_BLOCK_RE = re.compile(r"(require|exclude|replace|retract)\s*\(") def ensure_yq() -> str: @@ -237,6 +296,15 @@ def resolve_crictl_version(minor: str) -> str: def refresh_entry(selector: str, current: dict[str, Any]) -> dict[str, Any]: + """Refresh the pins one selector resolves from upstream release metadata. + + Only the Kubernetes version fields, the kubernetes-cni package versions and + crictl are refreshed here. ``containerd_version``, ``runc_version`` and + ``kubernetes_cni_semver`` are deliberately carried over from ``current``: + Dependabot tracks each of them in its own tracking module, and the CNI + plugins tarball in particular does not have to match the kubernetes-cni + package version. + """ kubernetes_semver = stable_kubernetes_version(selector) kubernetes_version = kubernetes_semver.removeprefix("v") cni_rpm_version = resolve_cni_rpm_version(selector) @@ -246,7 +314,6 @@ def refresh_entry(selector: str, current: dict[str, Any]) -> dict[str, Any]: "crictl_version": resolve_crictl_version(selector), "kubernetes_cni_deb_version": resolve_cni_deb_version(selector), "kubernetes_cni_rpm_version": cni_rpm_version, - "kubernetes_cni_semver": f"v{cni_rpm_version}", "kubernetes_deb_version": resolve_kubernetes_deb_version(kubernetes_version), "kubernetes_rpm_version": kubernetes_version, "kubernetes_semver": kubernetes_semver, @@ -265,8 +332,11 @@ def refresh_matrix() -> tuple[dict[str, dict[str, Any]], dict[str, Any]]: latest_semver = stable_kubernetes_version() latest_selector = ".".join(latest_semver.removeprefix("v").split(".")[:2]) - latest_base = refreshed_pins.get(latest_selector, latest) - refreshed_latest = refresh_entry(latest_selector, latest_base) + # Refresh the rolling entry from its own values, never from the release pin + # for the same minor. containerd, runc and the CNI plugins tarball are + # tracked separately for latest and may legitimately run ahead of the pin, + # so seeding from the pin would silently roll them back. + refreshed_latest = refresh_entry(latest_selector, latest) return refreshed_pins, refreshed_latest @@ -336,8 +406,12 @@ def tracking_selector_name(selector: str) -> str: return f"release-{selector.replace('.', '-')}" -def tracking_go_mod_path(selector: str) -> Path: - return TRACKING_DIR / tracking_selector_name(selector) / "go.mod" +def tracking_module_dir(selector: str, tracked: TrackedModule) -> Path: + return TRACKING_DIR / tracking_selector_name(selector) / tracked.name + + +def tracking_module_path(selector: str, tracked: TrackedModule) -> str: + return f"{TRACKING_MODULE_PREFIX}/{tracking_selector_name(selector)}/{tracked.name}" def kubernetes_module_version(kubernetes_semver: Any) -> str: @@ -365,81 +439,330 @@ def go_module_version(module: str, value: Any) -> str: return f"v{version}" -def render_tracking_go_mod(selector: str, entry: dict[str, Any]) -> str: - module_name = f"{TRACKING_MODULE_PREFIX}/{tracking_selector_name(selector)}" - lines = [ - f"module {module_name}", - "", - f"go {TRACKING_GO_VERSION}", - "", - "require (", - ] - for module, entry_key in TRACKED_GO_MODULES: - lines.append(f"\t{module} {go_module_version(module, entry[entry_key])}") - lines.append(")") - return "\n".join(lines) + "\n" +def render_tracking_go_mod(module_path: str, tracked: TrackedModule, version: str) -> str: + return ( + f"module {module_path}\n" + "\n" + f"go {TRACKING_GO_VERSION}\n" + "\n" + f"require {tracked.module} {version}\n" + ) + + +def render_tracking_tools_go(tracked: TrackedModule) -> str: + return LICENSE_HEADER + ( + "\n" + "//go:build tools\n" + "\n" + "// Package tools keeps the tracked module in go.mod. Dependabot always\n" + "// runs go mod tidy after an update, and tidy drops requirements that no\n" + "// package imports.\n" + "package tools\n" + "\n" + "import (\n" + f'\t_ "{tracked.package}"\n' + ")\n" + ) -def render_tracking_go_mods( +def tracking_entries( release_pins: dict[str, dict[str, Any]], latest: dict[str, Any] -) -> dict[Path, str]: - manifests = { - tracking_go_mod_path(selector): render_tracking_go_mod(selector, release_pins[selector]) +) -> list[tuple[str, dict[str, Any]]]: + entries = [ + (selector, release_pins[selector]) for selector in sorted(release_pins, key=version_sort_key) - } - manifests[tracking_go_mod_path("latest")] = render_tracking_go_mod("latest", latest) - return manifests + ] + entries.append(("latest", latest)) + return entries -def read_tracking_go_mod(selector: str) -> dict[str, str]: - path = tracking_go_mod_path(selector) - if not path.exists(): - raise FileNotFoundError(f"{path} does not exist") +def expected_tracking_modules( + release_pins: dict[str, dict[str, Any]], latest: dict[str, Any] +) -> dict[Path, tuple[str, TrackedModule, str]]: + """Map every expected module directory to its module path, dependency and version.""" + modules: dict[Path, tuple[str, TrackedModule, str]] = {} + for selector, entry in tracking_entries(release_pins, latest): + for tracked in TRACKED_GO_MODULES: + modules[tracking_module_dir(selector, tracked)] = ( + tracking_module_path(selector, tracked), + tracked, + go_module_version(tracked.module, entry[tracked.entry_key]), + ) + return modules - versions: dict[str, str] = {} + +def parse_go_mod(path: Path) -> tuple[str, dict[str, str]]: + """Return the module path and the direct requirements of a go.mod file.""" + module_path = "" + requires: dict[str, str] = {} in_require_block = False - for line in path.read_text().splitlines(): - stripped = line.strip() - if not stripped or stripped.startswith("//"): + for raw_line in path.read_text().splitlines(): + code, _, comment = raw_line.partition("//") + line = code.strip() + if not line: + continue + if line.startswith("module "): + module_path = line.removeprefix("module ").strip() continue - if stripped == "require (": + if in_require_block: + if line == ")": + in_require_block = False + continue + elif line == "require (": in_require_block = True continue - if in_require_block and stripped == ")": - in_require_block = False + elif line.startswith("require "): + line = line.removeprefix("require ").strip() + if line == "(": + in_require_block = True + continue + else: continue - if stripped.startswith("require "): - stripped = stripped.removeprefix("require ").strip() - if not in_require_block and " " not in stripped: + if "indirect" in comment: continue - parts = stripped.split() + parts = line.split() if len(parts) >= 2: - versions[parts[0]] = parts[1] - return versions + requires[parts[0]] = parts[1] + return module_path, requires -def entry_from_tracking(selector: str, current: dict[str, Any]) -> dict[str, Any]: - versions = read_tracking_go_mod(selector) - missing_modules = [ - module for module, _ in TRACKED_GO_MODULES if module not in versions +def go_sum_modules(path: Path) -> set[tuple[str, str]]: + """Return the (module, version) pairs a go.sum records an h1: checksum for. + + ``version`` keeps the ``/go.mod`` suffix of the manifest-only lines, so a + caller can tell the two kinds of checksum apart. + """ + recorded = set() + for line in path.read_text().splitlines(): + parts = line.split() + if len(parts) == 3 and parts[2].startswith("h1:"): + recorded.add((parts[0], parts[1])) + return recorded + + +def tracking_tools_packages(path: Path) -> list[str]: + return TOOLS_IMPORT_RE.findall(path.read_text()) + + +def set_go_mod_require(path: Path, module: str, version: str) -> bool: + """Rewrite the direct requirement on ``module`` in place. + + Every other line is left alone, including requirements marked + ``// indirect`` and any mention of the module inside an exclude, replace or + retract block. + """ + pattern = re.compile(rf"^(\s*(?:require\s+)?){re.escape(module)}\s+\S+(.*)$") + lines = path.read_text().splitlines(keepends=True) + block = "" + changed = False + for index, raw_line in enumerate(lines): + line = raw_line.rstrip("\n") + code, _, comment = line.partition("//") + stripped = code.strip() + + if block: + if stripped == ")": + block = "" + in_require = block == "require" + elif opened := GO_MOD_BLOCK_RE.fullmatch(stripped): + block = opened.group(1) + continue + else: + in_require = stripped.startswith("require ") + + if not in_require or "indirect" in comment: + continue + match = pattern.match(line) + if not match: + continue + replacement = f"{match.group(1)}{module} {version}{match.group(2)}" + if replacement != line: + lines[index] = replacement + "\n" + changed = True + if changed: + path.write_text("".join(lines)) + return changed + + +def missing_go_error() -> str | None: + """Return an error message when the go command is unavailable, else None.""" + if shutil.which("go"): + return None + return ( + "the go command is required to write tracking modules because each one is " + "regenerated with 'go mod tidy'; install Go and rerun" + ) + + +def go_mod_tidy(directory: Path) -> None: + go = shutil.which("go") + if not go: + raise RuntimeError(f"{missing_go_error()} (needed for {directory})") + subprocess.run([go, "mod", "tidy"], check=True, cwd=directory) + + +def tracking_module_issues( + directory: Path, module_path: str, tracked: TrackedModule, version: str +) -> list[str]: + """Report why a tracking module does not match the matrix; empty when it does.""" + go_mod = directory / "go.mod" + if not go_mod.exists(): + return [f"{go_mod}: missing Dependabot tracking module"] + + issues = [] + current_module, requires = parse_go_mod(go_mod) + if current_module != module_path: + issues.append(f"{go_mod}: module is {current_module!r}, expected {module_path!r}") + if tracked.module not in requires: + issues.append(f"{go_mod}: {tracked.module} is not a direct requirement") + elif requires[tracked.module] != version: + issues.append( + f"{go_mod}: {tracked.module} is {requires[tracked.module]}, expected {version}" + ) + go_sum = directory / "go.sum" + if not go_sum.exists(): + issues.append(f"{go_sum}: missing checksum file") + else: + recorded = go_sum_modules(go_sum) + issues.extend( + f"{go_sum}: no h1: checksum for {tracked.module} {version}{suffix}" + for suffix in ("", "/go.mod") + if (tracked.module, f"{version}{suffix}") not in recorded + ) + + tools_go = directory / "tools.go" + if not tools_go.exists(): + issues.append(f"{tools_go}: missing tools file") + elif not any( + package == tracked.module or package.startswith(f"{tracked.module}/") + for package in tracking_tools_packages(tools_go) + ): + issues.append(f"{tools_go}: no blank import of a {tracked.module} package") + return issues + + +def unexpected_tracking_files(expected_dirs: set[Path]) -> list[str]: + if not TRACKING_DIR.exists(): + return [] + return [ + f"{path}: unexpected Dependabot tracking file" + for path in sorted(TRACKING_DIR.rglob("*")) + if path.is_file() and path.parent not in expected_dirs ] - if missing_modules: + + +def dependabot_gomod_directories() -> list[str]: + config = yq_json(DEPENDABOT_FILE, ".") + patterns = [] + for update in config.get("updates") or []: + if update.get("package-ecosystem") != "gomod": + continue + if directory := update.get("directory"): + patterns.append(directory) + patterns.extend(update.get("directories") or []) + return patterns + + +def dependabot_coverage_issues(expected_dirs: set[Path]) -> list[str]: + """Check that the gomod entries cover every tracking module and nothing else.""" + tracking_prefix = f"/{TRACKING_DIR.relative_to(REPO_ROOT).as_posix()}/" + wanted = sorted(f"/{path.relative_to(REPO_ROOT).as_posix()}" for path in expected_dirs) + patterns = dependabot_gomod_directories() + + issues = [] + for directory in wanted: + if not any(fnmatch.fnmatch(directory, pattern) for pattern in patterns): + issues.append(f"{DEPENDABOT_FILE}: no gomod entry covers {directory}") + for pattern in patterns: + if not pattern.startswith(tracking_prefix): + issues.append( + f"{DEPENDABOT_FILE}: gomod entry {pattern!r} points outside {tracking_prefix}" + ) + elif not any(fnmatch.fnmatch(directory, pattern) for directory in wanted): + issues.append( + f"{DEPENDABOT_FILE}: gomod entry {pattern!r} matches no tracking module" + ) + return issues + + +def write_tracking_module( + directory: Path, module_path: str, tracked: TrackedModule, version: str +) -> None: + directory.mkdir(parents=True, exist_ok=True) + go_mod = directory / "go.mod" + current_module, requires = parse_go_mod(go_mod) if go_mod.exists() else ("", {}) + if current_module == module_path and tracked.module in requires: + set_go_mod_require(go_mod, tracked.module, version) + else: + go_mod.write_text(render_tracking_go_mod(module_path, tracked, version)) + (directory / "tools.go").write_text(render_tracking_tools_go(tracked)) + go_mod_tidy(directory) + + +def sync_tracking_modules( + release_pins: dict[str, dict[str, Any]], latest: dict[str, Any], write: bool +) -> bool: + """Bring the tracking modules in line with the matrix. True when they changed.""" + expected = expected_tracking_modules(release_pins, latest) + changed = False + for directory, (module_path, tracked, version) in sorted(expected.items()): + issues = tracking_module_issues(directory, module_path, tracked, version) + if not issues: + continue + changed = True + if write: + write_tracking_module(directory, module_path, tracked, version) + continue + for issue in issues: + print(issue, file=sys.stderr) + + for stale in unexpected_tracking_files(set(expected)): + changed = True + print(stale, file=sys.stderr) + return changed + + +def read_tracking_versions(selector: str) -> dict[str, str]: + versions: dict[str, str] = {} + missing = [] + for tracked in TRACKED_GO_MODULES: + go_mod = tracking_module_dir(selector, tracked) / "go.mod" + if not go_mod.exists(): + missing.append(str(go_mod)) + continue + _, requires = parse_go_mod(go_mod) + if tracked.module not in requires: + missing.append(f"{go_mod} ({tracked.module})") + continue + versions[tracked.module] = requires[tracked.module] + if missing: raise ValueError( - f"{selector}: tracking manifest missing modules: {', '.join(missing_modules)}" + f"{selector}: tracking modules missing requirements: {', '.join(missing)}" ) + return versions + + +def entry_from_tracking(selector: str, current: dict[str, Any]) -> dict[str, Any]: + """Fold the versions Dependabot maintains back into one matrix entry. + The kubernetes-cni package versions are not touched. They pin the distro + package, which is versioned separately from the CNI plugins tarball that + ``kubernetes_cni_semver`` selects. + """ + versions = read_tracking_versions(selector) kubernetes_semver = kubernetes_semver_from_module(versions["k8s.io/client-go"]) kubernetes_version = kubernetes_semver.removeprefix("v") kubernetes_minor = ".".join(kubernetes_version.split(".")[:2]) if selector != "latest" and kubernetes_minor != selector: raise ValueError( - f"{selector}: tracking manifest points to Kubernetes {kubernetes_minor}, " + f"{selector}: tracking module points to Kubernetes {kubernetes_minor}, " f"expected {selector}" ) - cni_semver = versions["github.com/containernetworking/plugins"] - cni_version = cni_semver.removeprefix("v") - cni_rpm_version = resolve_cni_rpm_version(kubernetes_minor, cni_version) + deb_version = current.get("kubernetes_deb_version") + if current.get("kubernetes_rpm_version") != kubernetes_version or not deb_version: + deb_version = resolve_kubernetes_deb_version(kubernetes_version) + updated = dict(current) updated.update( { @@ -447,12 +770,8 @@ def entry_from_tracking(selector: str, current: dict[str, Any]) -> dict[str, Any "github.com/containerd/containerd/v2" ].removeprefix("v"), "crictl_version": versions["sigs.k8s.io/cri-tools"].removeprefix("v"), - "kubernetes_cni_deb_version": resolve_cni_deb_version( - kubernetes_minor, cni_version - ), - "kubernetes_cni_rpm_version": cni_rpm_version, - "kubernetes_cni_semver": f"v{cni_rpm_version}", - "kubernetes_deb_version": resolve_kubernetes_deb_version(kubernetes_version), + "kubernetes_cni_semver": versions["github.com/containernetworking/plugins"], + "kubernetes_deb_version": deb_version, "kubernetes_rpm_version": kubernetes_version, "kubernetes_semver": kubernetes_semver, "kubernetes_series": f"v{kubernetes_minor}", @@ -468,7 +787,6 @@ def expected_files( return { MATRIX_FILE: render_release_matrix_yaml(release_pins), LATEST_FILE: render_latest_yaml(latest), - **render_tracking_go_mods(release_pins, latest), } @@ -516,9 +834,13 @@ def validate_entry(selector: str, entry: dict[str, Any]) -> list[str]: errors.append(f"{selector}: kubernetes_rpm_version does not match kubernetes_semver") if not str(entry["kubernetes_deb_version"]).startswith(f"{kubernetes_version}-"): errors.append(f"{selector}: kubernetes_deb_version does not match kubernetes_semver") + # kubernetes_cni_semver pins the CNI plugins tarball and is tracked on its + # own, so it is only checked for shape, not against the package versions. + if not re.fullmatch(r"v\d+\.\d+\.\d+", str(entry["kubernetes_cni_semver"])): + errors.append( + f"{selector}: invalid kubernetes_cni_semver {entry['kubernetes_cni_semver']!r}" + ) cni_rpm = entry["kubernetes_cni_rpm_version"] - if entry["kubernetes_cni_semver"] != f"v{cni_rpm}": - errors.append(f"{selector}: kubernetes_cni_semver does not match RPM CNI version") if not str(entry["kubernetes_cni_deb_version"]).startswith(f"{cni_rpm}-"): errors.append(f"{selector}: DEB and RPM CNI versions do not match") return errors @@ -531,19 +853,11 @@ def verify() -> int: errors.extend(validate_entry(selector, entry)) errors.extend(validate_entry("latest", latest)) - expected_tracking = render_tracking_go_mods(release_pins, latest) - for path, expected in expected_tracking.items(): - if not path.exists(): - errors.append(f"{path}: missing generated Dependabot tracking manifest") - continue - current = path.read_text() - if current != expected: - errors.append(f"{path}: generated Dependabot tracking manifest is out of date") - - expected_paths = set(expected_tracking) - for path in TRACKING_DIR.glob("*/go.mod"): - if path not in expected_paths: - errors.append(f"{path}: unexpected Dependabot tracking manifest") + expected = expected_tracking_modules(release_pins, latest) + for directory, (module_path, tracked, version) in sorted(expected.items()): + errors.extend(tracking_module_issues(directory, module_path, tracked, version)) + errors.extend(unexpected_tracking_files(set(expected))) + errors.extend(dependabot_coverage_issues(set(expected))) if errors: for error in errors: @@ -554,8 +868,13 @@ def verify() -> int: def update(write: bool) -> int: + if write and (error := missing_go_error()): + print(f"ERROR: {error}", file=sys.stderr) + return 1 + release_pins, latest = refresh_matrix() changed = apply_expected_files(expected_files(release_pins, latest), write) + changed = sync_tracking_modules(release_pins, latest, write) or changed if changed and not write: print("Kubernetes version matrix is out of date; rerun with --write", file=sys.stderr) @@ -563,6 +882,21 @@ def update(write: bool) -> int: return verify() +def render_tracking(write: bool) -> int: + if write and (error := missing_go_error()): + print(f"ERROR: {error}", file=sys.stderr) + return 1 + + release_pins, latest = load_matrix() + if sync_tracking_modules(release_pins, latest, write) and not write: + print( + "Dependabot tracking modules do not match the matrix; rerun with --write", + file=sys.stderr, + ) + return 1 + return verify() + + def sync_tracking(write: bool) -> int: release_pins, latest = load_matrix() synced_pins = { @@ -574,8 +908,7 @@ def sync_tracking(write: bool) -> int: if changed and not write: print( - "Kubernetes version matrix does not match tracking manifests; " - "rerun with --write", + "Kubernetes version matrix does not match tracking modules; rerun with --write", file=sys.stderr, ) return 1 @@ -589,13 +922,20 @@ def main() -> int: render_parser = subparsers.add_parser("render", help="render one matrix entry as JSON") render_parser.add_argument("selector", nargs="?", default="latest") - subparsers.add_parser("verify", help="verify matrix structure and tracking manifests") + subparsers.add_parser("verify", help="verify matrix structure and tracking modules") update_parser = subparsers.add_parser("update", help="refresh Kubernetes package pins") - update_parser.add_argument("--write", action="store_true", help="write refreshed YAML files") + update_parser.add_argument("--write", action="store_true", help="write refreshed files") + + render_tracking_parser = subparsers.add_parser( + "render-tracking", help="create or repair Dependabot tracking modules from the matrix" + ) + render_tracking_parser.add_argument( + "--write", action="store_true", help="write the tracking modules" + ) sync_parser = subparsers.add_parser( - "sync-tracking", help="refresh matrix YAML from Dependabot tracking manifests" + "sync-tracking", help="refresh matrix YAML from Dependabot tracking modules" ) sync_parser.add_argument("--write", action="store_true", help="write refreshed YAML files") @@ -607,6 +947,8 @@ def main() -> int: return verify() if args.command == "update": return update(args.write) + if args.command == "render-tracking": + return render_tracking(args.write) if args.command == "sync-tracking": return sync_tracking(args.write) return 1 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/cni-plugins/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/latest/cni-plugins/go.mod new file mode 100644 index 0000000000..448659a81f --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/cni-plugins/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/latest/cni-plugins + +go 1.24.2 + +require github.com/containernetworking/plugins v1.9.1 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/cni-plugins/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/latest/cni-plugins/go.sum new file mode 100644 index 0000000000..7aa17cb1c2 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/cni-plugins/go.sum @@ -0,0 +1,2 @@ +github.com/containernetworking/plugins v1.9.1 h1:8oU6WsIsU3bpnNZuvHp74a6cE1MJwbj2P7s4/yTUNlA= +github.com/containernetworking/plugins v1.9.1/go.mod h1:fj7kS55qg3o/RgS+WGsF3+ZxwIImMPusQZKzBpcSr4c= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/cni-plugins/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/latest/cni-plugins/tools.go new file mode 100644 index 0000000000..8b8ae00e8b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/cni-plugins/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containernetworking/plugins/pkg/utils/buildversion" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/containerd/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/latest/containerd/go.mod new file mode 100644 index 0000000000..bddf98f115 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/containerd/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/latest/containerd + +go 1.26.3 + +require github.com/containerd/containerd/v2 v2.3.2 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/containerd/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/latest/containerd/go.sum new file mode 100644 index 0000000000..67f155c6e1 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/containerd/go.sum @@ -0,0 +1,2 @@ +github.com/containerd/containerd/v2 v2.3.2 h1:eLven1YxRMkeiKu7IcMrPKE+gn8sGR1DqHbbshMEvWM= +github.com/containerd/containerd/v2 v2.3.2/go.mod h1:rHKGm3VW6wNrINb3x8mNT+w7qYXFVElTt/8HTuxVhD4= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/containerd/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/latest/containerd/tools.go new file mode 100644 index 0000000000..cc4a91c749 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/containerd/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containerd/containerd/v2/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/cri-tools/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/latest/cri-tools/go.mod new file mode 100644 index 0000000000..1d16de6ba7 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/cri-tools/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/latest/cri-tools + +go 1.26.2 + +require sigs.k8s.io/cri-tools v1.36.0 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/cri-tools/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/latest/cri-tools/go.sum new file mode 100644 index 0000000000..49c0d9db31 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/cri-tools/go.sum @@ -0,0 +1,2 @@ +sigs.k8s.io/cri-tools v1.36.0 h1:Xt+LLvBVH1Fnp/AR2EyHApyWS/88y2KlWjlDc2HR+aw= +sigs.k8s.io/cri-tools v1.36.0/go.mod h1:6G/U59mqfhCocDGq5nET3A77GIf7h7ZZc93VM+uPS0U= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/cri-tools/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/latest/cri-tools/tools.go new file mode 100644 index 0000000000..a51fd3403e --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/cri-tools/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "sigs.k8s.io/cri-tools/pkg/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/latest/go.mod deleted file mode 100644 index 512c2d8737..0000000000 --- a/images/capi/packer/config/kubernetes-version-dependencies/latest/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/latest - -go 1.24 - -require ( - github.com/containerd/containerd/v2 v2.3.2 - github.com/containernetworking/plugins v1.9.1 - github.com/opencontainers/runc v1.4.3 - k8s.io/client-go v0.36.3 - sigs.k8s.io/cri-tools v1.36.0 -) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/kubernetes/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/latest/kubernetes/go.mod new file mode 100644 index 0000000000..f906fdc7b0 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/kubernetes/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/latest/kubernetes + +go 1.26.0 + +require k8s.io/client-go v0.36.3 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/kubernetes/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/latest/kubernetes/go.sum new file mode 100644 index 0000000000..b813eb46f1 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/kubernetes/go.sum @@ -0,0 +1,2 @@ +k8s.io/client-go v0.36.3 h1:M4JdVzXxYcZk4fGpfDdYnxSwhLKWCFoQsHW6t+z8Hfg= +k8s.io/client-go v0.36.3/go.mod h1:gcPwr0c87vjjG6HB6pWEqOeuYVoXSsREjzux2j6GF30= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/kubernetes/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/latest/kubernetes/tools.go new file mode 100644 index 0000000000..10c962f7de --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/kubernetes/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "k8s.io/client-go/util/homedir" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/runc/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/latest/runc/go.mod new file mode 100644 index 0000000000..51cdae5a03 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/runc/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/latest/runc + +go 1.24.0 + +require github.com/opencontainers/runc v1.4.3 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/runc/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/latest/runc/go.sum new file mode 100644 index 0000000000..92886ac1bd --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/runc/go.sum @@ -0,0 +1,2 @@ +github.com/opencontainers/runc v1.4.3 h1:/bq84roxG30xEICkFodXzMEVQFs7kzo4lCiZME1uKxI= +github.com/opencontainers/runc v1.4.3/go.mod h1:ufk5PTTsy5pnGBAvTh50e+eqGk01pYH2YcVxh557Qlk= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/latest/runc/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/latest/runc/tools.go new file mode 100644 index 0000000000..d5c1418e2b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/latest/runc/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/opencontainers/runc/types/features" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cni-plugins/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cni-plugins/go.mod new file mode 100644 index 0000000000..e52e087113 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cni-plugins/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cni-plugins + +go 1.24 + +require github.com/containernetworking/plugins v1.5.1 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cni-plugins/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cni-plugins/go.sum new file mode 100644 index 0000000000..ccecf3fddb --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cni-plugins/go.sum @@ -0,0 +1,2 @@ +github.com/containernetworking/plugins v1.5.1 h1:T5ji+LPYjjgW0QM+KyrigZbLsZ8jaX+E5J/EcKOE4gQ= +github.com/containernetworking/plugins v1.5.1/go.mod h1:MIQfgMayGuHYs0XdNudf31cLLAC+i242hNm6KuDGqCM= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cni-plugins/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cni-plugins/tools.go new file mode 100644 index 0000000000..8b8ae00e8b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cni-plugins/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containernetworking/plugins/pkg/utils/buildversion" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/containerd/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/containerd/go.mod new file mode 100644 index 0000000000..9bdd9c605d --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/containerd/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/containerd + +go 1.26.3 + +require github.com/containerd/containerd/v2 v2.3.2 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/containerd/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/containerd/go.sum new file mode 100644 index 0000000000..67f155c6e1 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/containerd/go.sum @@ -0,0 +1,2 @@ +github.com/containerd/containerd/v2 v2.3.2 h1:eLven1YxRMkeiKu7IcMrPKE+gn8sGR1DqHbbshMEvWM= +github.com/containerd/containerd/v2 v2.3.2/go.mod h1:rHKGm3VW6wNrINb3x8mNT+w7qYXFVElTt/8HTuxVhD4= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/containerd/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/containerd/tools.go new file mode 100644 index 0000000000..cc4a91c749 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/containerd/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containerd/containerd/v2/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cri-tools/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cri-tools/go.mod new file mode 100644 index 0000000000..8a5e1ce0d3 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cri-tools/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cri-tools + +go 1.24 + +require sigs.k8s.io/cri-tools v1.31.1 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cri-tools/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cri-tools/go.sum new file mode 100644 index 0000000000..556e4cd78f --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cri-tools/go.sum @@ -0,0 +1,2 @@ +sigs.k8s.io/cri-tools v1.31.1 h1:9NLZ20IAc26+vsyY593LQyxmbiaPu9tmkznkJbVxDpE= +sigs.k8s.io/cri-tools v1.31.1/go.mod h1:PvPf/fN5FiNdK1v43jCydRNRw6631qGTSEOhv/OsjYU= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cri-tools/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cri-tools/tools.go new file mode 100644 index 0000000000..a51fd3403e --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/cri-tools/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "sigs.k8s.io/cri-tools/pkg/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/go.mod deleted file mode 100644 index 3fe95438c3..0000000000 --- a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-31 - -go 1.24 - -require ( - github.com/containerd/containerd/v2 v2.3.2 - github.com/containernetworking/plugins v1.5.1 - github.com/opencontainers/runc v1.4.3 - k8s.io/client-go v0.31.14 - sigs.k8s.io/cri-tools v1.31.1 -) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/kubernetes/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/kubernetes/go.mod new file mode 100644 index 0000000000..8c701a7260 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/kubernetes/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/kubernetes + +go 1.24 + +require k8s.io/client-go v0.31.14 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/kubernetes/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/kubernetes/go.sum new file mode 100644 index 0000000000..70816052f4 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/kubernetes/go.sum @@ -0,0 +1,2 @@ +k8s.io/client-go v0.31.14 h1:d4/G0xfksNIbMWH7ghjzOwC5bTAwQ20gABTjZw7fLlQ= +k8s.io/client-go v0.31.14/go.mod h1:0uRpRB7r5QwtsbxEngZPkbcIVoNdAQAPIcopgiXjhQc= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/kubernetes/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/kubernetes/tools.go new file mode 100644 index 0000000000..10c962f7de --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/kubernetes/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "k8s.io/client-go/util/homedir" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/runc/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/runc/go.mod new file mode 100644 index 0000000000..cd32e97258 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/runc/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/runc + +go 1.24.0 + +require github.com/opencontainers/runc v1.4.3 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/runc/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/runc/go.sum new file mode 100644 index 0000000000..92886ac1bd --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/runc/go.sum @@ -0,0 +1,2 @@ +github.com/opencontainers/runc v1.4.3 h1:/bq84roxG30xEICkFodXzMEVQFs7kzo4lCiZME1uKxI= +github.com/opencontainers/runc v1.4.3/go.mod h1:ufk5PTTsy5pnGBAvTh50e+eqGk01pYH2YcVxh557Qlk= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/runc/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/runc/tools.go new file mode 100644 index 0000000000..d5c1418e2b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-31/runc/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/opencontainers/runc/types/features" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cni-plugins/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cni-plugins/go.mod new file mode 100644 index 0000000000..71e791a3f6 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cni-plugins/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cni-plugins + +go 1.24 + +require github.com/containernetworking/plugins v1.6.2 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cni-plugins/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cni-plugins/go.sum new file mode 100644 index 0000000000..473fd79262 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cni-plugins/go.sum @@ -0,0 +1,2 @@ +github.com/containernetworking/plugins v1.6.2 h1:pqP8Mq923TLyef5g97XfJ/xpDeVek4yF8A4mzy9Tc4U= +github.com/containernetworking/plugins v1.6.2/go.mod h1:SP5UG3jDO9LtmfbBJdP+nl3A1atOtbj2MBOYsnaxy64= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cni-plugins/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cni-plugins/tools.go new file mode 100644 index 0000000000..8b8ae00e8b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cni-plugins/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containernetworking/plugins/pkg/utils/buildversion" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/containerd/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/containerd/go.mod new file mode 100644 index 0000000000..7b0775aaed --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/containerd/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/containerd + +go 1.26.3 + +require github.com/containerd/containerd/v2 v2.3.2 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/containerd/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/containerd/go.sum new file mode 100644 index 0000000000..67f155c6e1 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/containerd/go.sum @@ -0,0 +1,2 @@ +github.com/containerd/containerd/v2 v2.3.2 h1:eLven1YxRMkeiKu7IcMrPKE+gn8sGR1DqHbbshMEvWM= +github.com/containerd/containerd/v2 v2.3.2/go.mod h1:rHKGm3VW6wNrINb3x8mNT+w7qYXFVElTt/8HTuxVhD4= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/containerd/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/containerd/tools.go new file mode 100644 index 0000000000..cc4a91c749 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/containerd/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containerd/containerd/v2/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cri-tools/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cri-tools/go.mod new file mode 100644 index 0000000000..1b085ab5e9 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cri-tools/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cri-tools + +go 1.24 + +require sigs.k8s.io/cri-tools v1.32.0 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cri-tools/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cri-tools/go.sum new file mode 100644 index 0000000000..a7f2ee54f5 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cri-tools/go.sum @@ -0,0 +1,2 @@ +sigs.k8s.io/cri-tools v1.32.0 h1:7MjIenjjug+NFCD8f73aeLyyDvwDCYj1nJ+rGOlqKxw= +sigs.k8s.io/cri-tools v1.32.0/go.mod h1:Rn0zexq+0EvDr3+1R3L7lj/sjqGqSY5c3tQhOswoHfE= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cri-tools/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cri-tools/tools.go new file mode 100644 index 0000000000..a51fd3403e --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/cri-tools/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "sigs.k8s.io/cri-tools/pkg/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/go.mod deleted file mode 100644 index 6833e5b683..0000000000 --- a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-32 - -go 1.24 - -require ( - github.com/containerd/containerd/v2 v2.3.2 - github.com/containernetworking/plugins v1.6.0 - github.com/opencontainers/runc v1.4.3 - k8s.io/client-go v0.32.13 - sigs.k8s.io/cri-tools v1.32.0 -) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/kubernetes/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/kubernetes/go.mod new file mode 100644 index 0000000000..99da89722b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/kubernetes/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/kubernetes + +go 1.24 + +require k8s.io/client-go v0.32.13 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/kubernetes/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/kubernetes/go.sum new file mode 100644 index 0000000000..55be13eea5 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/kubernetes/go.sum @@ -0,0 +1,2 @@ +k8s.io/client-go v0.32.13 h1:FxVdGzgrWW8QBprX/xJjoxs9tE06UJIbuy8IfNoxn0c= +k8s.io/client-go v0.32.13/go.mod h1:XhErcCmtSRUns7g0fXYjV8NAXvJWHQCT9EaYkf4dbyw= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/kubernetes/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/kubernetes/tools.go new file mode 100644 index 0000000000..10c962f7de --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/kubernetes/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "k8s.io/client-go/util/homedir" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/runc/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/runc/go.mod new file mode 100644 index 0000000000..a0e03df6db --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/runc/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/runc + +go 1.24.0 + +require github.com/opencontainers/runc v1.4.3 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/runc/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/runc/go.sum new file mode 100644 index 0000000000..92886ac1bd --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/runc/go.sum @@ -0,0 +1,2 @@ +github.com/opencontainers/runc v1.4.3 h1:/bq84roxG30xEICkFodXzMEVQFs7kzo4lCiZME1uKxI= +github.com/opencontainers/runc v1.4.3/go.mod h1:ufk5PTTsy5pnGBAvTh50e+eqGk01pYH2YcVxh557Qlk= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/runc/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/runc/tools.go new file mode 100644 index 0000000000..d5c1418e2b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-32/runc/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/opencontainers/runc/types/features" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cni-plugins/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cni-plugins/go.mod new file mode 100644 index 0000000000..2df4638514 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cni-plugins/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cni-plugins + +go 1.24 + +require github.com/containernetworking/plugins v1.6.0 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cni-plugins/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cni-plugins/go.sum new file mode 100644 index 0000000000..3dc3c681ab --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cni-plugins/go.sum @@ -0,0 +1,2 @@ +github.com/containernetworking/plugins v1.6.0 h1:lrsUrLF7QODLx6gncHOqk/pnCiC7c6bvDAskV4KUifQ= +github.com/containernetworking/plugins v1.6.0/go.mod h1:rYLQWMJz/dYuW1XhHdc9xuzdkgbkWEEjwOhUm84+288= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cni-plugins/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cni-plugins/tools.go new file mode 100644 index 0000000000..8b8ae00e8b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cni-plugins/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containernetworking/plugins/pkg/utils/buildversion" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/containerd/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/containerd/go.mod new file mode 100644 index 0000000000..b6e4f62f64 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/containerd/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/containerd + +go 1.26.3 + +require github.com/containerd/containerd/v2 v2.3.2 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/containerd/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/containerd/go.sum new file mode 100644 index 0000000000..67f155c6e1 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/containerd/go.sum @@ -0,0 +1,2 @@ +github.com/containerd/containerd/v2 v2.3.2 h1:eLven1YxRMkeiKu7IcMrPKE+gn8sGR1DqHbbshMEvWM= +github.com/containerd/containerd/v2 v2.3.2/go.mod h1:rHKGm3VW6wNrINb3x8mNT+w7qYXFVElTt/8HTuxVhD4= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/containerd/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/containerd/tools.go new file mode 100644 index 0000000000..cc4a91c749 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/containerd/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containerd/containerd/v2/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cri-tools/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cri-tools/go.mod new file mode 100644 index 0000000000..3644fa8da0 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cri-tools/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cri-tools + +go 1.24.1 + +require sigs.k8s.io/cri-tools v1.33.0 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cri-tools/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cri-tools/go.sum new file mode 100644 index 0000000000..30a02cbd36 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cri-tools/go.sum @@ -0,0 +1,2 @@ +sigs.k8s.io/cri-tools v1.33.0 h1:eNNbXuM4myjQ2LACmUqEHysfPBi500hhcoD7yVYTtMo= +sigs.k8s.io/cri-tools v1.33.0/go.mod h1:JPw6cL1gGUJFc15KE1+4qSnQDK5yHWNnMhHLzTzdhbk= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cri-tools/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cri-tools/tools.go new file mode 100644 index 0000000000..a51fd3403e --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/cri-tools/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "sigs.k8s.io/cri-tools/pkg/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/go.mod deleted file mode 100644 index 078056d197..0000000000 --- a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-33 - -go 1.24 - -require ( - github.com/containerd/containerd/v2 v2.3.2 - github.com/containernetworking/plugins v1.6.0 - github.com/opencontainers/runc v1.4.3 - k8s.io/client-go v0.33.13 - sigs.k8s.io/cri-tools v1.33.0 -) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/kubernetes/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/kubernetes/go.mod new file mode 100644 index 0000000000..65cf2b9fa1 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/kubernetes/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/kubernetes + +go 1.24.0 + +require k8s.io/client-go v0.33.13 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/kubernetes/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/kubernetes/go.sum new file mode 100644 index 0000000000..3aa2be74e1 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/kubernetes/go.sum @@ -0,0 +1,2 @@ +k8s.io/client-go v0.33.13 h1:gyirIFpLEF9RltmrUkkObQFkxeumU2hRcxiDsVfrf1w= +k8s.io/client-go v0.33.13/go.mod h1:JcZUgHTHDjbLaFaGVNuGmef4iqKNqOzdtwDu3RlR058= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/kubernetes/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/kubernetes/tools.go new file mode 100644 index 0000000000..10c962f7de --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/kubernetes/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "k8s.io/client-go/util/homedir" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/runc/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/runc/go.mod new file mode 100644 index 0000000000..02650b7120 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/runc/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/runc + +go 1.24.0 + +require github.com/opencontainers/runc v1.4.3 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/runc/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/runc/go.sum new file mode 100644 index 0000000000..92886ac1bd --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/runc/go.sum @@ -0,0 +1,2 @@ +github.com/opencontainers/runc v1.4.3 h1:/bq84roxG30xEICkFodXzMEVQFs7kzo4lCiZME1uKxI= +github.com/opencontainers/runc v1.4.3/go.mod h1:ufk5PTTsy5pnGBAvTh50e+eqGk01pYH2YcVxh557Qlk= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/runc/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/runc/tools.go new file mode 100644 index 0000000000..d5c1418e2b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-33/runc/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/opencontainers/runc/types/features" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cni-plugins/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cni-plugins/go.mod new file mode 100644 index 0000000000..7bddcba2f3 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cni-plugins/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cni-plugins + +go 1.24 + +require github.com/containernetworking/plugins v1.7.1 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cni-plugins/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cni-plugins/go.sum new file mode 100644 index 0000000000..75fde4e66a --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cni-plugins/go.sum @@ -0,0 +1,2 @@ +github.com/containernetworking/plugins v1.7.1 h1:CNAR0jviDj6FS5Vg85NTgKWLDzZPfi/lj+VJfhMDTIs= +github.com/containernetworking/plugins v1.7.1/go.mod h1:xuMdjuio+a1oVQsHKjr/mgzuZ24leAsqUYRnzGoXHy0= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cni-plugins/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cni-plugins/tools.go new file mode 100644 index 0000000000..8b8ae00e8b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cni-plugins/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containernetworking/plugins/pkg/utils/buildversion" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/containerd/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/containerd/go.mod new file mode 100644 index 0000000000..fd74061671 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/containerd/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/containerd + +go 1.26.3 + +require github.com/containerd/containerd/v2 v2.3.2 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/containerd/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/containerd/go.sum new file mode 100644 index 0000000000..67f155c6e1 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/containerd/go.sum @@ -0,0 +1,2 @@ +github.com/containerd/containerd/v2 v2.3.2 h1:eLven1YxRMkeiKu7IcMrPKE+gn8sGR1DqHbbshMEvWM= +github.com/containerd/containerd/v2 v2.3.2/go.mod h1:rHKGm3VW6wNrINb3x8mNT+w7qYXFVElTt/8HTuxVhD4= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/containerd/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/containerd/tools.go new file mode 100644 index 0000000000..cc4a91c749 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/containerd/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containerd/containerd/v2/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cri-tools/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cri-tools/go.mod new file mode 100644 index 0000000000..20dffee599 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cri-tools/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cri-tools + +go 1.24.1 + +require sigs.k8s.io/cri-tools v1.34.0 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cri-tools/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cri-tools/go.sum new file mode 100644 index 0000000000..72627fc6b6 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cri-tools/go.sum @@ -0,0 +1,2 @@ +sigs.k8s.io/cri-tools v1.34.0 h1:KqL9EJ+WgHtz1HR1exezm91n+o8O2uMLs/eHzHJHAWw= +sigs.k8s.io/cri-tools v1.34.0/go.mod h1:JyYVG0YFsly+p/hfDfmQcQBNFVHh0+BpMTn49YpasMA= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cri-tools/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cri-tools/tools.go new file mode 100644 index 0000000000..a51fd3403e --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/cri-tools/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "sigs.k8s.io/cri-tools/pkg/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/go.mod deleted file mode 100644 index 39eb1740f7..0000000000 --- a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-34 - -go 1.24 - -require ( - github.com/containerd/containerd/v2 v2.3.2 - github.com/containernetworking/plugins v1.7.1 - github.com/opencontainers/runc v1.4.3 - k8s.io/client-go v0.34.10 - sigs.k8s.io/cri-tools v1.34.0 -) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/kubernetes/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/kubernetes/go.mod new file mode 100644 index 0000000000..1e4a124a06 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/kubernetes/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/kubernetes + +go 1.24.0 + +require k8s.io/client-go v0.34.10 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/kubernetes/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/kubernetes/go.sum new file mode 100644 index 0000000000..793f7cd540 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/kubernetes/go.sum @@ -0,0 +1,2 @@ +k8s.io/client-go v0.34.10 h1:JP3CRMsHRn4cX8XSWZujrCtqEXHe196LiKVNk4JcUyY= +k8s.io/client-go v0.34.10/go.mod h1:YAg8H6f2c9VUTyclFx2S5IGfHbvOrTXpSierUCjrYNE= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/kubernetes/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/kubernetes/tools.go new file mode 100644 index 0000000000..10c962f7de --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/kubernetes/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "k8s.io/client-go/util/homedir" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/runc/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/runc/go.mod new file mode 100644 index 0000000000..f66259a04d --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/runc/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/runc + +go 1.24.0 + +require github.com/opencontainers/runc v1.4.3 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/runc/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/runc/go.sum new file mode 100644 index 0000000000..92886ac1bd --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/runc/go.sum @@ -0,0 +1,2 @@ +github.com/opencontainers/runc v1.4.3 h1:/bq84roxG30xEICkFodXzMEVQFs7kzo4lCiZME1uKxI= +github.com/opencontainers/runc v1.4.3/go.mod h1:ufk5PTTsy5pnGBAvTh50e+eqGk01pYH2YcVxh557Qlk= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/runc/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/runc/tools.go new file mode 100644 index 0000000000..d5c1418e2b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-34/runc/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/opencontainers/runc/types/features" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cni-plugins/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cni-plugins/go.mod new file mode 100644 index 0000000000..9698e73628 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cni-plugins/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cni-plugins + +go 1.24.2 + +require github.com/containernetworking/plugins v1.8.0 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cni-plugins/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cni-plugins/go.sum new file mode 100644 index 0000000000..e413483865 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cni-plugins/go.sum @@ -0,0 +1,2 @@ +github.com/containernetworking/plugins v1.8.0 h1:WjGbV/0UQyo8A4qBsAh6GaDAtu1hevxVxsEuqtBqUFk= +github.com/containernetworking/plugins v1.8.0/go.mod h1:JG3BxoJifxxHBhG3hFyxyhid7JgRVBu/wtooGEvWf1c= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cni-plugins/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cni-plugins/tools.go new file mode 100644 index 0000000000..8b8ae00e8b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cni-plugins/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containernetworking/plugins/pkg/utils/buildversion" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/containerd/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/containerd/go.mod new file mode 100644 index 0000000000..6578302d8c --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/containerd/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/containerd + +go 1.26.3 + +require github.com/containerd/containerd/v2 v2.3.2 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/containerd/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/containerd/go.sum new file mode 100644 index 0000000000..67f155c6e1 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/containerd/go.sum @@ -0,0 +1,2 @@ +github.com/containerd/containerd/v2 v2.3.2 h1:eLven1YxRMkeiKu7IcMrPKE+gn8sGR1DqHbbshMEvWM= +github.com/containerd/containerd/v2 v2.3.2/go.mod h1:rHKGm3VW6wNrINb3x8mNT+w7qYXFVElTt/8HTuxVhD4= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/containerd/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/containerd/tools.go new file mode 100644 index 0000000000..cc4a91c749 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/containerd/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containerd/containerd/v2/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cri-tools/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cri-tools/go.mod new file mode 100644 index 0000000000..b9d5e5e281 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cri-tools/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cri-tools + +go 1.25.0 + +require sigs.k8s.io/cri-tools v1.35.0 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cri-tools/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cri-tools/go.sum new file mode 100644 index 0000000000..01b8abedc8 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cri-tools/go.sum @@ -0,0 +1,2 @@ +sigs.k8s.io/cri-tools v1.35.0 h1:VqnCISAbjvHPoT0hPVp9Y67LWssL2bhYlg5ZKFoX5oQ= +sigs.k8s.io/cri-tools v1.35.0/go.mod h1:03ImEaXuxJI9gW/1qD+6mcUGfcTYd2byDAuSdjjFfis= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cri-tools/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cri-tools/tools.go new file mode 100644 index 0000000000..a51fd3403e --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/cri-tools/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "sigs.k8s.io/cri-tools/pkg/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/go.mod deleted file mode 100644 index 6091dd9427..0000000000 --- a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-35 - -go 1.24 - -require ( - github.com/containerd/containerd/v2 v2.3.2 - github.com/containernetworking/plugins v1.8.0 - github.com/opencontainers/runc v1.4.3 - k8s.io/client-go v0.35.7 - sigs.k8s.io/cri-tools v1.35.0 -) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/kubernetes/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/kubernetes/go.mod new file mode 100644 index 0000000000..8ca6eeaecd --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/kubernetes/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/kubernetes + +go 1.25.0 + +require k8s.io/client-go v0.35.7 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/kubernetes/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/kubernetes/go.sum new file mode 100644 index 0000000000..b86dbe7c39 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/kubernetes/go.sum @@ -0,0 +1,2 @@ +k8s.io/client-go v0.35.7 h1:UWxdVZcqqCdeip50BKoIcoGryX7WfTE1oQQVolP8HJs= +k8s.io/client-go v0.35.7/go.mod h1:uksk4ZVg/i4PrgsMsludkEe7Cp6v8hJ9wvje+2Ekn+c= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/kubernetes/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/kubernetes/tools.go new file mode 100644 index 0000000000..10c962f7de --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/kubernetes/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "k8s.io/client-go/util/homedir" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/runc/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/runc/go.mod new file mode 100644 index 0000000000..d664795622 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/runc/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/runc + +go 1.24.0 + +require github.com/opencontainers/runc v1.4.3 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/runc/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/runc/go.sum new file mode 100644 index 0000000000..92886ac1bd --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/runc/go.sum @@ -0,0 +1,2 @@ +github.com/opencontainers/runc v1.4.3 h1:/bq84roxG30xEICkFodXzMEVQFs7kzo4lCiZME1uKxI= +github.com/opencontainers/runc v1.4.3/go.mod h1:ufk5PTTsy5pnGBAvTh50e+eqGk01pYH2YcVxh557Qlk= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/runc/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/runc/tools.go new file mode 100644 index 0000000000..d5c1418e2b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-35/runc/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/opencontainers/runc/types/features" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cni-plugins/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cni-plugins/go.mod new file mode 100644 index 0000000000..168c039119 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cni-plugins/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cni-plugins + +go 1.24.2 + +require github.com/containernetworking/plugins v1.9.1 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cni-plugins/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cni-plugins/go.sum new file mode 100644 index 0000000000..7aa17cb1c2 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cni-plugins/go.sum @@ -0,0 +1,2 @@ +github.com/containernetworking/plugins v1.9.1 h1:8oU6WsIsU3bpnNZuvHp74a6cE1MJwbj2P7s4/yTUNlA= +github.com/containernetworking/plugins v1.9.1/go.mod h1:fj7kS55qg3o/RgS+WGsF3+ZxwIImMPusQZKzBpcSr4c= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cni-plugins/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cni-plugins/tools.go new file mode 100644 index 0000000000..8b8ae00e8b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cni-plugins/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containernetworking/plugins/pkg/utils/buildversion" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/containerd/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/containerd/go.mod new file mode 100644 index 0000000000..7d4f1b7dd4 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/containerd/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/containerd + +go 1.26.3 + +require github.com/containerd/containerd/v2 v2.3.2 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/containerd/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/containerd/go.sum new file mode 100644 index 0000000000..67f155c6e1 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/containerd/go.sum @@ -0,0 +1,2 @@ +github.com/containerd/containerd/v2 v2.3.2 h1:eLven1YxRMkeiKu7IcMrPKE+gn8sGR1DqHbbshMEvWM= +github.com/containerd/containerd/v2 v2.3.2/go.mod h1:rHKGm3VW6wNrINb3x8mNT+w7qYXFVElTt/8HTuxVhD4= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/containerd/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/containerd/tools.go new file mode 100644 index 0000000000..cc4a91c749 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/containerd/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/containerd/containerd/v2/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cri-tools/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cri-tools/go.mod new file mode 100644 index 0000000000..88377f9c46 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cri-tools/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cri-tools + +go 1.26.2 + +require sigs.k8s.io/cri-tools v1.36.0 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cri-tools/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cri-tools/go.sum new file mode 100644 index 0000000000..49c0d9db31 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cri-tools/go.sum @@ -0,0 +1,2 @@ +sigs.k8s.io/cri-tools v1.36.0 h1:Xt+LLvBVH1Fnp/AR2EyHApyWS/88y2KlWjlDc2HR+aw= +sigs.k8s.io/cri-tools v1.36.0/go.mod h1:6G/U59mqfhCocDGq5nET3A77GIf7h7ZZc93VM+uPS0U= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cri-tools/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cri-tools/tools.go new file mode 100644 index 0000000000..a51fd3403e --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/cri-tools/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "sigs.k8s.io/cri-tools/pkg/version" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/go.mod deleted file mode 100644 index f97a9b6775..0000000000 --- a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-36 - -go 1.24 - -require ( - github.com/containerd/containerd/v2 v2.3.2 - github.com/containernetworking/plugins v1.9.1 - github.com/opencontainers/runc v1.4.3 - k8s.io/client-go v0.36.3 - sigs.k8s.io/cri-tools v1.36.0 -) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/kubernetes/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/kubernetes/go.mod new file mode 100644 index 0000000000..720554bb17 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/kubernetes/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/kubernetes + +go 1.26.0 + +require k8s.io/client-go v0.36.3 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/kubernetes/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/kubernetes/go.sum new file mode 100644 index 0000000000..b813eb46f1 --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/kubernetes/go.sum @@ -0,0 +1,2 @@ +k8s.io/client-go v0.36.3 h1:M4JdVzXxYcZk4fGpfDdYnxSwhLKWCFoQsHW6t+z8Hfg= +k8s.io/client-go v0.36.3/go.mod h1:gcPwr0c87vjjG6HB6pWEqOeuYVoXSsREjzux2j6GF30= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/kubernetes/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/kubernetes/tools.go new file mode 100644 index 0000000000..10c962f7de --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/kubernetes/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "k8s.io/client-go/util/homedir" +) diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/runc/go.mod b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/runc/go.mod new file mode 100644 index 0000000000..10950b14ad --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/runc/go.mod @@ -0,0 +1,5 @@ +module sigs.k8s.io/image-builder/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/runc + +go 1.24.0 + +require github.com/opencontainers/runc v1.4.3 diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/runc/go.sum b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/runc/go.sum new file mode 100644 index 0000000000..92886ac1bd --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/runc/go.sum @@ -0,0 +1,2 @@ +github.com/opencontainers/runc v1.4.3 h1:/bq84roxG30xEICkFodXzMEVQFs7kzo4lCiZME1uKxI= +github.com/opencontainers/runc v1.4.3/go.mod h1:ufk5PTTsy5pnGBAvTh50e+eqGk01pYH2YcVxh557Qlk= diff --git a/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/runc/tools.go b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/runc/tools.go new file mode 100644 index 0000000000..d5c1418e2b --- /dev/null +++ b/images/capi/packer/config/kubernetes-version-dependencies/release-1-36/runc/tools.go @@ -0,0 +1,24 @@ +// Copyright 2026 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build tools + +// Package tools keeps the tracked module in go.mod. Dependabot always +// runs go mod tidy after an update, and tidy drops requirements that no +// package imports. +package tools + +import ( + _ "github.com/opencontainers/runc/types/features" +) diff --git a/images/capi/packer/config/kubernetes-version-matrix.yaml b/images/capi/packer/config/kubernetes-version-matrix.yaml index 2f331f3c02..3bfa5d47f7 100644 --- a/images/capi/packer/config/kubernetes-version-matrix.yaml +++ b/images/capi/packer/config/kubernetes-version-matrix.yaml @@ -34,7 +34,7 @@ releasePins: kubernetes_cni_deb_version: "1.6.0-1.1" kubernetes_cni_http_source: "https://github.com/containernetworking/plugins/releases/download" kubernetes_cni_rpm_version: "1.6.0" - kubernetes_cni_semver: "v1.6.0" + kubernetes_cni_semver: "v1.6.2" kubernetes_deb_version: "1.32.13-1.1" kubernetes_rpm_version: "1.32.13" kubernetes_semver: "v1.32.13"