1{ lib
2, buildGoModule
3, go
4, fetchFromGitHub
5, makeWrapper
6}:
7
8buildGoModule rec {
9 pname = "operator-sdk";
10 version = "1.35.0";
11
12 src = fetchFromGitHub {
13 owner = "operator-framework";
14 repo = pname;
15 rev = "refs/tags/v${version}";
16 hash = "sha256-KalG1DLhvXEjNAOeP79BMYvI74j6nKnDkOYubIJ0Shs=";
17 };
18
19 vendorHash = "sha256-TuDbQoC9at3yQikGTfsAKJ5kc/naqLqfHEwXLOv+12A=";
20
21 nativeBuildInputs = [
22 makeWrapper
23 ];
24
25 buildInputs = [
26 go
27 ];
28
29 doCheck = false;
30
31 subPackages = [
32 "cmd/helm-operator"
33 "cmd/operator-sdk"
34 ];
35
36 # operator-sdk uses the go compiler at runtime
37 allowGoReference = true;
38
39 postFixup = ''
40 wrapProgram $out/bin/operator-sdk --prefix PATH : ${lib.makeBinPath [ go ]}
41 '';
42
43 meta = with lib; {
44 description = "SDK for building Kubernetes applications. Provides high level APIs, useful abstractions, and project scaffolding";
45 homepage = "https://github.com/operator-framework/operator-sdk";
46 changelog = "https://github.com/operator-framework/operator-sdk/releases/tag/v${version}";
47 license = licenses.asl20;
48 maintainers = with maintainers; [ arnarg ];
49 platforms = platforms.linux ++ platforms.darwin;
50 };
51}