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