kubernetes/kops · error
error reading droplet private IP from DigitalOcean metadata:
Error message
error reading droplet private IP from DigitalOcean metadata: %v
What it means
Error "error reading droplet private IP from DigitalOcean metadata: %v" thrown in kubernetes/kops.
Source
Thrown at upup/pkg/fi/nodeup/command.go:535
return awsbootstrap.PrivateDNSName(localIPv4, region), nil
case api.CloudProviderGCE:
// This lets us tolerate broken hostnames (i.e. systemd)
b, err := vfs.Context.ReadFile("metadata://gce/instance/hostname")
if err != nil {
return "", fmt.Errorf("error reading hostname from GCE metadata: %v", err)
}
// We only want to use the first portion of the fully-qualified name
// e.g. foo.c.project.internal => foo
fullyQualified := string(b)
bareHostname := strings.Split(fullyQualified, ".")[0]
return bareHostname, nil
case api.CloudProviderDO:
vBytes, err := vfs.Context.ReadFile("metadata://digitalocean/interfaces/private/0/ipv4/address")
if err != nil {
return "", fmt.Errorf("error reading droplet private IP from DigitalOcean metadata: %v", err)
}
hostname := string(vBytes)
if hostname == "" {
return "", errors.New("private IP for digitalocean droplet was empty")
}
return hostname, nil
case api.CloudProviderLinode:
label, err := linodemetadata.GetMetadataValue(context.TODO(), "label")
if err != nil {
return "", fmt.Errorf("error reading hostname from Linode metadata: %v", err)
}
// Akamai (Linode) cloud-init does not set the OS hostname.
// Set it here so the OS hostname matches the kubelet hostname override.
if err := os.WriteFile("/etc/hostname", []byte(label+"\n"), 0o644); err != nil { //nolint:gosec // /etc/hostname is conventionally world-readable system configuration.
klog.Warningf("Failed to write /etc/hostname: %v", err)View on GitHub (pinned to 4c8573c808)
When it happens
Trigger: Thrown at upup/pkg/fi/nodeup/command.go:535 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/d0e532f3325cf382.
Report an issue: GitHub.