{"record":{"id":"ecf75dfaaa643b13","repo":"kubernetes/kops","slug":"expected-at-most-one-zone-for-disk-q-got-d","errorCode":null,"errorMessage":"expected at most one zone for disk %q, got %d","messagePattern":"expected at most one zone for disk %q, got (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/azuretasks/disk_terraform.go","lineNumber":41,"sourceCode":"\t\"k8s.io/kops/upup/pkg/fi\"\n\t\"k8s.io/kops/upup/pkg/fi/cloudup/terraform\"\n\t\"k8s.io/kops/upup/pkg/fi/cloudup/terraformWriter\"\n)\n\ntype terraformAzureManagedDisk struct {\n\tName               *string                  `cty:\"name\"`\n\tLocation           *string                  `cty:\"location\"`\n\tResourceGroupName  *terraformWriter.Literal `cty:\"resource_group_name\"`\n\tStorageAccountType *string                  `cty:\"storage_account_type\"`\n\tCreateOption       *string                  `cty:\"create_option\"`\n\tDiskSizeGB         *int32                   `cty:\"disk_size_gb\"`\n\tZone               *string                  `cty:\"zone\"`\n\tTags               map[string]string        `cty:\"tags\"`\n}\n\nfunc (*Disk) RenderTerraform(t *terraform.TerraformTarget, a, e, changes *Disk) error {\n\tif len(e.Zones) > 1 {\n\t\treturn fmt.Errorf(\"expected at most one zone for disk %q, got %d\", fi.ValueOf(e.Name), len(e.Zones))\n\t}\n\n\tcreateOption := string(compute.DiskCreateOptionEmpty)\n\ttf := &terraformAzureManagedDisk{\n\t\tName:               e.Name,\n\t\tLocation:           new(t.Cloud.Region()),\n\t\tResourceGroupName:  e.ResourceGroup.terraformName(),\n\t\tStorageAccountType: stringPtr(e.VolumeType),\n\t\tCreateOption:       &createOption,\n\t\tDiskSizeGB:         e.SizeGB,\n\t\tTags:               stringMap(e.Tags),\n\t}\n\tif len(e.Zones) == 1 {\n\t\ttf.Zone = e.Zones[0]\n\t}\n\n\treturn t.RenderResource(\"azurerm_managed_disk\", fi.ValueOf(e.Name), tf)\n}","sourceCodeStart":23,"sourceCodeEnd":59,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/azuretasks/disk_terraform.go#L23-L59","documentation":"Validation guard in the Azure managed-disk Terraform renderer: an Azure managed disk can be zoned or non-zoned, but its zones list must contain at most one entry. Fires when the source model supplies multiple availability zones for a single disk, which the cty schema cannot represent.","triggerScenarios":"Thrown at upup/pkg/fi/cloudup/azuretasks/disk_terraform.go:41 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set a single availability zone on the disk in the cluster spec","Remove conflicting zone configuration from the etcd/main volume definitions","Re-run kops create -f / terraform generation"],"exampleFix":null,"handlingStrategy":"validation","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-12T12:17:11.808Z"}