1{
2 lib,
3 buildGoModule,
4 go,
5 fetchFromGitHub,
6 makeWrapper,
7}:
8
9buildGoModule rec {
10 pname = "operator-sdk";
11 version = "1.39.2";
12
13 src = fetchFromGitHub {
14 owner = "operator-framework";
15 repo = "operator-sdk";
16 tag = "v${version}";
17 hash = "sha256-2Kv6mDC1MndUgttRYODnI8DZ84RVz8jn3+RpXmOemq0=";
18 };
19
20 vendorHash = "sha256-W+q9K2003dJfcjyoN4YMoY98cwBy+nfZCi3tHNLbm1w=";
21
22 nativeBuildInputs = [
23 makeWrapper
24 ];
25
26 buildInputs = [
27 go
28 ];
29
30 doCheck = false;
31
32 subPackages = [
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 = {
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 = lib.licenses.asl20;
49 maintainers = with lib.maintainers; [ arnarg ];
50 platforms = lib.platforms.linux ++ lib.platforms.darwin;
51 };
52}