mirror of
https://github.com/containers/podman.git
synced 2025-08-06 19:44:14 +08:00
enable dnsplugin for network create
when users create a new network and the dnsname plugin can be found by podman, we will enable container name resolution on the new network. there is an option to opt *out* as well. tests cannot be added until we solve the packaging portion of the dnsname plugin. Signed-off-by: baude <bbaude@redhat.com>
This commit is contained in:
@ -14,6 +14,9 @@ const (
|
||||
// CNIDeviceName is the default network device name and in
|
||||
// reality should have an int appended to it (cni-podman4)
|
||||
CNIDeviceName = "cni-podman"
|
||||
// DefaultPodmanDomainName is used for the dnsname plugin to define
|
||||
// a localized domain name for a created network
|
||||
DefaultPodmanDomainName = "dns.podman"
|
||||
)
|
||||
|
||||
// GetDefaultPodmanNetwork outputs the default network for podman
|
||||
@ -97,3 +100,14 @@ type FirewallConfig struct {
|
||||
func (f FirewallConfig) Bytes() ([]byte, error) {
|
||||
return json.MarshalIndent(f, "", "\t")
|
||||
}
|
||||
|
||||
// DNSNameConfig describes the dns container name resolution plugin config
|
||||
type DNSNameConfig struct {
|
||||
PluginType string `json:"type"`
|
||||
DomainName string `json:"domainName"`
|
||||
}
|
||||
|
||||
// Bytes outputs the configuration as []byte
|
||||
func (d DNSNameConfig) Bytes() ([]byte, error) {
|
||||
return json.MarshalIndent(d, "", "\t")
|
||||
}
|
||||
|
@ -2,6 +2,8 @@ package network
|
||||
|
||||
import (
|
||||
"net"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
// NcList describes a generic map
|
||||
@ -111,3 +113,22 @@ func NewFirewallPlugin() FirewallConfig {
|
||||
Backend: "iptables",
|
||||
}
|
||||
}
|
||||
|
||||
// NewDNSNamePlugin creates the dnsname config with a given
|
||||
// domainname
|
||||
func NewDNSNamePlugin(domainName string) DNSNameConfig {
|
||||
return DNSNameConfig{
|
||||
PluginType: "dnsname",
|
||||
DomainName: domainName,
|
||||
}
|
||||
}
|
||||
|
||||
// HasDNSNamePlugin looks to see if the dnsname cni plugin is present
|
||||
func HasDNSNamePlugin(paths []string) bool {
|
||||
for _, p := range paths {
|
||||
if _, err := os.Stat(filepath.Join(p, "dnsname")); err == nil {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
Reference in New Issue
Block a user