diff --git a/pkgs/applications/networking/cluster/dnsname-cni/default.nix b/pkgs/applications/networking/cluster/dnsname-cni/default.nix new file mode 100644 index 00000000000..91ef8b68fb6 --- /dev/null +++ b/pkgs/applications/networking/cluster/dnsname-cni/default.nix @@ -0,0 +1,32 @@ +{ buildGoModule, fetchFromGitHub, lib, dnsmasq }: + +buildGoModule rec { + pname = "cni-plugin-dnsname"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "containers"; + repo = "dnsname"; + rev = "v${version}"; + sha256 = "090kpq2ppan9ayajdk5vwbvww30nphylgajn2p3441d4jg2nvsm3"; + }; + + patches = [ ./hardcode-dnsmasq-path.patch ]; + + postPatch = '' + substituteInPlace plugins/meta/dnsname/service.go --replace '@DNSMASQ@' '${dnsmasq}/bin/dnsmasq' + ''; + + vendorSha256 = null; + subPackages = [ "plugins/meta/dnsname" ]; + + doCheck = false; # NOTE: requires root privileges + + meta = with lib; { + description = "DNS name resolution for containers"; + homepage = "https://github.com/containers/dnsname"; + license = licenses.asl20; + platforms = platforms.linux; + maintainers = with maintainers; [ mikroskeem ]; + }; +} diff --git a/pkgs/applications/networking/cluster/dnsname-cni/hardcode-dnsmasq-path.patch b/pkgs/applications/networking/cluster/dnsname-cni/hardcode-dnsmasq-path.patch new file mode 100644 index 00000000000..24ef5eb85d1 --- /dev/null +++ b/pkgs/applications/networking/cluster/dnsname-cni/hardcode-dnsmasq-path.patch @@ -0,0 +1,19 @@ +diff --git a/plugins/meta/dnsname/service.go b/plugins/meta/dnsname/service.go +index fc05f75..f6b4caf 100644 +--- a/plugins/meta/dnsname/service.go ++++ b/plugins/meta/dnsname/service.go +@@ -16,10 +16,14 @@ import ( + + // newDNSMasqFile creates a new instance of a dnsNameFile + func newDNSMasqFile(domainName, networkInterface, networkName string) (dnsNameFile, error) { ++ /* + dnsMasqBinary, err := exec.LookPath("dnsmasq") + if err != nil { + return dnsNameFile{}, errors.Errorf("the dnsmasq cni plugin requires the dnsmasq binary be in PATH") + } ++ */ ++ _ = errors.Errorf // XXX(mikroskeem): reduce diff ++ dnsMasqBinary := "@DNSMASQ@" + masqConf := dnsNameFile{ + ConfigFile: makePath(networkName, confFileName), + Domain: domainName, diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6b690c6ccab..abc4aee9dab 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22851,6 +22851,8 @@ in cni = callPackage ../applications/networking/cluster/cni {}; cni-plugins = callPackage ../applications/networking/cluster/cni/plugins.nix {}; + dnsname-cni = callPackage ../applications/networking/cluster/dnsname-cni {}; + cntr = callPackage ../applications/virtualization/cntr { }; communi = libsForQt5.callPackage ../applications/networking/irc/communi { };