53 lines
1.1 KiB
Nix
53 lines
1.1 KiB
Nix
# unpackPhase
|
|
# patchPhase
|
|
# configurePhase
|
|
# buildPhase
|
|
# checkPhase
|
|
# installPhase
|
|
# fixupPhase
|
|
# installCheckPhase
|
|
# distPhase
|
|
{
|
|
lib,
|
|
pkgs,
|
|
stdenv,
|
|
k8s,
|
|
kubectl,
|
|
secret_name,
|
|
secret_namespace,
|
|
secret_values ? { },
|
|
...
|
|
}:
|
|
let
|
|
toBase64 = (pkgs.callPackage ../../contrib/base64/package.nix { inherit lib; }).toBase64;
|
|
secret_yaml = {
|
|
apiVersion = "v1";
|
|
kind = "Secret";
|
|
metadata = {
|
|
name = "${secret_name}";
|
|
namespace = "${secret_namespace}";
|
|
};
|
|
data = (builtins.mapAttrs (key: val: (toBase64 val)) secret_values);
|
|
};
|
|
settingsFormat = pkgs.formats.yaml { };
|
|
yaml_body = settingsFormat.generate "${secret_name}.yaml" secret_yaml;
|
|
yaml_file = pkgs.writeTextFile {
|
|
name = "${secret_name}.yaml";
|
|
text = (builtins.readFile yaml_body);
|
|
};
|
|
in
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
name = "k8s-secret-generic-${secret_name}";
|
|
nativeBuildInputs = [ kubectl ];
|
|
buildInputs = [ ];
|
|
|
|
unpackPhase = "true";
|
|
|
|
# lib.attrsets.mapAttrsToList
|
|
|
|
installPhase = ''
|
|
mkdir "$out"
|
|
cp "${yaml_file}" "$out/${secret_name}.yaml"
|
|
'';
|
|
})
|