From 869aae7927e42045befaa1bd91fb001c80781835 Mon Sep 17 00:00:00 2001 From: Matt Field Date: Wed, 23 Apr 2025 17:19:57 +0100 Subject: [PATCH] fluxcd-operator: init at 0.19.0 --- pkgs/by-name/fl/fluxcd-operator/package.nix | 66 +++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 pkgs/by-name/fl/fluxcd-operator/package.nix diff --git a/pkgs/by-name/fl/fluxcd-operator/package.nix b/pkgs/by-name/fl/fluxcd-operator/package.nix new file mode 100644 index 000000000000..dac5909a448f --- /dev/null +++ b/pkgs/by-name/fl/fluxcd-operator/package.nix @@ -0,0 +1,66 @@ +{ + lib, + buildGo124Module, + fetchFromGitHub, + installShellFiles, + versionCheckHook, + nix-update-script, + stdenv, +}: +buildGo124Module (finalAttrs: { + pname = "fluxcd-operator"; + version = "0.19.0"; + + src = fetchFromGitHub { + owner = "controlplaneio-fluxcd"; + repo = "fluxcd-operator"; + tag = "v${finalAttrs.version}"; + hash = "sha256-2AkO8nie2ep3ASy0hkM9JEryv0ekyRNPkCoZ3WgBQwU="; + }; + + vendorHash = "sha256-sQhp89AzICeu3oRVh3ys93PyeU5A24T36QwQsHxMSaY="; + + ldflags = [ + "-s" + "-w" + "-X main.VERSION=${finalAttrs.version}" + ]; + + subPackages = [ "cmd/cli" ]; + + nativeBuildInputs = [ installShellFiles ]; + + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckProgram = "${placeholder "out"}/bin/flux-operator"; + versionCheckProgramArg = "--version"; + doInstallCheck = true; + + env.CGO_ENABLED = 0; + + postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + mv $out/bin/cli $out/bin/flux-operator + for shell in bash fish zsh; do + installShellCompletion --cmd flux-operator \ + --$shell <($out/bin/flux-operator completion $shell) + done + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Kubernetes controller for managing the lifecycle of Flux CD"; + homepage = "https://fluxcd.control-plane.io/operator/"; + downloadPage = "https://github.com/controlplaneio-fluxcd/flux-operator"; + longDescription = '' + The Flux Operator is a Kubernetes CRD controller that manages the lifecycle of CNCF Flux CD + and the ControlPlane enterprise distribution. The operator extends Flux with self-service + capabilities and preview environments for GitLab and GitHub pull requests testing. + ''; + changelog = "https://github.com/controlplaneio-fluxcd/flux-operator/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ + mattfield + ]; + mainProgram = "flux-operator"; + }; +})