summary refs log tree commit diff
path: root/Makefile
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2021-05-15 20:00:31 -0700
committerFranck Cuny <franck@fcuny.net>2021-05-15 20:00:31 -0700
commit8bac58f7d9abd5e4e41eae0eafc08f03ba1a01ce (patch)
tree2ddcbc1f00067545794fafc0d53b1ab1bed0780d /Makefile
parentrename the variable for the linux kernel (diff)
downloadcontainerd-to-vm-8bac58f7d9abd5e4e41eae0eafc08f03ba1a01ce.tar.gz
Makefile: install binaries and configs
To help working on this project in the future, let's try to install
dependencies and configurations with `make`. For now we know that we
need the firecracker binary, the CNI configuration and the CNI plugin
for TAP.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile29
1 files changed, 23 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index a7997d8..11b7f9a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,26 @@
+FC_VERSION?=0.24.3-x86_64
+FC_BINARY?=hack/firecracker/firecracker-v$(FC_VERSION)
+
+FCNET_CONFIG?=/etc/cni/conf.d/50-c2vm.conflist
+CNI_BIN_ROOT?=/opt/cni/bin
+CNI_TAP_PLUGIN?=$(CNI_BIN_ROOT)/tc-redirect-tap
+
 .PHONY: build
 build:
-	go build -o c2vm cmd/c2vm/main.go
+	@go build -o c2vm cmd/c2vm/main.go
+
+$(FC_BINARY):
+	@mkdir -p hack/firecracker
+	@curl -L -o hack/firecracker/firecracker.tgz -s https://github.com/firecracker-microvm/firecracker/releases/download/v0.24.3/firecracker-v$(FC_VERSION).tgz
+	@tar xvzf hack/firecracker/firecracker.tgz -C hack/firecracker
+
+$(FCNET_CONFIG):
+	@sudo mkdir -p $(dir $(FCNET_CONFIG))
+	@sudo cp hack/cni/50-c2vm.conflist $(FCNET_CONFIG)
+
+$(CNI_TAP_PLUGIN):
+	@go install github.com/awslabs/tc-redirect-tap/cmd/tc-redirect-tap@latest
+	@sudo cp ${GOPATH}/bin/tc-redirect-tap $(CNI_BIN_ROOT)
 
-.PHONY: firecracker-binary
-firecracker-binary:
-	mkdir -p hack/firecracker
-	curl -L -o hack/firecracker/firecracker.tgz https://github.com/firecracker-microvm/firecracker/releases/download/v0.24.3/firecracker-v0.24.3-x86_64.tgz
-	tar xvzf hack/firecracker/firecracker.tgz -C hack/firecracker
+.PHONY: all
+all: build $(FC_BINARY) $(FCNET_CONFIG) $(CNI_TAP_PLUGIN)