about summary refs log tree commit diff
path: root/pkgs/applications/virtualization
diff options
context:
space:
mode:
authorSascha Grunert <mail@saschagrunert.de>2019-05-19 14:25:52 +0200
committerzimbatm <zimbatm@zimbatm.com>2019-05-20 11:12:11 +0100
commit9b43c29047f3e19d22564edee7bd2f3fb3f2e611 (patch)
tree41930874445c64d6f35b0b6004464b8030156223 /pkgs/applications/virtualization
parent115d1babce27c3512f133261ff7d5192d15dcff3 (diff)
downloadnixlib-9b43c29047f3e19d22564edee7bd2f3fb3f2e611.tar
nixlib-9b43c29047f3e19d22564edee7bd2f3fb3f2e611.tar.gz
nixlib-9b43c29047f3e19d22564edee7bd2f3fb3f2e611.tar.bz2
nixlib-9b43c29047f3e19d22564edee7bd2f3fb3f2e611.tar.lz
nixlib-9b43c29047f3e19d22564edee7bd2f3fb3f2e611.tar.xz
nixlib-9b43c29047f3e19d22564edee7bd2f3fb3f2e611.tar.zst
nixlib-9b43c29047f3e19d22564edee7bd2f3fb3f2e611.zip
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 <mail@saschagrunert.de>
Diffstat (limited to 'pkgs/applications/virtualization')
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix75
1 files changed, 75 insertions, 0 deletions
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;
+  };
+}