Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 97 lines 2.1 kB view raw
1{ 2 lib, 3 buildGoModule, 4 fetchFromGitHub, 5 installShellFiles, 6}: 7let 8 generic = 9 { 10 version, 11 sha256, 12 rev ? version, 13 ... 14 }@attrs: 15 let 16 attrs' = builtins.removeAttrs attrs [ 17 "version" 18 "sha256" 19 "rev" 20 ]; 21 in 22 buildGoModule { 23 pname = "kops"; 24 inherit version; 25 26 src = fetchFromGitHub { 27 rev = rev; 28 owner = "kubernetes"; 29 repo = "kops"; 30 inherit sha256; 31 }; 32 33 vendorHash = null; 34 35 nativeBuildInputs = [ installShellFiles ]; 36 37 subPackages = [ "cmd/kops" ]; 38 39 ldflags = [ 40 "-s" 41 "-w" 42 "-X k8s.io/kops.Version=${version}" 43 "-X k8s.io/kops.GitVersion=${version}" 44 ]; 45 46 doCheck = false; 47 48 postInstall = '' 49 installShellCompletion --cmd kops \ 50 --bash <($GOPATH/bin/kops completion bash) \ 51 --fish <($GOPATH/bin/kops completion fish) \ 52 --zsh <($GOPATH/bin/kops completion zsh) 53 ''; 54 55 meta = with lib; { 56 description = "Easiest way to get a production Kubernetes up and running"; 57 mainProgram = "kops"; 58 homepage = "https://github.com/kubernetes/kops"; 59 changelog = "https://github.com/kubernetes/kops/tree/master/docs/releases"; 60 license = licenses.asl20; 61 maintainers = with maintainers; [ 62 offline 63 zimbatm 64 diegolelis 65 yurrriq 66 ]; 67 }; 68 } 69 // attrs'; 70in 71rec { 72 mkKops = generic; 73 74 kops_1_27 = mkKops rec { 75 version = "1.27.1"; 76 sha256 = "sha256-WV+0380yj8GHckY4PDM3WspbZ/YuYZOAQEMd2ygEOjo="; 77 rev = "v${version}"; 78 }; 79 80 kops_1_28 = mkKops rec { 81 version = "1.28.7"; 82 sha256 = "sha256-rTf7+w/o8MGSBKV9wCzZOEI0v31exZhOJpRABeF/KyI="; 83 rev = "v${version}"; 84 }; 85 86 kops_1_29 = mkKops rec { 87 version = "1.29.2"; 88 sha256 = "sha256-SRj0x9N+yfTG/UL/hu1ds46Zt6d5SUYU0PA9lPHO6jQ="; 89 rev = "v${version}"; 90 }; 91 92 kops_1_30 = mkKops rec { 93 version = "1.30.4"; 94 sha256 = "sha256-f+VdgQj6tHWrn+LG6qkArjcADYfpKjuOp+bU0BTYsWY="; 95 rev = "v${version}"; 96 }; 97}