kubernetes/kops · error

downloading nodeup from an s3:// URL is not supported in AWS

Error message

downloading nodeup from an s3:// URL is not supported in AWS region %q

What it means

The nodeup artifact is served from an s3:// URL, but the bucket's region does not support the S3 bootstrap endpoint mechanism (SupportsS3BootstrapEndpoint returned false). This is a regional capability check for pre-IMDS-style bootstrap endpoints, not a transient failure.

Source

Thrown at pkg/model/resources/nodeup.go:443

	}
	p, err := vfsContext.BuildVfsPath(location)
	if err != nil {
		return fmt.Errorf("building path for %q: %w", location, err)
	}
	s3Path, ok := p.(*vfs.S3Path)
	if !ok {
		return fmt.Errorf("unexpected path type %T for %q", p, location)
	}
	b.S3Region, err = s3Path.Region(ctx)
	if err != nil {
		return fmt.Errorf("getting the region of %q: %w", location, err)
	}
	supported, err := awsup.SupportsS3BootstrapEndpoint(ctx, b.S3Region)
	if err != nil {
		return err
	}
	if !supported {
		return fmt.Errorf("downloading nodeup from an s3:// URL is not supported in AWS region %q", b.S3Region)
	}
	return nil
}

func gzipBase64(data string) (string, error) {
	var b bytes.Buffer
	gz := gzip.NewWriter(&b)

	_, err := gz.Write([]byte(data))
	if err != nil {
		return "", err
	}

	if err = gz.Flush(); err != nil {
		return "", err
	}

	if err = gz.Close(); err != nil {

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Copy the nodeup artifacts to a bucket in a supported region and update the location
  2. Use a non-s3 base URL (e.g. https) for nodeup distribution
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/model/resources/nodeup.go:443 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/355e6d8b90e92332. Report an issue: GitHub.