{"record":{"id":"8e130d63cf11399c","repo":"kubernetes/kops","slug":"unknown-arch-for-crictl-binaries-asset-s","errorCode":null,"errorMessage":"unknown arch for crictl binaries asset: %s","messagePattern":"unknown arch for crictl binaries asset: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/nodemodel/wellknownassets/crictl.go","lineNumber":41,"sourceCode":"\t\"k8s.io/kops/pkg/apis/kops/model\"\n\t\"k8s.io/kops/pkg/assets\"\n\t\"k8s.io/kops/util/pkg/architectures\"\n)\n\nconst (\n\tcrictlAssetUrlAmd64 = \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.29.0/crictl-v1.29.0-linux-amd64.tar.gz\"\n\tcrictlAssetUrlArm64 = \"https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.29.0/crictl-v1.29.0-linux-arm64.tar.gz\"\n)\n\nfunc FindCrictlAsset(ig model.InstanceGroup, assetBuilder *assets.AssetBuilder, arch architectures.Architecture) (*assets.FileAsset, error) {\n\tvar assetURL string\n\tswitch arch {\n\tcase architectures.ArchitectureAmd64:\n\t\tassetURL = crictlAssetUrlAmd64\n\tcase architectures.ArchitectureArm64:\n\t\tassetURL = crictlAssetUrlArm64\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown arch for crictl binaries asset: %s\", arch)\n\t}\n\n\tu, err := url.Parse(assetURL)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to parse crictl binaries asset URL %q: %v\", assetURL, err)\n\t}\n\n\tasset, err := assetBuilder.RemapFile(u, nil)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to remap crictl binaries asset: %v\", err)\n\t}\n\n\treturn asset, err\n}\n","sourceCodeStart":23,"sourceCodeEnd":56,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/pkg/nodemodel/wellknownassets/crictl.go#L23-L56","documentation":"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.","triggerScenarios":"Thrown at pkg/nodemodel/wellknownassets/crictl.go:41 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use an instance group with amd64 or arm64 architecture","Add a crictl asset URL for the new architecture in wellknownassets"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T07:17:12.445Z"}