kubernetes/kops · error
error parsing etcd cluster tag %q on volume %q: %v
Error message
error parsing etcd cluster tag %q on volume %q: %v
What it means
The value of an etcd-cluster tag (key prefixed TagNameEtcdClusterPrefix) on an EBS volume could not be parsed by etcd.ParseEtcdClusterSpec. The tag value is malformed — typically a hand-edited or externally set tag on volume %q.
Source
Thrown at upup/pkg/fi/cloudup/awsup/status.go:95
volumes = append(volumes, page.Volumes...)
}
var err error
for _, volume := range volumes {
volumeID := aws.ToString(volume.VolumeId)
etcdClusterName := ""
var etcdClusterSpec *etcd.EtcdClusterSpec
master := false
for _, tag := range volume.Tags {
k := aws.ToString(tag.Key)
v := aws.ToString(tag.Value)
if strings.HasPrefix(k, TagNameEtcdClusterPrefix) {
etcdClusterName = strings.TrimPrefix(k, TagNameEtcdClusterPrefix)
etcdClusterSpec, err = etcd.ParseEtcdClusterSpec(etcdClusterName, v)
if err != nil {
return nil, fmt.Errorf("error parsing etcd cluster tag %q on volume %q: %v", v, volumeID, err)
}
} else if k == TagNameRolePrefix+TagRoleMaster || k == TagNameRolePrefix+TagRoleControlPlane {
master = true
}
}
if etcdClusterName == "" || etcdClusterSpec == nil || !master {
continue
}
status := statusMap[etcdClusterName]
if status == nil {
status = &kops.EtcdClusterStatus{
Name: etcdClusterName,
}
statusMap[etcdClusterName] = status
}
memberName := etcdClusterSpec.NodeNameView on GitHub (pinned to 4c8573c808)
Solutions
- Inspect the etcd tag on the named volume and fix its value to a valid EtcdClusterSpec
- Remove the malformed tag if the volume is not an etcd member
- Compare with tags on healthy etcd volumes of other clusters for the expected format
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at upup/pkg/fi/cloudup/awsup/status.go:95 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/9bf4128326b42a28.
Report an issue: GitHub.