diff --git a/pkgs/tools/security/kube-hunter/default.nix b/pkgs/tools/security/kube-hunter/default.nix new file mode 100644 index 000000000000..6f15bde0104e --- /dev/null +++ b/pkgs/tools/security/kube-hunter/default.nix @@ -0,0 +1,57 @@ +{ lib +, fetchFromGitHub +, python3 +}: + +python3.pkgs.buildPythonApplication rec { + pname = "kube-hunter"; + version = "0.6.3"; + + src = fetchFromGitHub { + owner = "aquasecurity"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-OXiFWdbp6L9S57gRIROzuvXZ0R16lvKDqZR0kW0eEYQ="; + }; + + nativeBuildInputs = with python3.pkgs; [ + setuptools-scm + ]; + + propagatedBuildInputs = with python3.pkgs; [ + netaddr + netifaces + scapy + requests + prettytable + urllib3 + ruamel-yaml + future + packaging + pluggy + kubernetes + ]; + + checkInputs = with python3.pkgs; [ + pytestCheckHook + requests-mock + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "dataclasses" "" \ + --replace "kubernetes==12.0.1" "kubernetes" \ + --replace "--cov=kube_hunter" "" + ''; + + pythonImportsCheck = [ + "kube_hunter" + ]; + + meta = with lib; { + description = "Tool to search issues in Kubernetes clusters"; + homepage = "https://github.com/aquasecurity/kube-hunter"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9be29d6d4516..90d61e9cd05b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14814,6 +14814,8 @@ with pkgs; kube-aws = callPackage ../development/tools/kube-aws { }; + kube-hunter = callPackage ../tools/security/kube-hunter { }; + kubeaudit = callPackage ../tools/security/kubeaudit { }; kubectx = callPackage ../development/tools/kubectx { };