lol
1{
2 lib,
3 stdenv,
4 buildGoModule,
5 fetchFromGitHub,
6 installShellFiles,
7 testers,
8 nix-update-script,
9 kind,
10}:
11
12buildGoModule rec {
13 pname = "kind";
14 version = "0.30.0";
15
16 src = fetchFromGitHub {
17 rev = "v${version}";
18 owner = "kubernetes-sigs";
19 repo = "kind";
20 hash = "sha256-TssyKO5v3xqSDjS3DYIlO7iOx/zzS3E9O88V9R7S5Ac=";
21 };
22
23 patches = [
24 # fix kernel module path used by kind
25 ./kernel-module-path.patch
26 ];
27
28 vendorHash = "sha256-tRpylYpEGF6XqtBl7ESYlXKEEAt+Jws4x4VlUVW8SNI=";
29
30 nativeBuildInputs = [ installShellFiles ];
31
32 subPackages = [ "." ];
33
34 env.CGO_ENABLED = 0;
35
36 ldflags = [
37 "-s"
38 "-w"
39 ];
40
41 postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
42 installShellCompletion --cmd kind \
43 --bash <($out/bin/kind completion bash) \
44 --fish <($out/bin/kind completion fish) \
45 --zsh <($out/bin/kind completion zsh)
46 '';
47
48 passthru = {
49 tests.version = testers.testVersion {
50 package = kind;
51 };
52 updateScript = nix-update-script { };
53 };
54
55 meta = with lib; {
56 description = "Kubernetes IN Docker - local clusters for testing Kubernetes";
57 homepage = "https://github.com/kubernetes-sigs/kind";
58 maintainers = with maintainers; [
59 offline
60 rawkode
61 ];
62 license = licenses.asl20;
63 mainProgram = "kind";
64 };
65}