@@ -34,25 +34,21 @@ firecracker_version=v1.0.0
34
34
release_url =https://github.com/firecracker-microvm/firecracker/releases/download/$(firecracker_version ) /firecracker-$(firecracker_version ) -$(arch ) .tgz
35
35
36
36
testdata_objects = \
37
- $(FC_TEST_DATA_PATH ) /vmlinux \
38
- $(FC_TEST_DATA_PATH ) /root-drive.img \
39
- $(FC_TEST_DATA_PATH ) /jailer \
40
37
$(FC_TEST_DATA_PATH ) /firecracker \
38
+ $(FC_TEST_BIN_PATH ) /host-local \
39
+ $(FC_TEST_DATA_PATH ) /jailer \
41
40
$(FC_TEST_DATA_PATH ) /ltag \
42
41
$(FC_TEST_BIN_PATH ) /ptp \
43
- $(FC_TEST_BIN_PATH ) /host-local \
42
+ $(FC_TEST_DATA_PATH ) /root-drive.img \
43
+ $(FC_TEST_DATA_PATH ) /root-drive-with-ssh.img \
44
+ $(FC_TEST_DATA_PATH ) /root-drive-ssh-key \
44
45
$(FC_TEST_BIN_PATH ) /static \
45
- $(FC_TEST_BIN_PATH ) /tc-redirect-tap
46
-
47
- # Enable pulling of artifacts from S3 instead of building
48
- # TODO: https://github.com/firecracker-microvm/firecracker-go-sdk/issues/418
49
- ifeq ($(GID ) , 0)
50
- testdata_objects += $(FC_TEST_DATA_PATH ) /root-drive-with-ssh.img $(FC_TEST_DATA_PATH ) /root-drive-ssh-key
51
- endif
46
+ $(FC_TEST_BIN_PATH ) /tc-redirect-tap \
47
+ $(FC_TEST_DATA_PATH ) /vmlinux
52
48
53
49
testdata_dir = testdata/firecracker.tgz testdata/firecracker_spec-$(firecracker_version ) .yaml testdata/LICENSE testdata/NOTICE testdata/THIRD-PARTY
54
50
55
- # --location is needed to follow redirects on github.com
51
+ # --location is needed to follow redirects
56
52
curl = curl --location
57
53
58
54
GO_VERSION = $(shell go version | cut -c 14- | cut -d' ' -f1 | cut -d'.' -f1,2)
@@ -96,26 +92,23 @@ $(FC_TEST_DATA_PATH)/vmlinux:
96
92
97
93
$(FC_TEST_DATA_PATH ) /firecracker $(FC_TEST_DATA_PATH ) /jailer : $(FC_TEST_DATA_PATH ) /fc.stamp
98
94
95
+ # Download the pinned release version of firecracker and jailer version from github
99
96
$(FC_TEST_DATA_PATH ) /fc.stamp :
100
97
$(curl ) ${release_url} | tar -xvzf - -C $(FC_TEST_DATA_PATH )
101
98
mv $(FC_TEST_DATA_PATH ) /release-$(firecracker_version ) -$(arch ) /firecracker-$(firecracker_version ) -$(arch ) $(FC_TEST_DATA_PATH ) /firecracker
102
99
mv $(FC_TEST_DATA_PATH ) /release-$(firecracker_version ) -$(arch ) /jailer-$(firecracker_version ) -$(arch ) $(FC_TEST_DATA_PATH ) /jailer
100
+ rm -rf $(FC_TEST_DATA_PATH ) /release-$(firecracker_version ) -$(arch )
103
101
touch $@
104
102
105
103
$(FC_TEST_DATA_PATH ) /root-drive.img :
106
104
$(curl ) -o $@ https://s3.amazonaws.com/spec.ccfc.min/img/hello/fsfiles/hello-rootfs.ext4
107
105
106
+ # Download pre-built rootfs image and its ssh key from S3
107
+ # TODO: Change the pre-built rootfs to ubuntu 22.04 once firecracker team has it in the public S3 bucket
108
+ # Currently the S3 bucket only has ubuntu 18.04 image
108
109
$(FC_TEST_DATA_PATH ) /root-drive-ssh-key $(FC_TEST_DATA_PATH ) /root-drive-with-ssh.img :
109
- # Need root to move ssh key to testdata location
110
- ifeq ($(GID ) , 0)
111
- $(MAKE) $(FIRECRACKER_DIR)
112
- $(FIRECRACKER_DIR)/tools/devtool build_rootfs -m $(FC_TEST_DATA_PATH)/mnt
113
- cp $(FIRECRACKER_DIR)/build/rootfs/bionic.rootfs.ext4 $(FC_TEST_DATA_PATH)/root-drive-with-ssh.img
114
- cp $(FIRECRACKER_DIR)/build/rootfs/ssh/id_rsa $(FC_TEST_DATA_PATH)/root-drive-ssh-key
115
- rm -rf $(FIRECRACKER_DIR)
116
- else
117
- $(error unable to place ssh key without root permissions)
118
- endif
110
+ $(curl ) -o $(FC_TEST_DATA_PATH ) /root-drive-with-ssh.img https://s3.amazonaws.com/spec.ccfc.min/ci-artifacts/disks/$(arch ) /ubuntu-18.04.ext4
111
+ $(curl ) -o $(FC_TEST_DATA_PATH ) /root-drive-ssh-key https://s3.amazonaws.com/spec.ccfc.min/ci-artifacts/disks/$(arch ) /ubuntu-18.04.id_rsa
119
112
120
113
$(FC_TEST_BIN_PATH ) /ptp :
121
114
$(call install_go,github.com/containernetworking/plugins/plugins/main/ptp,v1.1.1)
@@ -132,12 +125,14 @@ $(FC_TEST_BIN_PATH)/tc-redirect-tap:
132
125
$(FC_TEST_DATA_PATH ) /ltag :
133
126
$(call install_go,github.com/kunalkushwaha/ltag,v0.2.3)
134
127
135
- $(FIRECRACKER_DIR ) :
136
- - git clone https://github.com/firecracker-microvm/firecracker.git $(FIRECRACKER_DIR )
137
-
128
+ # test-images builds firecracker and jailer from main branch of firecracker
129
+ # to test against HEAD of firecracker
138
130
.PHONY : test-images
139
131
test-images : $(FIRECRACKER_BIN ) $(JAILER_BIN )
140
132
133
+ $(FIRECRACKER_DIR ) :
134
+ - git clone https://github.com/firecracker-microvm/firecracker.git $(FIRECRACKER_DIR )
135
+
141
136
$(FIRECRACKER_BIN ) $(JAILER_BIN ) : $(FIRECRACKER_DIR )
142
137
$(FIRECRACKER_DIR ) /tools/devtool -y build --release
143
138
cp $(FIRECRACKER_DIR ) /build/cargo_target/$(FIRECRACKER_TARGET ) /release/firecracker $(FIRECRACKER_BIN )
0 commit comments