kubernetes/kops · error

method metal.Cloud::DNS not implemented

Error message

method metal.Cloud::DNS not implemented

What it means

Stub-method error: metal.Cloud implements fi.Cloud but DNS() is intentionally unimplemented because bare metal has no cloud-managed DNS. Fires when a code path (e.g. DNS record management) asks the metal provider for a dnsprovider.Interface — a capability gap, not a transient failure.

Source

Thrown at upup/pkg/fi/cloudup/metal/cloud.go:47

)

var _ fi.Cloud = (*Cloud)(nil)

// Cloud holds the fi.Cloud implementation for metal resources.
type Cloud struct {
}

// NewCloud returns a Cloud for metal resources.
func NewCloud() (*Cloud, error) {
	cloud := &Cloud{}
	return cloud, nil
}

func (c *Cloud) ProviderID() kops.CloudProviderID {
	return kops.CloudProviderMetal
}
func (c *Cloud) DNS() (dnsprovider.Interface, error) {
	return nil, fmt.Errorf("method metal.Cloud::DNS not implemented")
}

// FindVPCInfo looks up the specified VPC by id, returning info if found, otherwise (nil, nil).
func (c *Cloud) FindVPCInfo(id string) (*fi.VPCInfo, error) {
	return nil, fmt.Errorf("method metal.Cloud::FindVPCInfo not implemented")
}

// DeleteInstance deletes a cloud instance.
func (c *Cloud) DeleteInstance(instance *cloudinstances.CloudInstance) error {
	return fmt.Errorf("method metal.Cloud::DeleteInstance not implemented")
}

// // DeregisterInstance drains a cloud instance and loadbalancers.
func (c *Cloud) DeregisterInstance(instance *cloudinstances.CloudInstance) error {
	return fmt.Errorf("method metal.Cloud::DeregisterInstance not implemented")
}

// DeleteGroup deletes the cloud resources that make up a CloudInstanceGroup, including the instances.

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Use an external DNS provider/configuration for bare-metal clusters instead of cloud DNS
  2. Avoid code paths that require cloud DNS on the metal provider
  3. Implement DNS() if metal gains DNS support
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/metal/cloud.go:47 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/542a5c76b263b0cb. Report an issue: GitHub.