1{
2 lib,
3 buildGoModule,
4 fetchFromGitHub,
5 testers,
6 sonobuoy,
7}:
8
9# SHA of ${version} for the tool's help output. Unfortunately this is needed in build flags.
10# The update script can update this automatically, the comment is used to find the line.
11let
12 rev = "a988242e8bbded3ef4602eda48addcfac24a1a91"; # update-commit-sha
13in
14buildGoModule rec {
15 pname = "sonobuoy";
16 version = "0.57.3"; # Do not forget to update `rev` above
17
18 ldflags =
19 let
20 t = "github.com/vmware-tanzu/sonobuoy";
21 in
22 [
23 "-s"
24 "-X ${t}/pkg/buildinfo.Version=v${version}"
25 "-X ${t}/pkg/buildinfo.GitSHA=${rev}"
26 "-X ${t}/pkg/buildDate=unknown"
27 ];
28
29 src = fetchFromGitHub {
30 owner = "vmware-tanzu";
31 repo = "sonobuoy";
32 rev = "v${version}";
33 hash = "sha256-YFItnwU08g4pVo4OOHscRmPRVXyr+R9YWYTxhSzd7iI=";
34 };
35
36 vendorHash = "sha256-QjVnC6CZXuw6qLNyX9ut2g1Ws1cYO1JuT043aqqeF0Q=";
37
38 subPackages = [ "." ];
39
40 passthru = {
41 updateScript = ./update.sh;
42 tests.version = testers.testVersion {
43 package = sonobuoy;
44 command = "sonobuoy version";
45 version = "v${version}";
46 };
47 };
48
49 meta = {
50 description = "Diagnostic tool that makes it easier to understand the state of a Kubernetes cluster";
51 longDescription = ''
52 Sonobuoy is a diagnostic tool that makes it easier to understand the state of
53 a Kubernetes cluster by running a set of Kubernetes conformance tests in an
54 accessible and non-destructive manner.
55 '';
56
57 homepage = "https://sonobuoy.io";
58 changelog = "https://github.com/vmware-tanzu/sonobuoy/releases/tag/v${version}";
59 license = lib.licenses.asl20;
60 mainProgram = "sonobuoy";
61 maintainers = with lib.maintainers; [
62 carlosdagos
63 saschagrunert
64 wilsonehusin
65 ];
66 };
67}