kubernetes/kops · error
Scaleway support is currently alpha, and is feature-gated.
Error message
Scaleway support is currently alpha, and is feature-gated. export KOPS_FEATURE_FLAGS=Scaleway
What it means
Scaleway support in kOps is alpha and gated behind the 'Scaleway' feature flag. In apply_cluster.go's Run, any apply targeting cloudProvider=scaleway without the flag enabled returns this error before any cloud API calls are made.
Source
Thrown at upup/pkg/fi/cloudup/apply_cluster.go:488
if len(sshPublicKeys) != 1 {
return nil, fmt.Errorf("exactly one 'admin' SSH public key can be specified when running with AzureCloud; please delete a key using `kops delete secret`")
}
}
case kops.CloudProviderOpenstack:
{
if len(sshPublicKeys) == 0 {
return nil, fmt.Errorf("SSH public key must be specified when running with Openstack (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 Openstack; please delete a key using `kops delete secret`")
}
}
case kops.CloudProviderScaleway:
{
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")
}View on GitHub (pinned to 4c8573c808)
Solutions
- Export the feature flag: `export KOPS_FEATURE_FLAGS=Scaleway` and rerun the command
- If multiple flags are needed, comma-separate them: `export KOPS_FEATURE_FLAGS=Scaleway,AlphaAllowGCE`
- Verify with `kops version`/docs that your kOps build still ships Scaleway behind the flag
Example fix
// before kops update cluster --name scw.example.com // after export KOPS_FEATURE_FLAGS=Scaleway kops update cluster --name scw.example.com
Defensive patterns
Strategy: validation
Validate before calling
export KOPS_FEATURE_FLAGS=${KOPS_FEATURE_FLAGS:+$KOPS_FEATURE_FLAGS,}Scaleway; [ "${KOPS_FEATURE_FLAGS#*Scaleway}" != "$KOPS_FEATURE_FLAGS" ] && echo ok Try / catch
if err := run(); err != nil { if strings.Contains(err.Error(), "feature-gated") { return fmt.Errorf("set KOPS_FEATURE_FLAGS=%s: %w", "Scaleway", err) } return err } Prevention
- Set KOPS_FEATURE_FLAGS in shell profile/CI env before kops commands
- Remember alpha flags may change; pin kOps versions in production
- Document required flags in cluster provisioning runbooks
When it happens
Trigger: `kops update cluster` (or create/apply paths reaching Run) on a cluster whose spec sets cloudProvider=scaleway while KOPS_FEATURE_FLAGS does not include 'Scaleway'.
Common situations: Users following Scaleway tutorials without setting the env var, CI environments missing KOPS_FEATURE_FLAGS, or exporting the flag with wrong case/extra whitespace.
Related errors
- Akamai (Linode) support is currently alpha, and is feature-g
- creating client for Scaleway NodeIdentifier: %w
- SSH public key must be specified when running with Scaleway
- exactly one 'admin' SSH public key can be specified when run
- creating client for Scaleway Cloud: %w
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/9af6c2acd6a7ca98.
Report an issue: GitHub.