1{ lib, buildGoModule, fetchFromGitHub }:
2
3buildGoModule rec {
4 pname = "cni-plugin-flannel";
5 version = "1.2.0";
6
7 src = fetchFromGitHub {
8 owner = "flannel-io";
9 repo = "cni-plugin";
10 rev = "v${version}";
11 sha256 = "sha256-9AVXm3+VJFLQwe7EHwI8LmWKxfX1r0yjmKeaReQvxR4=";
12 };
13
14 vendorHash = "sha256-DhvaXC/n4yiVDibB8kymzltNhEIxKdTsEDN9Sfc/wxU=";
15
16 ldflags = [
17 "-s" "-w"
18 "-X main.Version=${version}"
19 "-X main.Commit=${version}"
20 "-X main.Program=flannel"
21 ];
22
23 postInstall = ''
24 mv $out/bin/cni-plugin $out/bin/flannel
25 '';
26
27 doCheck = false;
28 doInstallCheck = true;
29
30 installCheckPhase = ''
31 runHook preInstallCheck
32 $out/bin/flannel 2>&1 | fgrep -q $version
33 runHook postInstallCheck
34 '';
35
36 meta = with lib; {
37 description = "flannel CNI plugin";
38 mainProgram = "flannel";
39 homepage = "https://github.com/flannel-io/cni-plugin/";
40 license = licenses.asl20;
41 platforms = platforms.linux;
42 maintainers = with maintainers; [ abbe ];
43 };
44}