kubernetes/kops · error

error parsing etcd cluster label %q on volume %q: %v

Error message

error parsing etcd cluster label %q on volume %q: %v

What it means

Wraps etcd.ParseEtcdClusterSpec failure in findEtcdStatus: the decoded etcd cluster label value (which encodes cluster spec info) could not be parsed back into an EtcdClusterSpec. Indicates label content drift from what kOps originally wrote.

Source

Thrown at upup/pkg/fi/cloudup/gce/status.go:110

				disks = append(disks, d)
			}
		}
	}

	for _, disk := range disks {
		etcdClusterName := ""
		var etcdClusterSpec *etcd.EtcdClusterSpec
		master := false
		for k, v := range disk.Labels {
			if strings.HasPrefix(k, GceLabelNameEtcdClusterPrefix) {
				etcdClusterName = strings.TrimPrefix(k, GceLabelNameEtcdClusterPrefix)
				value, err := DecodeGCELabel(v)
				if err != nil {
					return nil, fmt.Errorf("unexpected etcd label on volume %q: %s=%s", disk.Name, k, v)
				}
				spec, err := etcd.ParseEtcdClusterSpec(etcdClusterName, value)
				if err != nil {
					return nil, fmt.Errorf("error parsing etcd cluster label %q on volume %q: %v", value, disk.Name, err)
				}
				etcdClusterSpec = spec
			} else if strings.HasPrefix(k, GceLabelNameRolePrefix) {
				roleName := strings.TrimPrefix(k, GceLabelNameRolePrefix)
				if roleName == "master" || roleName == "control-plane" {
					master = true
				}
			}
		}
		if etcdClusterName == "" || etcdClusterSpec == nil || !master {
			continue
		}

		status := statusMap[etcdClusterName]
		if status == nil {
			status = &kops.EtcdClusterStatus{
				Name: etcdClusterName,
			}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Inspect the etcd volume's label value against kOps expectations
  2. Restore or remove the modified label
  3. Rebuild the etcd member if its state is inconsistent
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/gce/status.go:110 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/0c8bb1b71a4674ae. Report an issue: GitHub.