Skip to content

Commit 4111e29

Browse files
committed
modify optimizer test
1 parent 634c106 commit 4111e29

File tree

5 files changed

+46
-6
lines changed

5 files changed

+46
-6
lines changed

.github/workflows/optimizer.yml

+37-4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ on:
1616

1717
env:
1818
CARGO_TERM_COLOR: always
19+
REGISTRY: ghcr.io
1920

2021
jobs:
2122
run_optimizer:
@@ -54,7 +55,8 @@ jobs:
5455
sudo wget https://github.com/containerd/containerd/releases/download/v1.7.0/containerd-static-1.7.0-linux-amd64.tar.gz
5556
sudo systemctl stop containerd
5657
sudo tar -zxf ./containerd-static-1.7.0-linux-amd64.tar.gz -C /usr/
57-
sudo install -D -m 755 misc/optimizer/containerd-config.toml /etc/containerd/config.toml
58+
# sudo install -D -m 755 misc/optimizer/containerd-config.toml /etc/containerd/config.toml
59+
sudo install -D -m 755 misc/example/containerd-config.toml /etc/containerd/config.toml
5860
sudo systemctl restart containerd
5961
sudo wget https://github.com/opencontainers/runc/releases/download/v1.1.5/runc.amd64 -O /usr/bin/runc
6062
sudo chmod +x /usr/bin/runc
@@ -64,6 +66,18 @@ jobs:
6466
sudo mkdir -p /opt/cni/bin
6567
sudo tar xzf cni-plugins-linux-amd64-v1.2.0.tgz -C /opt/cni/bin/
6668
sudo install -D -m 755 misc/example/10-containerd-net.conflist /etc/cni/net.d/10-containerd-net.conflist
69+
- name: Setup nydus-snapshotter and nydus service
70+
run: |
71+
make build && make install
72+
sleep 5
73+
NYDUS_VER=v$(curl --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' -s "https://api.github.com/repos/dragonflyoss/nydus/releases/latest" | jq -r .tag_name | sed 's/^v//')
74+
wget https://github.com/dragonflyoss/nydus/releases/download/$NYDUS_VER/nydus-static-$NYDUS_VER-linux-amd64.tgz
75+
tar xzvf nydus-static-$NYDUS_VER-linux-amd64.tgz
76+
sudo systemctl restart nydus-snapshotter.service
77+
sudo install -D -m 755 nydus-static/nydusd /usr/local/bin/nydusd
78+
sudo install -D -m 755 nydus-static/nydus-image /usr/local/bin/nydus-image
79+
sudo install -D -m 755 nydus-static/nydusctl /usr/local/bin/nydusctl
80+
6781
- name: Build and install optimizer
6882
run: |
6983
rustup component add rustfmt clippy
@@ -90,22 +104,41 @@ jobs:
90104
echo "containerd is not ready"
91105
exit 1
92106
fi
107+
- name: Setup prefetch-distribution http server
108+
run: |
109+
go build -o prefetch-distribution tools/prefetch-distribution/main.go
110+
nohup ./prefetch-distribution &
111+
sleep 5
112+
- name: Log in to container registry
113+
uses: docker/login-action@v2
114+
with:
115+
registry: ${{ env.REGISTRY }}
116+
username: ${{ github.actor }}
117+
password: ${{ secrets.GITHUB_TOKEN }}
118+
93119
- name: Generate accessed files list
94120
run: |
95121
sed -i "s|host_path: script|host_path: $(pwd)/misc/optimizer/script|g" misc/optimizer/nginx.yaml
96122
sudo crictl run misc/optimizer/nginx.yaml misc/optimizer/sandbox.yaml
97123
sleep 20
98124
sudo crictl rmp -f --all
125+
sudo crictl rmi --all
99126
tree /opt/nri/optimizer/results/
100-
count=$(cat /opt/nri/optimizer/results/library/nginx:1.23.3 | wc -l)
127+
# count=$(cat /opt/nri/optimizer/results/library/nginx:1.23.3 | wc -l)
128+
count=$(cat /opt/nri/optimizer/results/dragonflyoss/image-service/nginx:nydus-latest | wc -l)
101129
expected=$(cat misc/optimizer/script/file_list.txt | wc -l)
102130
echo "count: $count expected minimum value: $expected"
103131
if [ $count -lt $expected ]; then
104-
echo "failed to generate accessed files list for nginx:1.23.3"
132+
echo "failed to generate accessed files list for nginx:nydus-latest"
105133
cat misc/optimizer/script/file_list.txt
106134
exit 1
107135
fi
108-
cat /opt/nri/optimizer/results/library/nginx:1.23.3.csv
136+
cat /opt/nri/optimizer/results/dragonflyoss/image-service/nginx:nydus-latest.csv
137+
- name: Transmit the prefetch list to nydusd
138+
run: |
139+
sed -i "s|host_path: script|host_path: $(pwd)/misc/optimizer/script|g" misc/optimizer/nginx.yaml
140+
sudo crictl run misc/optimizer/nginx.yaml misc/optimizer/sandbox.yaml
141+
cat ~/logs/nydus-snapshotter.log | grep "nydusd command"
109142
- name: Dump logs
110143
if: failure()
111144
continue-on-error: true

misc/example/containerd-config.toml

+6
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ oom_score = 0
1818
[plugins."io.containerd.grpc.v1.cri".cni]
1919
bin_dir = "/opt/cni/bin"
2020
conf_dir = "/etc/cni/net.d"
21+
22+
[plugins."io.containerd.nri.v1.nri"]
23+
config_file = "/etc/nri/nri.conf"
24+
disable = false
25+
plugin_path = "/opt/nri/plugins"
26+
socket_path = "/var/run/nri.sock"
2127

2228
[proxy_plugins]
2329
[proxy_plugins.nydus]

misc/example/optimizer-nri-plugin.conf

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ overwrite = false
1212
# Do not change this element.
1313
events = [ "StartContainer", "StopContainer" ]
1414
# The service url of prefetch distribution.
15-
prefetch_distribution_url = "http://localhost:1323"
15+
prefetch_distribution_url = "http://localhost:1323"

misc/optimizer/nginx.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ metadata:
22
name: nginx
33

44
image:
5-
image: nginx:1.23.3
5+
image: ghcr.io/dragonflyoss/image-service/nginx:nydus-latest
66

77
mounts:
88
- host_path: script

misc/snapshotter/config.toml

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ memory_limit = ""
4848
[log]
4949
# Print logs to stdout rather than logging files
5050
log_to_stdout = false
51+
dir = "~/logs"
5152
# Snapshotter's log level
5253
level = "info"
5354
log_rotation_compress = true

0 commit comments

Comments
 (0)