1{ lib, buildGoModule, fetchFromGitHub }:
2
3buildGoModule rec {
4 pname = "snowcat";
5 version = "0.1.3";
6
7 src = fetchFromGitHub {
8 owner = "praetorian-inc";
9 repo = pname;
10 rev = "v${version}";
11 sha256 = "sha256-EulQYGOMIh952e4Xp13hT/HMW3qP1QXYtt5PEej1VTY=";
12 };
13 vendorSha256 = "sha256-D6ipwGMxT0B3uYUzg6Oo2TYnsOVBY0mYO5lC7vtVPc0=";
14
15 ldflags = [ "-s" "-w" ];
16
17 meta = with lib; {
18 homepage = "https://github.com/praetorian-inc/snowcat";
19 changelog = "https://github.com/praetorian-inc/snowcat/releases/tag/v${version}";
20 description = "A tool to audit the istio service mesh";
21 longDescription = ''
22 Snowcat gathers and analyzes the configuration of an Istio cluster and
23 audits it for potential violations of security best practices.
24
25 There are two main modes of operation for Snowcat. With no positional
26 argument, Snowcat will assume it is running inside of a cluster enabled
27 with Istio, and begin to enumerate the required data. Optionally, you can
28 point snowcat at a directory containing Kubernets YAML files.
29 '';
30 license = licenses.asl20;
31 maintainers = with maintainers; [ jk ];
32 };
33}