kubernetes/kops · error
failed to find network for server group %q
Error message
failed to find network for server group %q
What it means
When creating servers for a Hetzner server group, kOps requires the group to be attached to the cluster's private network. RenderHetzner throws this when the e.Network pointer is nil — the network task reference was never resolved, so server creation cannot proceed with a valid network attachment.
Source
Thrown at upup/pkg/fi/cloudup/hetznertasks/servergroup.go:205
}
}
}
actualCount := 0
if a != nil {
actualCount = a.Count
}
expectedCount := e.Count
if actualCount >= expectedCount {
return nil
}
if len(e.SSHKeys) == 0 {
return fmt.Errorf("failed to find ssh keys for server group %q", fi.ValueOf(e.Name))
}
if e.Network == nil {
return fmt.Errorf("failed to find network for server group %q", fi.ValueOf(e.Name))
}
userData, err := fi.ResourceAsString(e.UserData)
if err != nil {
return err
}
userDataBytes, err := fi.ResourceAsBytes(e.UserData)
if err != nil {
return err
}
userDataHash := SafeBytesHash(userDataBytes)
networkID, err := strconv.ParseInt(fi.ValueOf(e.Network.ID), 10, 64)
if err != nil {
return fmt.Errorf("failed to convert network ID %q to int: %w", fi.ValueOf(e.Network.ID), err)
}
for i := 1; i <= expectedCount-actualCount; i++ {View on GitHub (pinned to 4c8573c808)
Solutions
- Ensure the cluster spec defines a Hetzner network so the Network task is created and linked to the server group.
- Check earlier logs for a failed Network task (e.g. errors 2846/2847) and fix that root cause first.
- Re-run `kops update cluster` after network configuration is corrected.
- Verify the network task completes before the server group task in the task graph ordering.
Example fix
// before (cluster spec, Hetzner section) network: null // after network: id: "1234567"
Defensive patterns
Strategy: validation
Validate before calling
if cluster.Spec.Network == nil || cluster.Spec.Network.ID == "" {
return fmt.Errorf("hetzner cluster spec must define a network for server groups")
} Prevention
- Define the Hetzner network section in the cluster spec before creating server groups.
- Fix any earlier Network task failures before retrying server group creation.
- Review `kops update cluster` output for unresolved network task references.
When it happens
Trigger: RenderHetzner in upup/pkg/fi/cloudup/hetznertasks/servergroup.go:205 finds e.Network == nil after SSH key validation passes and the group needs scaling up (actualCount < expectedCount), meaning the Network task link is unresolved in the rendered task graph.
Common situations: The cluster's network configuration is missing or the Network task failed earlier leaving the reference nil; spec omits the Hetzner network section; task dependency ordering broken so the server group renders before the network resolves.
Related errors
- failed to convert network ID %q to int: %w
- failed to find network %q
- failed to find ssh keys for server group %q
- failed to get private networks from hetzner cloud metadata:
- failed to list networks: %w
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/b4df8b2376519169.
Report an issue: GitHub.