mirror of
https://github.com/siderolabs/talos.git
synced 2025-10-23 13:31:12 +02:00
fix: prefer configured nameservers, fix DHCP6 in container
Always prefer explicitly configured nameservers, networkd was missing capability to bind address for DHCP6. Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
This commit is contained in:
parent
6cf98a7322
commit
757cc204ec
@ -115,6 +115,7 @@ func (n *Networkd) Runner(r runtime.Runtime) (runner.Runner, error) {
|
|||||||
strings.ToUpper("CAP_" + capability.CAP_NET_ADMIN.String()),
|
strings.ToUpper("CAP_" + capability.CAP_NET_ADMIN.String()),
|
||||||
strings.ToUpper("CAP_" + capability.CAP_SYS_ADMIN.String()),
|
strings.ToUpper("CAP_" + capability.CAP_SYS_ADMIN.String()),
|
||||||
strings.ToUpper("CAP_" + capability.CAP_NET_RAW.String()),
|
strings.ToUpper("CAP_" + capability.CAP_NET_RAW.String()),
|
||||||
|
strings.ToUpper("CAP_" + capability.CAP_NET_BIND_SERVICE.String()),
|
||||||
}),
|
}),
|
||||||
oci.WithHostNamespace(specs.NetworkNamespace),
|
oci.WithHostNamespace(specs.NetworkNamespace),
|
||||||
oci.WithMounts(mounts),
|
oci.WithMounts(mounts),
|
||||||
|
@ -60,8 +60,6 @@ func New(config config.Provider) (*Networkd, error) {
|
|||||||
resolvers []string
|
resolvers []string
|
||||||
)
|
)
|
||||||
|
|
||||||
resolvers = []string{DefaultPrimaryResolver, DefaultSecondaryResolver}
|
|
||||||
|
|
||||||
netconf := make(map[string][]nic.Option)
|
netconf := make(map[string][]nic.Option)
|
||||||
|
|
||||||
if option = procfs.ProcCmdline().Get("ip").First(); option != nil {
|
if option = procfs.ProcCmdline().Get("ip").First(); option != nil {
|
||||||
@ -203,20 +201,29 @@ func (n *Networkd) Configure() (err error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resolvers := []string{}
|
// prefer resolvers from the configuration
|
||||||
|
resolvers := append([]string(nil), n.resolvers...)
|
||||||
|
|
||||||
for _, netif := range n.Interfaces {
|
// if no resolvers configured, use addressing method resolvers
|
||||||
for _, method := range netif.AddressMethod {
|
if len(resolvers) == 0 {
|
||||||
if !method.Valid() {
|
for _, netif := range n.Interfaces {
|
||||||
continue
|
for _, method := range netif.AddressMethod {
|
||||||
}
|
if !method.Valid() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
for _, resolver := range method.Resolvers() {
|
for _, resolver := range method.Resolvers() {
|
||||||
resolvers = append(resolvers, resolver.String())
|
resolvers = append(resolvers, resolver.String())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// use default resolvers if nothing is configured
|
||||||
|
if len(resolvers) == 0 {
|
||||||
|
resolvers = append(resolvers, DefaultPrimaryResolver, DefaultSecondaryResolver)
|
||||||
|
}
|
||||||
|
|
||||||
// Set hostname must be before the resolv configuration
|
// Set hostname must be before the resolv configuration
|
||||||
// so we can ensure the hosts domainname is set properly
|
// so we can ensure the hosts domainname is set properly
|
||||||
// before we write the search stanza
|
// before we write the search stanza
|
||||||
@ -224,10 +231,6 @@ func (n *Networkd) Configure() (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(resolvers) == 0 {
|
|
||||||
resolvers = n.resolvers
|
|
||||||
}
|
|
||||||
|
|
||||||
if err = writeResolvConf(resolvers); err != nil {
|
if err = writeResolvConf(resolvers); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user