{"record":{"id":"da72fa434db5198a","repo":"kubernetes/kops","slug":"instance-group-deletion-is-not-yet-implemented-for","errorCode":null,"errorMessage":"instance group deletion is not yet implemented for Akamai (Linode)","messagePattern":"instance group deletion is not yet implemented for Akamai \\(Linode\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/linode/cloud.go","lineNumber":143,"sourceCode":"\t\treturn fmt.Errorf(\"error parsing Akamai (Linode) instance ID %q: %w\", instance.ID, err)\n\t}\n\n\tif err := c.client.DeleteInstance(context.Background(), instanceID); err != nil {\n\t\tif linodego.IsNotFound(err) {\n\t\t\treturn nil\n\t\t}\n\t\treturn fmt.Errorf(\"error deleting Akamai (Linode) instance %q: %w\", instance.ID, err)\n\t}\n\n\treturn nil\n}\n\nfunc (c *Cloud) DeregisterInstance(instance *cloudinstances.CloudInstance) error {\n\treturn nil\n}\n\nfunc (c *Cloud) DeleteGroup(group *cloudinstances.CloudInstanceGroup) error {\n\treturn fmt.Errorf(\"instance group deletion is not yet implemented for Akamai (Linode)\")\n}\n\nfunc (c *Cloud) DetachInstance(instance *cloudinstances.CloudInstance) error {\n\treturn fmt.Errorf(\"instance detach is not yet implemented for Akamai (Linode)\")\n}\n\nfunc (c *Cloud) GetCloudGroups(cluster *kops.Cluster, instancegroups []*kops.InstanceGroup, warnUnmatched bool, nodes []v1.Node) (map[string]*cloudinstances.CloudInstanceGroup, error) {\n\treturn map[string]*cloudinstances.CloudInstanceGroup{}, nil\n}\n\nfunc (c *Cloud) Region() string {\n\treturn c.region\n}\n\nfunc (c *Cloud) FindClusterStatus(cluster *kops.Cluster) (*kops.ClusterStatus, error) {\n\treturn &kops.ClusterStatus{}, nil\n}\n","sourceCodeStart":125,"sourceCodeEnd":161,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/linode/cloud.go#L125-L161","documentation":"Cloud.DeleteGroup for the Akamai (Linode) provider is unimplemented: kOps cannot delete a Linode instance group (NodeBalancer/Linode group backing) via this interface, so every call returns this 'not yet implemented' error.","triggerScenarios":"Rolling update with --cloud linode that needs to shrink/remove an instance group, or `kops delete instancegroup` flows that ask the cloud to delete the backing group.","commonSituations":"Users scaling down or removing machine pools on Linode clusters and expecting automated group deletion during rolling updates.","solutions":["Delete the underlying Linodes/instance group manually in the Akamai Cloud Manager, then update the kops instance group to match.","Drain and remove instances individually (DeleteInstance works) instead of relying on group deletion.","Avoid group-shrinking rolling-update flags for Linode until upstream implements DeleteGroup."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"// skip group deletion for Linode:\nif provider == kops.CloudProviderLinode {\n\tlog.Printf(\"deleting Linode instance groups manually is required\")\n}","typeGuard":null,"tryCatchPattern":"if err := cloud.DeleteGroup(g); err != nil && strings.Contains(err.Error(), \"not yet implemented for Akamai\") {\n\t// fall back to manual deletion / per-instance DeleteInstance\n}","preventionTips":["Plan instance-group removal on Linode as a manual console operation","Scale down via per-instance deletion rather than group deletion","Review kops provider capability docs before automating group lifecycle"],"tags":["linode","akamai","instancegroup","unimplemented"],"backgroundTag":"feature-not-implemented","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"}