kubernetes/kops · error
instance detach is not yet implemented for Akamai (Linode)
Error message
instance detach is not yet implemented for Akamai (Linode)
What it means
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.
Source
Thrown at upup/pkg/fi/cloudup/linode/cloud.go:147
if linodego.IsNotFound(err) {
return nil
}
return fmt.Errorf("error deleting Akamai (Linode) instance %q: %w", instance.ID, err)
}
return nil
}
func (c *Cloud) DeregisterInstance(instance *cloudinstances.CloudInstance) error {
return nil
}
func (c *Cloud) DeleteGroup(group *cloudinstances.CloudInstanceGroup) error {
return fmt.Errorf("instance group deletion is not yet implemented for Akamai (Linode)")
}
func (c *Cloud) DetachInstance(instance *cloudinstances.CloudInstance) error {
return fmt.Errorf("instance detach is not yet implemented for Akamai (Linode)")
}
func (c *Cloud) GetCloudGroups(cluster *kops.Cluster, instancegroups []*kops.InstanceGroup, warnUnmatched bool, nodes []v1.Node) (map[string]*cloudinstances.CloudInstanceGroup, error) {
return map[string]*cloudinstances.CloudInstanceGroup{}, nil
}
func (c *Cloud) Region() string {
return c.region
}
func (c *Cloud) FindClusterStatus(cluster *kops.Cluster) (*kops.ClusterStatus, error) {
return &kops.ClusterStatus{}, nil
}
func (c *Cloud) GetApiIngressStatus(cluster *kops.Cluster) ([]fi.ApiIngressStatus, error) {
return nil, nil
}
View on GitHub (pinned to 4c8573c808)
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.
Defensive patterns
Strategy: fallback
Validate before calling
if provider == kops.CloudProviderLinode && needsDetach {
return fmt.Errorf("detach is unsupported for Linode; use delete-and-recreate")
} Try / catch
if err := cloud.DetachInstance(inst); err != nil && strings.Contains(err.Error(), "not yet implemented for Akamai") {
// fall back to DeleteInstance + recreate workflow
} Prevention
- 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
When it happens
Trigger: 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.
Common situations: Users attempting surge-style rolling updates that require detaching instances from groups on Linode clusters.
Related errors
- DNS is not yet implemented for Akamai (Linode)
- instance group deletion is not yet implemented for Akamai (L
- error parsing Akamai (Linode) %s ID %q: %w
- error listing Akamai (Linode) instances: %w
- error listing Akamai (Linode) volumes: %w
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/977bbdd61404aa33.
Report an issue: GitHub.