kubernetes/kops · error
Akamai (Linode) support is currently alpha, and is feature-g
Error message
Akamai (Linode) support is currently alpha, and is feature-gated. Please export KOPS_FEATURE_FLAGS=Linode
What it means
Akamai (Linode) support in kOps is alpha and feature-gated. apply_cluster.go Run rejects any apply with cloudProvider=linode unless the 'Linode' feature flag is enabled, failing fast before contacting the Linode API.
Source
Thrown at upup/pkg/fi/cloudup/apply_cluster.go:505
if !featureflag.Scaleway.Enabled() {
return nil, fmt.Errorf("Scaleway support is currently alpha, and is feature-gated. export KOPS_FEATURE_FLAGS=Scaleway")
}
if len(sshPublicKeys) == 0 {
return nil, fmt.Errorf("SSH public key must be specified when running with Scaleway (create with `kops create secret --name %s sshpublickey admin -i ~/.ssh/id_rsa.pub`)", cluster.ObjectMeta.Name)
}
if len(sshPublicKeys) != 1 {
return nil, fmt.Errorf("exactly one 'admin' SSH public key can be specified when running with Scaleway; please delete a key using `kops delete secret`")
}
scwCloud := cloud.(scaleway.ScwCloud)
scwZone = scwCloud.Zone()
}
case kops.CloudProviderLinode:
{
if !featureflag.Linode.Enabled() {
return nil, fmt.Errorf("Akamai (Linode) support is currently alpha, and is feature-gated. Please export KOPS_FEATURE_FLAGS=Linode")
}
}
case kops.CloudProviderMetal:
// Metal is a special case, we don't need to do anything here (yet)
default:
return nil, fmt.Errorf("unknown CloudProvider %q", cluster.GetCloudProvider())
}
modelContext.SSHPublicKeys = sshPublicKeys
modelContext.Region = cloud.Region()
if cluster.PublishesDNSRecords() {
err = validateDNS(cluster, cloud)
if err != nil {
return nil, err
}View on GitHub (pinned to 4c8573c808)
Solutions
- Export the flag: `export KOPS_FEATURE_FLAGS=Linode` and rerun
- Combine with other flags comma-separated if needed: `export KOPS_FEATURE_FLAGS=Linode,Scaleway`
- Confirm the flag name is exactly 'Linode' (case-sensitive)
Example fix
// before kops update cluster --name lin.example.com // after export KOPS_FEATURE_FLAGS=Linode kops update cluster --name lin.example.com
Defensive patterns
Strategy: validation
Validate before calling
case "$KOPS_FEATURE_FLAGS" in *Linode*) echo ok;; *) export KOPS_FEATURE_FLAGS="${KOPS_FEATURE_FLAGS:+$KOPS_FEATURE_FLAGS,}Linode";; esac Try / catch
if err := run(); err != nil { if strings.Contains(err.Error(), "feature-gated") { return fmt.Errorf("export KOPS_FEATURE_FLAGS=Linode required: %w", err) } return err } Prevention
- Export KOPS_FEATURE_FLAGS=Linode in any environment running linode-cluster applies
- Add the flag to CI pipeline env configuration
- Check kOps release notes for flag graduation to non-alpha
When it happens
Trigger: `kops update cluster` (or other apply paths) on a cluster with cloudProvider=linode while KOPS_FEATURE_FLAGS lacks 'Linode'.
Common situations: Users testing Linode support without the env var set; CI runners missing the flag; stale shells where the export wasn't applied.
Related errors
- Scaleway support is currently alpha, and is feature-gated.
- expected exactly one subnet for InstanceGroup %q; subnets wa
- linode subnet %q requires a name
- error parsing Akamai (Linode) %s ID %q: %w
- error listing Akamai (Linode) instances: %w
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/c069acc2faf47cf0.
Report an issue: GitHub.