diff options
Diffstat (limited to 'pkgs/applications/networking/cluster/kuma/default.nix')
-rw-r--r-- | pkgs/applications/networking/cluster/kuma/default.nix | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/pkgs/applications/networking/cluster/kuma/default.nix b/pkgs/applications/networking/cluster/kuma/default.nix new file mode 100644 index 00000000000..d7a58f09b4e --- /dev/null +++ b/pkgs/applications/networking/cluster/kuma/default.nix @@ -0,0 +1,65 @@ +{ lib +, fetchFromGitHub +, buildGoModule +, coredns +, installShellFiles +, isFull ? false +, enableGateway ? false +, pname ? "kuma" +, components ? lib.optionals isFull [ + "kumactl" + "kuma-cp" + "kuma-prometheus-sd" + "kuma-dp" + ] +}: + +buildGoModule rec { + inherit pname ; + version = "1.4.0"; + tags = lib.optionals enableGateway ["gateway"]; + vendorSha256 = "1fc5psvbd9bpc6c3y2cpx5dx8cgr2fcp7nln3kwfgbryahq2y8wl"; + + src = fetchFromGitHub { + owner = "kumahq"; + repo = "kuma"; + rev = version; + sha256 = "0agib3w5s270n5rhg54m3p4f21s5fhdrhaks374j7l21njs7xhqb"; + }; + + doCheck = false; + + nativeBuildInputs = [installShellFiles] ++ lib.optionals isFull [coredns]; + + preBuild = '' + export HOME=$TMPDIR + ''; + + subPackages = map (p: "app/" + p) components; + + postInstall = lib.concatMapStringsSep "\n" (p: '' + installShellCompletion --cmd ${p} \ + --bash <($out/bin/${p} completion bash) \ + --fish <($out/bin/${p} completion fish) \ + --zsh <($out/bin/${p} completion zsh) + '') components + lib.optionalString isFull '' + ln -sLf ${coredns}/bin/coredns $out/bin + ''; + + ldflags = let + prefix = "github.com/kumahq/kuma/pkg/version"; + in [ + "-s" "-w" + "-X ${prefix}.version=${version}" + "-X ${prefix}.gitTag=${version}" + "-X ${prefix}.gitCommit=${version}" + "-X ${prefix}.buildDate=${version}" + ]; + + meta = with lib; { + description = "Service mesh controller"; + homepage = "https://kuma.io/"; + license = licenses.asl20; + maintainers = with maintainers; [ zbioe ]; + }; +} |