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 = 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 ];
|
|
}
|