kubernetes/kops · error

unknown cloudprovider %q

Error message

unknown cloudprovider %q

What it means

The switch over the cluster's cloud provider fell through to the default case while building etcd volumes: the provider set in the cluster spec has no volume-provisioning branch in this builder. It indicates an unsupported/misspelled provider value rather than an infrastructure failure.

Source

Thrown at pkg/model/master_volumes.go:137

				if err != nil {
					return err
				}
			case kops.CloudProviderAzure:
				err = b.addAzureVolume(c, name, volumeSize, zone, etcd, m, allMembers)
				if err != nil {
					return err
				}
			case kops.CloudProviderScaleway:
				b.addScalewayVolume(c, name, volumeSize, zone, etcd, m, allMembers)

			case kops.CloudProviderLinode:
				b.addLinodeVolume(c, name, volumeSize, zone, etcd, m, allMembers)

			case kops.CloudProviderMetal:
				// Nothing special to do for Metal (yet)

			default:
				return fmt.Errorf("unknown cloudprovider %q", b.Cluster.GetCloudProvider())
			}
		}
	}
	return nil
}

func (b *MasterVolumeBuilder) addAWSVolume(c *fi.CloudupModelBuilderContext, name string, volumeSize int32, zone string, etcd kops.EtcdClusterSpec, m kops.EtcdMemberSpec, allMembers []string) error {
	// https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
	volumeType := fi.ValueOf(m.VolumeType)
	if volumeType == "" {
		volumeType = DefaultAWSEtcdVolumeType
	}
	volumeIops := fi.ValueOf(m.VolumeIOPS)
	volumeThroughput := fi.ValueOf(m.VolumeThroughput)
	switch ec2types.VolumeType(volumeType) {
	case ec2types.VolumeTypeIo1, ec2types.VolumeTypeIo2:
		if volumeIops < 100 {
			volumeIops = DefaultAWSEtcdVolumeIonIops

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Check spec.cloudProvider in the cluster spec and set it to a supported provider (aws, azure, gcp, openstack, etc.)
  2. If the provider is valid but new, add a corresponding volume case to the builder switch
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at pkg/model/master_volumes.go:137 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/fa9731cec7d071d3. Report an issue: GitHub.