{"record":{"id":"c069acc2faf47cf0","repo":"kubernetes/kops","slug":"akamai-linode-support-is-currently-alpha-and-is","errorCode":null,"errorMessage":"Akamai (Linode) support is currently alpha, and is feature-gated. Please export KOPS_FEATURE_FLAGS=Linode","messagePattern":"Akamai \\(Linode\\) support is currently alpha, and is feature-gated\\. Please export KOPS_FEATURE_FLAGS=Linode","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"upup/pkg/fi/cloudup/apply_cluster.go","lineNumber":505,"sourceCode":"\t\t\tif !featureflag.Scaleway.Enabled() {\n\t\t\t\treturn nil, fmt.Errorf(\"Scaleway support is currently alpha, and is feature-gated.  export KOPS_FEATURE_FLAGS=Scaleway\")\n\t\t\t}\n\n\t\t\tif len(sshPublicKeys) == 0 {\n\t\t\t\treturn 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)\n\t\t\t}\n\t\t\tif len(sshPublicKeys) != 1 {\n\t\t\t\treturn nil, fmt.Errorf(\"exactly one 'admin' SSH public key can be specified when running with Scaleway; please delete a key using `kops delete secret`\")\n\t\t\t}\n\n\t\t\tscwCloud := cloud.(scaleway.ScwCloud)\n\t\t\tscwZone = scwCloud.Zone()\n\t\t}\n\n\tcase kops.CloudProviderLinode:\n\t\t{\n\t\t\tif !featureflag.Linode.Enabled() {\n\t\t\t\treturn nil, fmt.Errorf(\"Akamai (Linode) support is currently alpha, and is feature-gated. Please export KOPS_FEATURE_FLAGS=Linode\")\n\t\t\t}\n\t\t}\n\n\tcase kops.CloudProviderMetal:\n\t\t// Metal is a special case, we don't need to do anything here (yet)\n\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown CloudProvider %q\", cluster.GetCloudProvider())\n\t}\n\n\tmodelContext.SSHPublicKeys = sshPublicKeys\n\tmodelContext.Region = cloud.Region()\n\n\tif cluster.PublishesDNSRecords() {\n\t\terr = validateDNS(cluster, cloud)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}","sourceCodeStart":487,"sourceCodeEnd":523,"githubUrl":"https://github.com/kubernetes/kops/blob/4c8573c808a73d578c5eadc86d410646ea0b0d73/upup/pkg/fi/cloudup/apply_cluster.go#L487-L523","documentation":"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.","triggerScenarios":"`kops update cluster` (or other apply paths) on a cluster with cloudProvider=linode while KOPS_FEATURE_FLAGS lacks 'Linode'.","commonSituations":"Users testing Linode support without the env var set; CI runners missing the flag; stale shells where the export wasn't applied.","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)"],"exampleFix":"// before\nkops update cluster --name lin.example.com\n// after\nexport KOPS_FEATURE_FLAGS=Linode\nkops update cluster --name lin.example.com","handlingStrategy":"validation","validationCode":"case \"$KOPS_FEATURE_FLAGS\" in *Linode*) echo ok;; *) export KOPS_FEATURE_FLAGS=\"${KOPS_FEATURE_FLAGS:+$KOPS_FEATURE_FLAGS,}Linode\";; esac","typeGuard":null,"tryCatchPattern":"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 }","preventionTips":["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"],"tags":["linode","akamai","feature-flag","alpha","configuration"],"backgroundTag":"feature-flag-not-enabled","analyzedSha":"4c8573c808a73d578c5eadc86d410646ea0b0d73","analyzedAt":"2026-09-05T04:13:19.212Z","contentChangedAt":"2026-09-05T04:13:19.212Z","schemaVersion":2},"datasetVersion":"2026-09-12T12:17:11.808Z"}