From 9b43c29047f3e19d22564edee7bd2f3fb3f2e611 Mon Sep 17 00:00:00 2001 From: Sascha Grunert Date: Sun, 19 May 2019 14:25:52 +0200 Subject: cri-o: init at version v1.14.1 This commits adds the CRI-O package, which includes the `crio` binary as well as `conmon` and `pause`. The configuration is not part of this package because it would be included in a service. Signed-off-by: Sascha Grunert --- pkgs/applications/virtualization/cri-o/default.nix | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 pkgs/applications/virtualization/cri-o/default.nix (limited to 'pkgs/applications/virtualization') diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix new file mode 100644 index 000000000000..6e2790ef8590 --- /dev/null +++ b/pkgs/applications/virtualization/cri-o/default.nix @@ -0,0 +1,75 @@ +{ flavor ? "" +, ldflags ? "" +, stdenv +, btrfs-progs +, buildGoPackage +, fetchFromGitHub +, glibc +, gpgme +, libapparmor +, libassuan +, libgpgerror +, libseccomp +, libselinux +, lvm2 +, pkgconfig +}: + +buildGoPackage rec { + project = "cri-o"; + version = "1.14.1"; + name = "${project}-${version}${flavor}"; + + goPackagePath = "github.com/${project}/${project}"; + + src = fetchFromGitHub { + owner = "cri-o"; + repo = "cri-o"; + rev = "v${version}"; + sha256 = "1cclxarwabk5zlqysm2dzgsm6qkxyzbnlylr0gs57ppn4ibky3nk"; + }; + + outputs = [ "bin" "out" ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ btrfs-progs gpgme libapparmor libassuan libgpgerror + libseccomp libselinux lvm2 ] + ++ stdenv.lib.optionals (glibc != null) [ glibc glibc.static ]; + + makeFlags = ''BUILDTAGS="apparmor seccomp selinux + containers_image_ostree_stub"''; + + buildPhase = '' + pushd go/src/${goPackagePath} + + # Build conmon and pause + go build -tags ${makeFlags} -o bin/crio-config -buildmode=pie \ + -ldflags '-s -w ${ldflags}' ${goPackagePath}/cmd/crio-config + + pushd conmon + ../bin/crio-config + popd + + make -C conmon + make -C pause + + # Build the crio binary + go build -tags ${makeFlags} -o bin/crio -buildmode=pie \ + -ldflags '-s -w ${ldflags}' ${goPackagePath}/cmd/crio + ''; + installPhase = '' + install -Dm755 bin/crio $bin/bin/crio${flavor} + + mkdir -p $bin/libexec/crio + install -Dm755 bin/conmon $bin/libexec/crio/conmon${flavor} + install -Dm755 bin/pause $bin/libexec/crio/pause${flavor} + ''; + + meta = with stdenv.lib; { + homepage = https://cri-o.io; + description = ''Open Container Initiative-based implementation of the + Kubernetes Container Runtime Interface''; + license = licenses.asl20; + maintainers = with maintainers; [ saschagrunert ]; + platforms = platforms.linux; + }; +} -- cgit 1.4.1