Skip to content

[Feature]: Per-interface DNS entries #43

@travisbcotton

Description

@travisbcotton

Describe the feature

It's common to have multiple interfaces per node
The current behavior is to return the first interface as the IP for the record

for _, zone := range p.zones {
if strings.HasSuffix(name, zone.Name) {
for _, ei := range p.cache.EthernetInterfaces {
if comp, ok := p.cache.Components[ei.ComponentID]; ok && comp.Type == "Node" {
xnameHost := comp.ID
xnameFQDN := xnameHost + "." + zone.Name
// Expand node pattern
nidFQDN := ""
if zone.NodePattern != "" {
// nid{04d} pattern: e.g., nid0001.cluster.local
nidHost := expandPattern(zone.NodePattern, comp.NID, comp.ID)
nidFQDN = nidHost + "." + zone.Name
}
if name == nidFQDN || name == xnameFQDN {
for _, ipEntry := range ei.IPAddresses {
if ip := net.ParseIP(ipEntry.IPAddress); ip != nil && ip.To4() != nil {
return ip
}
}
}
}
}
}

I would like to be able to store multiple interfaces in SMD and have DNS entries per interface
Something like

nid001 192.168.0.1
nid001-hsn1 10.100.0.1
nid001-hsn2 10.100.0.2

Why do you want this feature?

This would be nice to be able to use DNS for multiple interfaces to separate HSN traffic from management traffic

Alternatives you've considered

I considered doing...

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions