helmfile: unpin buildGoModule
[NixPkgs.git] / pkgs / applications / networking / cluster / helmfile / default.nix
blobbc0b3786f4e23a5ffe9254ac3aa94cf19a68e774
1 { lib
2 , buildGoModule
3 , fetchFromGitHub
4 , installShellFiles
5 , makeWrapper
6 , pluginsDir ? null
7 }:
9 buildGoModule rec {
10   pname = "helmfile";
11   version = "0.165.0";
13   src = fetchFromGitHub {
14     owner = "helmfile";
15     repo = "helmfile";
16     rev = "v${version}";
17     hash = "sha256-fXrfthjWaCo0p7NwP9EWa0uFeCCHInzi7h2tgawHlh0=";
18   };
20   vendorHash = "sha256-nWfj/E3Lg58wZ27LEI91+Ns9lj+unK6xYTEcxdAFOXI=";
22   doCheck = false;
24   subPackages = [ "." ];
26   ldflags = [ "-s" "-w" "-X go.szostok.io/version.version=v${version}" ];
28   nativeBuildInputs =
29     [ installShellFiles ] ++
30     lib.optional (pluginsDir != null) makeWrapper;
32   postInstall = lib.optionalString (pluginsDir != null) ''
33     wrapProgram $out/bin/helmfile \
34       --set HELM_PLUGINS "${pluginsDir}"
35   '' + ''
36     installShellCompletion --cmd helmfile \
37       --bash <($out/bin/helmfile completion bash) \
38       --fish <($out/bin/helmfile completion fish) \
39       --zsh <($out/bin/helmfile completion zsh)
40   '';
42   meta = {
43     description = "Declarative spec for deploying Helm charts";
44     mainProgram = "helmfile";
45     longDescription = ''
46       Declaratively deploy your Kubernetes manifests, Kustomize configs,
47       and charts as Helm releases in one shot.
48     '';
49     homepage = "https://helmfile.readthedocs.io/";
50     license = lib.licenses.mit;
51     maintainers = with lib.maintainers; [ pneumaticat yurrriq ];
52   };