nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 cni-plugins,
4 buildGoModule,
5 firecracker,
6 containerd,
7 runc,
8 makeWrapper,
9 fetchFromGitHub,
10}:
11
12buildGoModule rec {
13 pname = "flintlock";
14 version = "0.8.1";
15
16 src = fetchFromGitHub {
17 owner = "weaveworks";
18 repo = "flintlock";
19 rev = "v${version}";
20 sha256 = "sha256-Kbk94sqj0aPsVonPsiu8kbjhIOURB1kX9Lt3NURL+jk=";
21 };
22
23 vendorHash = "sha256-Iv1qHEQLgw6huCA/6PKNmm+dS2yHgOvY/oy2fKjwEpY=";
24
25 subPackages = [
26 "cmd/flintlock-metrics"
27 "cmd/flintlockd"
28 ];
29
30 ldflags = [
31 "-s"
32 "-w"
33 "-X github.com/weaveworks/flintlock/internal/version.Version=v${version}"
34 ];
35
36 nativeBuildInputs = [
37 makeWrapper
38 ];
39
40 buildInputs = [
41 firecracker
42 ];
43
44 postInstall = ''
45 for prog in flintlockd flintlock-metrics; do
46 wrapProgram "$out/bin/$prog" --prefix PATH : ${
47 lib.makeBinPath [
48 cni-plugins
49 firecracker
50 containerd
51 runc
52 ]
53 }
54 done
55 '';
56
57 meta = {
58 description = "Create and manage the lifecycle of MicroVMs backed by containerd";
59 homepage = "https://github.com/weaveworks-liquidmetal/flintlock";
60 license = lib.licenses.mpl20;
61 platforms = [
62 "x86_64-linux"
63 "aarch64-linux"
64 ];
65 maintainers = with lib.maintainers; [ techknowlogick ];
66 };
67}