diff options
Diffstat (limited to 'pkgs/servers/etcd/3.5/default.nix')
-rw-r--r-- | pkgs/servers/etcd/3.5/default.nix | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/pkgs/servers/etcd/3.5/default.nix b/pkgs/servers/etcd/3.5/default.nix new file mode 100644 index 0000000000000..43f47aa0eaa15 --- /dev/null +++ b/pkgs/servers/etcd/3.5/default.nix @@ -0,0 +1,86 @@ +{ lib, buildGoModule, fetchFromGitHub, symlinkJoin, nixosTests, k3s }: + +let + version = "3.5.12"; + etcdSrcHash = "sha256-Z2WXNzFJYfRQCldUspQjUR5NyUzCCINycuEXWaTn4vU="; + etcdServerVendorHash = "sha256-S5cEIV4hKRjn9JFEKWBiSEPytHtVacsSnG6T8dofgyk="; + etcdUtlVendorHash = "sha256-Vgp44Kg6zUDYVJU6SiYd8ZEcAWqKPPTsqYafcfk89Cc="; + etcdCtlVendorHash = "sha256-PZLsekZzwlGzccCirNk9uUj70Ue5LMDs6LMWBI9yivs="; + + src = fetchFromGitHub { + owner = "etcd-io"; + repo = "etcd"; + rev = "v${version}"; + hash = etcdSrcHash; + }; + + CGO_ENABLED = 0; + + meta = with lib; { + description = "Distributed reliable key-value store for the most critical data of a distributed system"; + license = licenses.asl20; + homepage = "https://etcd.io/"; + maintainers = with maintainers; [ endocrimes offline superherointj ]; + platforms = platforms.darwin ++ platforms.linux; + }; + + etcdserver = buildGoModule rec { + pname = "etcdserver"; + + inherit CGO_ENABLED meta src version; + + vendorHash = etcdServerVendorHash; + + modRoot = "./server"; + + preInstall = '' + mv $GOPATH/bin/{server,etcd} + ''; + + # We set the GitSHA to `GitNotFound` to match official build scripts when + # git is unavailable. This is to avoid doing a full Git Checkout of etcd. + # User facing version numbers are still available in the binary, just not + # the sha it was built from. + ldflags = [ "-X go.etcd.io/etcd/api/v3/version.GitSHA=GitNotFound" ]; + }; + + etcdutl = buildGoModule rec { + pname = "etcdutl"; + + inherit CGO_ENABLED meta src version; + + vendorHash = etcdUtlVendorHash; + + modRoot = "./etcdutl"; + }; + + etcdctl = buildGoModule rec { + pname = "etcdctl"; + + inherit CGO_ENABLED meta src version; + + vendorHash = etcdCtlVendorHash; + + modRoot = "./etcdctl"; + }; +in +symlinkJoin { + name = "etcd-${version}"; + + inherit meta version; + + passthru = { + inherit etcdserver etcdutl etcdctl; + tests = { + inherit (nixosTests) etcd etcd-cluster; + k3s = k3s.passthru.tests.etcd; + }; + updateScript = ./update.sh; + }; + + paths = [ + etcdserver + etcdutl + etcdctl + ]; +} |