parent
ebc92dedb2
commit
387665f616
@ -0,0 +1,72 @@ |
||||
{ lib |
||||
, cni-plugins |
||||
, buildGoModule |
||||
, firecracker |
||||
, containerd |
||||
, runc |
||||
, makeWrapper |
||||
, fetchFromGitHub |
||||
, git |
||||
}: |
||||
|
||||
buildGoModule rec{ |
||||
pname = "ignite"; |
||||
version = "0.9.0"; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "weaveworks"; |
||||
repo = "ignite"; |
||||
rev = "v${version}"; |
||||
sha256 = "sha256-rjCsZ12DHcSw5GZu6jGTtqCPOZDSbYoMplkqvspbvO8="; |
||||
leaveDotGit = true; |
||||
}; |
||||
|
||||
vendorSha256 = null; |
||||
|
||||
doCheck = false; |
||||
|
||||
postPatch = '' |
||||
# ignite tries to run cni-plugins programs from /opt/cni/bin |
||||
substituteInPlace pkg/constants/dependencies.go \ |
||||
--replace "/opt/cni/bin/loopback" ${cni-plugins}/bin/loopback \ |
||||
--replace "/opt/cni/bin/bridge" ${cni-plugins}/bin/bridge |
||||
|
||||
# ignite tries to run cni-plugins programs from /opt/cni/bin |
||||
substituteInPlace pkg/network/cni/cni.go \ |
||||
--replace "/opt/cni/bin" ${cni-plugins}/bin |
||||
|
||||
# fetchgit doesn't fetch tags from git repository so it's necessary to force IGNITE_GIT_VERSION to be ${version} |
||||
# also forcing git state to be clean because if it's dirty ignite will try to fetch the image weaveworks/ignite:dev |
||||
# which is not in docker.io, we want it to fetch the image weaveworks/ignite:v${version} |
||||
substituteInPlace hack/ldflags.sh \ |
||||
--replace '$(git describe --tags --abbrev=14 "''${IGNITE_GIT_COMMIT}^{commit}" 2>/dev/null)' "v${version}" \ |
||||
--replace 'IGNITE_GIT_TREE_STATE="dirty"' 'IGNITE_GIT_TREE_STATE="clean"' |
||||
''; |
||||
|
||||
nativeBuildInputs = [ |
||||
git |
||||
makeWrapper |
||||
]; |
||||
|
||||
buildInputs = [ |
||||
firecracker |
||||
]; |
||||
|
||||
preBuild = '' |
||||
patchShebangs ./hack/ldflags.sh |
||||
export buildFlagsArray+=("-ldflags=$(./hack/ldflags.sh)") |
||||
''; |
||||
|
||||
postInstall = '' |
||||
for prog in hack ignite ignited ignite-spawn; do |
||||
wrapProgram "$out/bin/$prog" --prefix PATH : ${lib.makeBinPath [ cni-plugins firecracker containerd runc ]} |
||||
done |
||||
''; |
||||
|
||||
meta = with lib; { |
||||
description = "Ignite a Firecracker microVM"; |
||||
homepage = "https://github.com/weaveworks/ignite"; |
||||
license = licenses.asl20; |
||||
maintainers = with maintainers; [ tfmoraes ]; |
||||
}; |
||||
} |
Loading…
Reference in new issue