kubernetes/kops · error

unknown arch for crictl binaries asset: %s

Error message

unknown arch for crictl binaries asset: %s

What it means

FindCrictlAsset has no download URL for the requested CPU architecture: only amd64 and arm64 are enumerated, so the switch falls through to this guard. The input at fault is the architecture derived from the instance group/node image.

Source

Thrown at pkg/nodemodel/wellknownassets/crictl.go:41

	"k8s.io/kops/pkg/apis/kops/model"
	"k8s.io/kops/pkg/assets"
	"k8s.io/kops/util/pkg/architectures"
)

const (
	crictlAssetUrlAmd64 = "https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.29.0/crictl-v1.29.0-linux-amd64.tar.gz"
	crictlAssetUrlArm64 = "https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.29.0/crictl-v1.29.0-linux-arm64.tar.gz"
)

func FindCrictlAsset(ig model.InstanceGroup, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*assets.FileAsset, error) {
	var assetURL string
	switch arch {
	case architectures.ArchitectureAmd64:
		assetURL = crictlAssetUrlAmd64
	case architectures.ArchitectureArm64:
		assetURL = crictlAssetUrlArm64
	default:
		return nil, fmt.Errorf("unknown arch for crictl binaries asset: %s", arch)
	}

	u, err := url.Parse(assetURL)
	if err != nil {
		return nil, fmt.Errorf("unable to parse crictl binaries asset URL %q: %v", assetURL, err)
	}

	asset, err := assetBuilder.RemapFile(u, nil)
	if err != nil {
		return nil, fmt.Errorf("unable to remap crictl binaries asset: %v", err)
	}

	return asset, err
}

View on GitHub (pinned to 4c8573c808)

Solutions

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

Strategy: type-guard

When it happens

Trigger: Thrown at pkg/nodemodel/wellknownassets/crictl.go:41 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/8e130d63cf11399c. Report an issue: GitHub.