krr: init at 1.7.0

This commit is contained in:
Azat Bahawi 2024-03-03 22:01:53 +03:00
parent 9a3b0ba3b5
commit c3b8f188d8
No known key found for this signature in database
GPG Key ID: C8C6BDDB3847F72B

View File

@ -0,0 +1,68 @@
{ lib
, python3
, fetchFromGitHub
, testers
, krr
}:
python3.pkgs.buildPythonPackage rec {
pname = "krr";
version = "1.7.0";
pyproject = true;
src = fetchFromGitHub {
owner = "robusta-dev";
repo = "krr";
rev = "refs/tags/v${version}";
hash = "sha256-8K97v/8lsLqr88MSOT3peOy0GZp1so9GaipG/t2uR88=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'aiostream = "^0.4.5"' 'aiostream = "*"' \
--replace-fail 'kubernetes = "^26.1.0"' 'kubernetes = "*"' \
--replace-fail 'pydantic = "1.10.7"' 'pydantic = "*"' \
--replace-fail 'typer = { extras = ["all"], version = "^0.7.0" }' 'typer = { extras = ["all"], version = "*" }'
'';
propagatedBuildInputs = with python3.pkgs; [
aiostream
alive-progress
kubernetes
numpy
poetry-core
prometheus-api-client
prometrix
pydantic_1
slack-sdk
typer
] ++ typer.optional-dependencies.all;
nativeCheckInputs = with python3.pkgs; [
pytestCheckHook
];
pythonImportsCheck = [
"robusta_krr"
];
passthru.tests.version = testers.testVersion {
package = krr;
command = "krr version";
};
meta = with lib; {
description = "Prometheus-based Kubernetes resource recommendations";
longDescription = ''
Robusta KRR (Kubernetes Resource Recommender) is a CLI tool for optimizing
resource allocation in Kubernetes clusters. It gathers Pod usage data from
Prometheus and recommends requests and limits for CPU and memory. This
reduces costs and improves performance.
'';
homepage = "https://github.com/robusta-dev/krr";
changelog = "https://github.com/robusta-dev/krr/releases/tag/v${src.rev}";
license = licenses.mit;
maintainers = with lib.maintainers; [ azahi ];
mainProgram = "krr";
};
}