mirror of
https://github.com/TECHNOFAB11/kubenix.git
synced 2025-12-12 08:00:06 +01:00
48 lines
1.2 KiB
Nix
48 lines
1.2 KiB
Nix
{ stdenvNoCC, lib, kubernetes-helm, cacert }:
|
|
|
|
let
|
|
cleanName = name: lib.replaceStrings ["/"] ["-"] name;
|
|
|
|
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"
|
|
helm init --client-only >/dev/null
|
|
${if repo == null then "" else "helm repo add repository ${repo}"}
|
|
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 ];
|
|
}
|