{"record":{"id":"977bbdd61404aa33","repo":"kubernetes/kops","slug":"instance-detach-is-not-yet-implemented-for-akamai","errorCode":null,"errorMessage":"instance detach is not yet implemented for Akamai (Linode)","messagePattern":"instance detach is not yet implemented for Akamai \\(Linode\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/linode/cloud.go","lineNumber":147,"sourceCode":"\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\nfunc (c *Cloud) GetApiIngressStatus(cluster *kops.Cluster) ([]fi.ApiIngressStatus, error) {\n\treturn nil, nil\n}\n","sourceCodeStart":129,"sourceCodeEnd":165,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/linode/cloud.go#L129-L165","documentation":"Cloud.DetachInstance for the Akamai (Linode) provider is a stub returning 'instance detach is not yet implemented'. Detaching (removing an instance from its group without deleting) is unsupported for Linode.","triggerScenarios":"Rolling-update operations that use detach/reattach semantics (e.g. --instance-group with detach-based replacement), or any code path invoking Cloud.DetachInstance on a Linode cluster.","commonSituations":"Users attempting surge-style rolling updates that require detaching instances from groups on Linode clusters.","solutions":["Use rolling-update settings that delete-and-recreate instances instead of detaching (avoid detach-dependent flags).","Manually remove and recreate the Linode if a single instance must be replaced outside a rolling update.","Wait for/upstream Linode DetachInstance support in kops before using detach workflows."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"if provider == kops.CloudProviderLinode && needsDetach {\n\treturn fmt.Errorf(\"detach is unsupported for Linode; use delete-and-recreate\")\n}","typeGuard":null,"tryCatchPattern":"if err := cloud.DetachInstance(inst); err != nil && strings.Contains(err.Error(), \"not yet implemented for Akamai\") {\n\t// fall back to DeleteInstance + recreate workflow\n}","preventionTips":["Configure rolling updates to replace (delete+create) instances instead of detaching","Avoid detach-based surge strategies on Linode clusters","Check upstream kops issues for Linode DetachInstance support before enabling related flags"],"tags":["linode","akamai","rolling-update","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"}