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
- Inspect bootConfig.ConfigBase and fix the URI scheme/format (must be a valid vfs path, e.g. s3://<bucket>/clusters.example.com).
- Regenerate the bootstrap configuration with the same kops version used to create the cluster (kops update cluster / kops replace).
- Verify the required VFS backend matches the environment (s3:// on AWS, gs:// on GCP) and that kops was built with that backend.
- 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
- Copy ConfigBase verbatim from kops output; never retype it
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
- parsing path for kops-channels manifest %s: %w
- error loading NodeupConfig %q: %v
- unsupported cloud provider for authenticator %q
- reading kops-channels manifest %s: %w
- error loading configuration %q: %v
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/6e119b0b91789e71.
Report an issue: GitHub.