# unpackPhase # patchPhase # configurePhase # buildPhase # checkPhase # installPhase # fixupPhase # installCheckPhase # distPhase { lib, pkgs, stdenv, k8s, kubectl, secret_name, secret_namespace, secret_values ? { }, secret_type ? null, secret_annotations ? null, ... }: let toBase64 = (pkgs.callPackage ../../contrib/base64/package.nix { inherit lib; }).toBase64; metadata = { name = "${secret_name}"; namespace = "${secret_namespace}"; } // lib.optionalAttrs (secret_annotations != null) { "annotations" = secret_annotations; }; secret_yaml = { apiVersion = "v1"; kind = "Secret"; metadata = metadata; data = (builtins.mapAttrs (key: val: (toBase64 val)) secret_values); } // lib.optionalAttrs (secret_type != null) { "type" = secret_type; }; 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"; installPhase = '' mkdir "$out" cp "${yaml_file}" "$out/${secret_name}.yaml" ''; })