{ stdenvNoCC, lib, kubernetes-helm, cacert }: let cleanName = lib.replaceStrings [ "/" ] [ "-" ]; in { # name of the chart chart , # chart url to fetch from custom location chartUrl ? null , # version of the chart version ? null , # chart hash sha256 , # whether to extract chart untar ? true , # use custom charts repo repo ? null , # pass --verify to helm chart verify ? false , # pass --devel to helm chart devel ? false , }: stdenvNoCC.mkDerivation { name = "${cleanName chart}-${ if version == null then "dev" else version }"; buildCommand = '' export HOME="$PWD" echo "adding helm repo" ${ if repo == null then "" else "helm repo add repository ${repo}" } echo "fetching helm chart" helm fetch -d ./chart \ ${ if untar then "--untar" else ""} \ ${ if version == null then "" else "--version ${version}" } \ ${ if devel then "--devel" else "" } \ ${ if verify then "--verify" else "" } \ ${ if chartUrl == null then ( if repo == null then chart else "repository/${chart}" ) else chartUrl} cp -r chart/*/ $out ''; outputHashMode = "recursive"; outputHashAlgo = "sha256"; outputHash = sha256; nativeBuildInputs = [ kubernetes-helm cacert ]; }