kubernetes/kops · error
cannot parse VFS path %q: %v
Error message
cannot parse VFS path %q: %v
What it means
Building a VFS path from a state path that needs bucket-read IAM binding failed; one of the cluster's configured state/config paths is not a parseable VFS URI.
Source
Thrown at pkg/model/gcemodel/storageacl.go:188
c.AddTask(&gcetasks.StorageBucketIAM{
Name: s("objectadmin-" + bucket + "-serviceaccount-" + nameForTask),
Lifecycle: b.Lifecycle,
Bucket: s(bucket),
MemberServiceAccount: serviceAccountRole.ServiceAccount,
Role: s("roles/storage.objectAdmin"),
})
}
// Add bucket read permissions if we need to read from the bucket
readablePaths, err := iam.ReadableStatePaths(b.Cluster, nodeRole)
if err != nil {
return err
}
if len(readablePaths) != 0 {
p, err := vfs.Context.BuildVfsPath(b.Cluster.Spec.ConfigStore.Base)
if err != nil {
return fmt.Errorf("cannot parse VFS path %q: %v", b.Cluster.Spec.ConfigStore.Base, err)
}
gcsPath, ok := p.(*vfs.GSPath)
if !ok {
klog.Warningf("unknown path, can't apply IAM policy: %q", p)
continue
}
bucket := gcsPath.Bucket()
if buckets.Has(bucket) {
// Already marked as writeable; we can skip
continue
}
buckets.Insert(bucket)
nameForTask := strings.ToLower(string(role))
klog.Warningf("adding bucket level read IAM to gs://%s for role %q", bucket, role)
View on GitHub (pinned to 4c8573c808)
Solutions
- Check the state/config store paths in the cluster spec for valid VFS syntax
- Fix or remove the malformed path
- Re-run kops update
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at pkg/model/gcemodel/storageacl.go:188 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/60267e48d11a6264.
Report an issue: GitHub.