kubernetes/kops · error
kubernetes feature gate must include a feature name
Error message
kubernetes feature gate must include a feature name
What it means
parseKubernetesFeatureGate returns this sentinel validation error when an entry consists only of a +/- sign with no feature name after it (e.g. '+,'). The sign was parsed but the remaining gate string is empty, so the entry is invalid.
Source
Thrown at upup/pkg/fi/cloudup/new_cluster.go:634
}
func parseKubernetesFeatureGate(featureGate string) (string, bool, error) {
featureGate = strings.TrimSpace(featureGate)
if featureGate == "" {
return "", false, fmt.Errorf("kubernetes feature gate must not be empty")
}
enabled := true
switch featureGate[0] {
case '+':
featureGate = strings.TrimSpace(featureGate[1:])
case '-':
enabled = false
featureGate = strings.TrimSpace(featureGate[1:])
}
if featureGate == "" {
return "", false, fmt.Errorf("kubernetes feature gate must include a feature name")
}
return featureGate, enabled, nil
}
func setupVPC(opt *NewClusterOptions, cluster *api.Cluster, cloud fi.Cloud) error {
ctx := context.TODO()
cluster.Spec.Networking.NetworkID = opt.NetworkID
switch cluster.GetCloudProvider() {
case api.CloudProviderAWS:
if cluster.Spec.Networking.NetworkID == "" && len(opt.SubnetIDs) > 0 {
awsCloud := cloud.(awsup.AWSCloud)
res, err := awsCloud.EC2().DescribeSubnets(ctx, &ec2.DescribeSubnetsInput{
SubnetIds: []string{opt.SubnetIDs[0]},
})
if err != nil {
return fmt.Errorf("error describing subnet %s: %v", opt.SubnetIDs[0], err)View on GitHub (pinned to 4c8573c808)
Solutions
- Provide a feature name after the +/- sign (e.g. +CSIMigration)
- Fix scripts interpolating empty gate variables into the flag
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/new_cluster.go:634 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/6d6451ce64e02ec9.
Report an issue: GitHub.