kubernetes/kops · error

unknown arch for nerdctl binaries asset: %s

Error message

unknown arch for nerdctl binaries asset: %s

What it means

FindNerdctlAsset's switch has explicit cases for amd64 and arm64; this guard fires for any other architecture value. The pinned nerdctl release assets only exist for those two architectures, so an unsupported arch (e.g. arm, ppc64le) aborts asset building.

Source

Thrown at pkg/nodemodel/wellknownassets/nerdctl.go:44

const (
	nerdctlAssetUrlAmd64  = "https://github.com/containerd/nerdctl/releases/download/v1.7.4/nerdctl-1.7.4-linux-amd64.tar.gz"
	nerdctlAssetUrlArm64  = "https://github.com/containerd/nerdctl/releases/download/v1.7.4/nerdctl-1.7.4-linux-arm64.tar.gz"
	nerdctlAssetHashAmd64 = "71aee9d987b7fad0ff2ade50b038ad7e2356324edc02c54045960a3521b3e6a7"
	nerdctlAssetHashArm64 = "d8df47708ca57b9cd7f498055126ba7dcfc811d9ba43aae1830c93a09e70e22d"
)

func FindNerdctlAsset(ig model.InstanceGroup, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*assets.FileAsset, error) {
	var assetURL, assetHash string
	switch arch {
	case architectures.ArchitectureAmd64:
		assetURL = nerdctlAssetUrlAmd64
		assetHash = nerdctlAssetHashAmd64
	case architectures.ArchitectureArm64:
		assetURL = nerdctlAssetUrlArm64
		assetHash = nerdctlAssetHashArm64
	default:
		return nil, fmt.Errorf("unknown arch for nerdctl binaries asset: %s", arch)
	}

	return buildFileAsset(assetBuilder, assetURL, assetHash)
}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Use an instance group with amd64 or arm64 architecture
  2. Add a nerdctl asset URL/hash for the new architecture in wellknownassets
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at pkg/nodemodel/wellknownassets/nerdctl.go:44 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/d2aaf83042c9d125. Report an issue: GitHub.