diff --git a/pkgs/applications/networking/cluster/fluxcd/default.nix b/pkgs/applications/networking/cluster/fluxcd/default.nix new file mode 100644 index 00000000000..bd903bf7253 --- /dev/null +++ b/pkgs/applications/networking/cluster/fluxcd/default.nix @@ -0,0 +1,43 @@ +{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }: + +buildGoModule rec { + pname = "fluxcd"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "fluxcd"; + repo = "flux2"; + rev = "v${version}"; + sha256 = "125im8br7x8djd6zagvikpc02k55pxbd97rjj3g2frj9plbryh8n"; + }; + + vendorSha256 = "0f818a0z71nl061db93iqb87njx66vbrra1zh92warbx8djdsr7k"; + + nativeBuildInputs = [ installShellFiles ]; + + doCheck = false; + + subPackages = [ "cmd/flux" ]; + + buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ]; + + postInstall = '' + for shell in bash fish zsh; do + $out/bin/flux completion $shell > flux.$shell + installShellCompletion flux.$shell + done + ''; + + meta = with stdenv.lib; { + description = "Open and extensible continuous delivery solution for Kubernetes"; + longDescription = '' + Flux is a tool for keeping Kubernetes clusters in sync + with sources of configuration (like Git repositories), and automating + updates to configuration when there is new code to deploy. + ''; + homepage = "https://fluxcd.io"; + license = licenses.asl20; + maintainers = with maintainers; [ jlesquembre ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0c7c2919ec3..970cdf7ad7e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22343,6 +22343,8 @@ in fluxctl = callPackage ../applications/networking/cluster/fluxctl { }; + fluxcd = callPackage ../applications/networking/cluster/fluxcd { }; + linkerd = callPackage ../applications/networking/cluster/linkerd { }; kubernetes-helm = callPackage ../applications/networking/cluster/helm { };