16
16
17
17
env :
18
18
CARGO_TERM_COLOR : always
19
+ REGISTRY : ghcr.io
20
+ SNAPSHOTTER_CONFIG : /etc/nydus/config.toml
21
+ SOURCE_SNAPSHOTTER_CONFIG : misc/snapshotter/config.toml
22
+ NYDUSD_CONFIG : /etc/nydus/nydusd-config.fusedev.json
23
+ SOURCE_NYDUSD_CONFIG : misc/snapshotter/nydusd-config.fusedev.json
24
+ SNAPSHOTTER_SYSTEMD_UNIT_SERVICE : misc/snapshotter/nydus-snapshotter.fusedev.service
19
25
20
26
jobs :
21
27
run_optimizer :
58
64
sudo mkdir -p /opt/cni/bin
59
65
sudo tar xzf cni-plugins-linux-amd64-v1.2.0.tgz -C /opt/cni/bin/
60
66
sudo install -D -m 755 misc/example/10-containerd-net.conflist /etc/cni/net.d/10-containerd-net.conflist
67
+ - name : Setup nydus-snapshotter and nydus service
68
+ run : |
69
+ GOOS=linux GOARCH=amd64 go build -o bin/containerd-nydus-grpc ./cmd/containerd-nydus-grpc
70
+ sudo install -D -m 755 bin/containerd-nydus-grpc /usr/local/bin/containerd-nydus-grpc
71
+ if [ ! -e "${{ env.NYDUSD_CONFIG }}" ]; then
72
+ echo "Installing ${{ env.SOURCE_NYDUSD_CONFIG }} to ${{ env.NYDUSD_CONFIG }}"
73
+ sudo install -D -m 664 "${{ env.SOURCE_NYDUSD_CONFIG }}" "${{ env.NYDUSD_CONFIG }}"
74
+ fi
75
+ if [ ! -e "${{ env.SNAPSHOTTER_CONFIG }}" ]; then
76
+ echo "Installing ${{ env.SOURCE_SNAPSHOTTER_CONFIG }} to ${{ env.SNAPSHOTTER_CONFIG }}"
77
+ sudo install -D -m 664 "${{ env.SOURCE_SNAPSHOTTER_CONFIG }}" "${{ env.SNAPSHOTTER_CONFIG }}"
78
+ fi
79
+ sudo ln -f -s /etc/nydus/nydusd-config.fusedev.json /etc/nydus/nydusd-config.json
80
+ echo "Installing ${{ env.SNAPSHOTTER_SYSTEMD_UNIT_SERVICE }} to /etc/systemd/system/nydus-snapshotter.service"
81
+ sudo install -D -m 644 "${{ env.SNAPSHOTTER_SYSTEMD_UNIT_SERVICE }}" /etc/systemd/system/nydus-snapshotter.service
82
+ if command -v systemctl >/dev/null; then
83
+ sudo systemctl enable /etc/systemd/system/nydus-snapshotter.service
84
+ sudo systemctl restart nydus-snapshotter
85
+ fi
86
+ sleep 5
87
+ NYDUS_VER=v$(curl -s "https://api.github.com/repos/dragonflyoss/nydus/releases/latest" | jq -r .tag_name | sed 's/^v//')
88
+ wget https://github.com/dragonflyoss/nydus/releases/download/$NYDUS_VER/nydus-static-$NYDUS_VER-linux-amd64.tgz
89
+ tar xzvf nydus-static-$NYDUS_VER-linux-amd64.tgz
90
+ # sudo systemctl restart nydus-snapshotter.service
91
+ sudo install -D -m 755 nydus-static/nydusd /usr/local/bin/nydusd
92
+ sudo install -D -m 755 nydus-static/nydus-image /usr/local/bin/nydus-image
93
+ sudo install -D -m 755 nydus-static/nydusctl /usr/local/bin/nydusctl
94
+
61
95
- name : Build and install optimizer
62
96
run : |
63
97
rustup component add rustfmt clippy
@@ -84,22 +118,45 @@ jobs:
84
118
echo "containerd is not ready"
85
119
exit 1
86
120
fi
121
+ - name : Setup prefetch-distribution http server
122
+ run : |
123
+ go build -o prefetch-distribution tools/prefetch-distribution/main.go
124
+ nohup ./prefetch-distribution &
125
+ sleep 5
126
+ - name : Log in to container registry
127
+ uses : docker/login-action@v2
128
+ with :
129
+ registry : ${{ env.REGISTRY }}
130
+ username : ${{ github.actor }}
131
+ password : ${{ secrets.GITHUB_TOKEN }}
132
+
87
133
- name : Generate accessed files list
88
134
run : |
89
135
sed -i "s|host_path: script|host_path: $(pwd)/misc/optimizer/script|g" misc/optimizer/nginx.yaml
90
136
sudo crictl run misc/optimizer/nginx.yaml misc/optimizer/sandbox.yaml
91
137
sleep 20
92
138
sudo crictl rmp -f --all
139
+ sudo crictl rmi --all
93
140
tree /opt/nri/optimizer/results/
94
- count=$(cat /opt/nri/optimizer/results/library/ nginx:1.23.3 | wc -l)
141
+ count=$(cat /opt/nri/optimizer/results/dragonflyoss/image-service/ nginx:nydus-latest | wc -l)
95
142
expected=$(cat misc/optimizer/script/file_list.txt | wc -l)
96
143
echo "count: $count expected minimum value: $expected"
97
144
if [ $count -lt $expected ]; then
98
- echo "failed to generate accessed files list for nginx:1.23.3 "
145
+ echo "failed to generate accessed files list for nginx:nydus-latest "
99
146
cat misc/optimizer/script/file_list.txt
100
147
exit 1
101
148
fi
102
- cat /opt/nri/optimizer/results/library/nginx:1.23.3.csv
149
+ cat /opt/nri/optimizer/results/dragonflyoss/image-service/nginx:nydus-latest.csv
150
+ - name : Transmit the prefetch list to nydusd
151
+ run : |
152
+ sed -i "s|host_path: script|host_path: $(pwd)/misc/optimizer/script|g" misc/optimizer/nginx.yaml
153
+ sudo crictl run misc/optimizer/nginx.yaml misc/optimizer/sandbox.yaml
154
+ if sudo ps aux | grep "[/]usr/local/bin/nydusd" | grep "prefetch-files"; then
155
+ echo "Found --prefetch-files in running processes"
156
+ else
157
+ echo "Error: --prefetch-files not found in running processes"
158
+ exit 1
159
+ fi
103
160
- name : Dump logs
104
161
if : failure()
105
162
continue-on-error : true
0 commit comments