about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix
new file mode 100644
index 000000000000..d123790edd2f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+, makeWrapper
+, git
+, go
+}:
+
+buildGoModule rec {
+  pname = "kubebuilder";
+  version = "3.1.0";
+
+  src = fetchFromGitHub {
+    owner = "kubernetes-sigs";
+    repo = "kubebuilder";
+    rev = "v${version}";
+    sha256 = "1726j2b5jyvllvnk60g6px3g2jyyphd9pc4vgid45mis9b60sh8a";
+  };
+  vendorSha256 = "0zxyd950ksjswja64rfri5v2yaalfg6qmq8215ildgrcavl9974n";
+
+  subPackages = ["cmd" "pkg/..."];
+
+  preBuild = ''
+    export buildFlagsArray+=("-ldflags=-X main.kubeBuilderVersion=v${version} \
+        -X main.goos=$GOOS \
+        -X main.goarch=$GOARCH \
+        -X main.gitCommit=v${version} \
+        -X main.buildDate=v${version}")
+  '';
+
+  doCheck = true;
+
+  postInstall = ''
+    mv $out/bin/cmd $out/bin/kubebuilder
+    wrapProgram $out/bin/kubebuilder \
+      --prefix PATH : ${lib.makeBinPath [ go ]}
+  '';
+
+  allowGoReference = true;
+  nativeBuildInputs = [ makeWrapper git ];
+
+  meta = with lib; {
+    homepage = "https://github.com/kubernetes-sigs/kubebuilder";
+    description = "SDK for building Kubernetes APIs using CRDs";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cmars ];
+  };
+}