From 1c153a860df313079e19cbedfe6624a5273623fc Mon Sep 17 00:00:00 2001 From: Azat Bahawi Date: Mon, 4 Jul 2022 00:40:10 +0300 Subject: [PATCH] fetchit: init at 0.0.1 Fixes: #172601 --- .../networking/cluster/fetchit/default.nix | 82 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 84 insertions(+) create mode 100644 pkgs/applications/networking/cluster/fetchit/default.nix diff --git a/pkgs/applications/networking/cluster/fetchit/default.nix b/pkgs/applications/networking/cluster/fetchit/default.nix new file mode 100644 index 000000000000..b4e7e66d7dce --- /dev/null +++ b/pkgs/applications/networking/cluster/fetchit/default.nix @@ -0,0 +1,82 @@ +{ lib +, stdenv +, buildGoModule +, fetchFromGitHub +, installShellFiles +, lvm2 +, pkg-config +}: + +buildGoModule rec { + pname = "fetchit"; + version = "0.0.1"; + + src = fetchFromGitHub { + owner = "containers"; + repo = "fetchit"; + rev = "v${version}"; + sha256 = "sha256-hxS/+/fbYOpMJ5VfvvG5l7wWKBUUR22rYn9X79DzUUk="; + }; + + vendorSha256 = "sha256-SyPd8P9s8R2YbGEPqFeztF98W1QyGSBumtirSdpm8VI="; + + subPackages = [ "cmd/fetchit" ]; + + nativeBuildInputs = [ pkg-config installShellFiles ]; + buildInputs = [ lvm2 ]; + + # Flags are derived from + # https://github.com/containers/fetchit/blob/v0.0.1/Makefile#L20-L29 + ldflags = [ + "-X k8s.io/client-go/pkg/version.gitMajor=0" + "-X k8s.io/client-go/pkg/version.gitMinor=0" + "-X k8s.io/client-go/pkg/version.gitTreeState=clean" + "-X k8s.io/client-go/pkg/version.gitVersion=v0.0.0" + "-X k8s.io/component-base/version.gitMajor=0" + "-X k8s.io/component-base/version.gitMajor=0" + "-X k8s.io/component-base/version.gitMinor=0" + "-X k8s.io/component-base/version.gitTreeState=clean" + "-X k8s.io/component-base/version.gitVersion=v0.0.0" + "-s" + "-w" + ]; + + tags = [ + "containers_image_openpgp" + "exclude_graphdriver_btrfs" + "gssapi" + "include_gcs" + "include_oss" + "netgo" + "osusergo" + "providerless" + ]; + + # There are no tests for cmd/fetchit. + doCheck = false; + + postInstall = '' + for i in bash fish zsh; do + installShellCompletion --cmd fetchit \ + --$i <($out/bin/fetchit completion $i) + done + ''; + + meta = with lib; { + description = "A tool to manage the life cycle and configuration of Podman containers"; + longDescription = '' + FetchIt allows for a GitOps based approach to manage containers running on + a single host or multiple hosts based on a git repository. This allows for + us to deploy a new host and provide the host a configuration value for + FetchIt and automatically any containers defined in the git repository and + branch will be deployed onto the host. This can be beneficial for + environments that do not require the complexity of Kubernetes to manage + the containers running on the host. + ''; + homepage = "https://fetchit.readthedocs.io"; + changelog = "https://github.com/containers/fetchit/releases/tag/${src.rev}"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ azahi ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ed03cb2a9aaa..1653dc9f549b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -767,6 +767,8 @@ with pkgs; inherit curl stdenv; }; + fetchit = callPackage ../applications/networking/cluster/fetchit { }; + fetchzip = callPackage ../build-support/fetchzip { } // { tests = pkgs.tests.fetchzip;