From b3168b3fe0f4be76d153752c2655f4e44f80e946 Mon Sep 17 00:00:00 2001 From: Sigmanificient Date: Wed, 11 Feb 2026 22:00:55 +0100 Subject: [PATCH] mkKops: use lib.extendMkDerivation --- .../networking/cluster/kops/default.nix | 66 ++---------------- .../networking/cluster/kops/mkkops.nix | 68 +++++++++++++++++++ 2 files changed, 72 insertions(+), 62 deletions(-) create mode 100644 pkgs/applications/networking/cluster/kops/mkkops.nix diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix index 2e08c978fd39..1cc4665d249c 100644 --- a/pkgs/applications/networking/cluster/kops/default.nix +++ b/pkgs/applications/networking/cluster/kops/default.nix @@ -4,71 +4,13 @@ buildGoModule, fetchFromGitHub, installShellFiles, + callPackage, }: let - generic = - { - version, - sha256, - rev ? version, - ... - }@attrs: - let - attrs' = removeAttrs attrs [ - "version" - "sha256" - "rev" - ]; - in - buildGoModule { - pname = "kops"; - inherit version; - - src = fetchFromGitHub { - rev = rev; - owner = "kubernetes"; - repo = "kops"; - inherit sha256; - }; - - vendorHash = null; - - nativeBuildInputs = [ installShellFiles ]; - - subPackages = [ "cmd/kops" ]; - - ldflags = [ - "-s" - "-w" - "-X k8s.io/kops.Version=${version}" - "-X k8s.io/kops.GitVersion=${version}" - ]; - - doCheck = false; - - postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' - installShellCompletion --cmd kops \ - --bash <($GOPATH/bin/kops completion bash) \ - --fish <($GOPATH/bin/kops completion fish) \ - --zsh <($GOPATH/bin/kops completion zsh) - ''; - - meta = { - description = "Easiest way to get a production Kubernetes up and running"; - mainProgram = "kops"; - homepage = "https://github.com/kubernetes/kops"; - changelog = "https://github.com/kubernetes/kops/tree/master/docs/releases"; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ - zimbatm - yurrriq - ]; - }; - } - // attrs'; + mkKops = callPackage ./mkkops.nix { }; in -rec { - mkKops = generic; +{ + inherit mkKops; kops_1_31 = mkKops rec { version = "1.31.0"; diff --git a/pkgs/applications/networking/cluster/kops/mkkops.nix b/pkgs/applications/networking/cluster/kops/mkkops.nix new file mode 100644 index 000000000000..9d3dff3e7ebe --- /dev/null +++ b/pkgs/applications/networking/cluster/kops/mkkops.nix @@ -0,0 +1,68 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + installShellFiles, + stdenv, +}: +lib.extendMkDerivation { + constructDrv = buildGoModule; + + excludeDrvArgNames = [ + "sha256" + "rev" + ]; + + extendDrvArgs = + finalAttrs: + { + version, + sha256, + rev ? version, + ... + }: + { + pname = "kops"; + + src = fetchFromGitHub { + rev = rev; + owner = "kubernetes"; + repo = "kops"; + inherit sha256; + }; + + vendorHash = null; + + nativeBuildInputs = [ installShellFiles ]; + + subPackages = [ "cmd/kops" ]; + + ldflags = [ + "-s" + "-w" + "-X k8s.io/kops.Version=${finalAttrs.version}" + "-X k8s.io/kops.GitVersion=${finalAttrs.version}" + ]; + + doCheck = false; + + postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + installShellCompletion --cmd kops \ + --bash <($GOPATH/bin/kops completion bash) \ + --fish <($GOPATH/bin/kops completion fish) \ + --zsh <($GOPATH/bin/kops completion zsh) + ''; + + meta = { + description = "Easiest way to get a production Kubernetes up and running"; + mainProgram = "kops"; + homepage = "https://github.com/kubernetes/kops"; + changelog = "https://github.com/kubernetes/kops/tree/master/docs/releases"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ + zimbatm + yurrriq + ]; + }; + }; +}