kubernetes/kops · error

cannot parse ConfigBase %q: %v

Error message

cannot parse ConfigBase %q: %v

What it means

When the node is configured with a ConfigBase (vfs path) instead of a config server, Run() parses that string into a vfs.Path via vfs.Context.BuildVfsPath. This error is thrown when the ConfigBase string is not a valid/recognized VFS path scheme (s3://, gs://, etc.) or cannot be constructed.

Source

Thrown at upup/pkg/fi/nodeup/command.go:127

		return err
	}

	var configBase vfs.Path

	// If we're using a config server instead of vfs, nodeConfig will hold our configuration
	var nodeConfig *nodeup.NodeConfig

	if bootConfig.ConfigServer != nil && len(bootConfig.ConfigServer.Servers) > 0 {
		response, err := getNodeConfigFromServers(ctx, &bootConfig, region)
		if err != nil {
			return fmt.Errorf("failed to get node config from server: %w", err)
		}
		nodeConfig = response.NodeConfig
	} else if fi.ValueOf(bootConfig.ConfigBase) != "" {
		var err error
		configBase, err = vfs.Context.BuildVfsPath(*bootConfig.ConfigBase)
		if err != nil {
			return fmt.Errorf("cannot parse ConfigBase %q: %v", *bootConfig.ConfigBase, err)
		}
	} else {
		return fmt.Errorf("ConfigBase or ConfigServer is required")
	}

	var nodeupConfig nodeup.Config
	var nodeupConfigHash [32]byte
	switch {
	case nodeConfig != nil:
		if err := utils.YamlUnmarshal([]byte(nodeConfig.NodeupConfig), &nodeupConfig); err != nil {
			return fmt.Errorf("error parsing BootConfig config response: %v", err)
		}
		nodeupConfigHash = sha256.Sum256([]byte(nodeConfig.NodeupConfig))
		if nodeupConfig.CAs == nil {
			nodeupConfig.CAs = make(map[string]string)
		}
		nodeupConfig.CAs[fi.CertificateIDCA] = bootConfig.ConfigServer.CACertificates
	case bootConfig.InstanceGroupName != "":

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Inspect bootConfig.ConfigBase and fix the URI scheme/format (must be a valid vfs path, e.g. s3://<bucket>/clusters.example.com).
  2. Regenerate the bootstrap configuration with the same kops version used to create the cluster (kops update cluster / kops replace).
  3. Verify the required VFS backend matches the environment (s3:// on AWS, gs:// on GCP) and that kops was built with that backend.
  4. If config-server mode is available, switch to ConfigServer and leave ConfigBase empty.

Example fix

// before
ConfigBase: "s3:/my-bucket/clusters.example.com"
// after
ConfigBase: "s3://my-bucket/clusters.example.com"
Defensive patterns

Strategy: validation

Prevention

When it happens

Trigger: NodeUp run with bootConfig.ConfigBase set to a malformed or unsupported URI — e.g. missing scheme, unknown scheme, typo like 's3:/bucket/path' — causing vfs.Context.BuildVfsPath to fail.

Common situations: Hand-edited node bootstrap config (nodeupconfig/igconfig spec) with a typo'd ConfigBase, cluster spec produced by an older kops version with an incompatible path format, or copying a ConfigBase between clouds with the wrong scheme (gs:// on AWS).

Related errors


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/6e119b0b91789e71. Report an issue: GitHub.