kubernetes/kops · error

instance group deletion is not yet implemented for Akamai (L

Error message

instance group deletion is not yet implemented for Akamai (Linode)

What it means

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.

Source

Thrown at upup/pkg/fi/cloudup/linode/cloud.go:143

		return fmt.Errorf("error parsing Akamai (Linode) instance ID %q: %w", instance.ID, err)
	}

	if err := c.client.DeleteInstance(context.Background(), instanceID); err != nil {
		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
}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Delete the underlying Linodes/instance group manually in the Akamai Cloud Manager, then update the kops instance group to match.
  2. Drain and remove instances individually (DeleteInstance works) instead of relying on group deletion.
  3. Avoid group-shrinking rolling-update flags for Linode until upstream implements DeleteGroup.
Defensive patterns

Strategy: fallback

Validate before calling

// skip group deletion for Linode:
if provider == kops.CloudProviderLinode {
	log.Printf("deleting Linode instance groups manually is required")
}

Try / catch

if err := cloud.DeleteGroup(g); err != nil && strings.Contains(err.Error(), "not yet implemented for Akamai") {
	// fall back to manual deletion / per-instance DeleteInstance
}

Prevention

When it happens

Trigger: 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.

Common situations: Users scaling down or removing machine pools on Linode clusters and expecting automated group deletion during rolling updates.

Related errors


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/da72fa434db5198a. Report an issue: GitHub.