kubernetes/kops · error
error creating resource dumper: %w
Error message
error creating resource dumper: %w
What it means
When --k8s-resources is enabled, toolbox dump creates a dump.ResourceDumper from the gathered kubeconfig to export Kubernetes API resources. This error wraps construction failure — usually the kubeconfig/context is unusable (missing server, bad credentials, unreachable API). The dump continues for other resources but k8s resource dumping is skipped.
Source
Thrown at cmd/kops/toolbox_dump.go:280
sshUser := options.SSHUser
dumper.SetSSHAccessGranter(func(ctx context.Context, instanceID string) error {
_, err := eicClient.SendSSHPublicKey(ctx, &ec2instanceconnect.SendSSHPublicKeyInput{
InstanceId: aws.String(instanceID),
InstanceOSUser: aws.String(sshUser),
SSHPublicKey: aws.String(publicKey),
})
return err
})
}
if err := dumper.DumpAllNodes(ctx, nodes, options.MaxNodes, cloudResources); err != nil {
klog.Warningf("error dumping nodes: %v", err)
}
if kubeConfig != nil && options.K8sResources {
dumper, err := dump.NewResourceDumper(kubeConfig, options.Output, options.Dir)
if err != nil {
return fmt.Errorf("error creating resource dumper: %w", err)
}
if err := dumper.DumpResources(ctx); err != nil {
klog.Warningf("error dumping resources: %v", err)
}
logDumper, err := dump.NewPodLogDumper(kubeConfig, options.Dir)
if err != nil {
return fmt.Errorf("error creating pod log dumper: %w", err)
}
if err := logDumper.DumpLogs(ctx); err != nil {
klog.Warningf("error dumping pod logs: %v", err)
}
}
}
if cloudResources != nil {
switch options.Output {
case OutputYaml:View on GitHub (pinned to 4c8573c808)
Solutions
- Check cluster is running: kubectl --kubeconfig <dumped kubeconfig> get nodes.
- Regenerate admin credentials: kops export kubeconfig --admin <cluster>.
- Ensure --dir output path exists and is writable.
- If the cluster was deleted, drop --k8s-resources and dump only cloud state.
Example fix
// before kops toolbox dump --name c.k8s.local --k8s-resources # expired admin creds // after kops export kubeconfig --admin c.k8s.local kops toolbox dump --name c.k8s.local --k8s-resources
Defensive patterns
Strategy: try-catch
Validate before calling
kops export kubeconfig "$CLUSTER_NAME" && kubectl cluster-info --kubeconfig ~/.kube/config >/dev/null || { echo "k8s API unreachable; skipping --k8s-resources"; } Try / catch
dumper, err := dump.NewResourceDumper(kubeConfig, options.Output, options.Dir)
if err != nil {
klog.Warningf("skipping k8s resource dump (kubeconfig or client init failed): %v", err)
// fall back to cloud-only dump
} Prevention
- Ensure the cluster is fully up before dumping k8s resources
- Refresh admin credentials with kops export kubeconfig --admin periodically
- Verify output --dir exists and is writable
- Omit --k8s-resources when only cloud state is needed or API is known-down
When it happens
Trigger: dump.NewResourceDumper(kubeConfig, options.Output, options.Dir) returns an error while building the Kubernetes clientset or validating output/dir options during `kops toolbox dump` with k8s resources enabled.
Common situations: Cluster's API server unreachable or deleted but kubeconfig present; stale/invalid admin kubeconfig credentials (expired certificate); output directory not writable; kops toolbox dump run before the cluster is actually up.
Related errors
- cluster not found %q
- applying %q: %w
- cannot fetch channel versions from namespaces: %w
- failed to get updates: %w
- updating %q: %w
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/48565be4c963d58f.
Report an issue: GitHub.