Skip to content

Commit 394a502

Browse files
committed
modify optimizer test
1 parent 34bd531 commit 394a502

File tree

4 files changed

+67
-5
lines changed

4 files changed

+67
-5
lines changed

.github/workflows/optimizer.yml

+60-3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ on:
1616

1717
env:
1818
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
1925

2026
jobs:
2127
run_optimizer:
@@ -58,6 +64,34 @@ jobs:
5864
sudo mkdir -p /opt/cni/bin
5965
sudo tar xzf cni-plugins-linux-amd64-v1.2.0.tgz -C /opt/cni/bin/
6066
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+
6195
- name: Build and install optimizer
6296
run: |
6397
rustup component add rustfmt clippy
@@ -84,22 +118,45 @@ jobs:
84118
echo "containerd is not ready"
85119
exit 1
86120
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+
87133
- name: Generate accessed files list
88134
run: |
89135
sed -i "s|host_path: script|host_path: $(pwd)/misc/optimizer/script|g" misc/optimizer/nginx.yaml
90136
sudo crictl run misc/optimizer/nginx.yaml misc/optimizer/sandbox.yaml
91137
sleep 20
92138
sudo crictl rmp -f --all
139+
sudo crictl rmi --all
93140
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)
95142
expected=$(cat misc/optimizer/script/file_list.txt | wc -l)
96143
echo "count: $count expected minimum value: $expected"
97144
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"
99146
cat misc/optimizer/script/file_list.txt
100147
exit 1
101148
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
103160
- name: Dump logs
104161
if: failure()
105162
continue-on-error: true

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/containerd-config.toml

+5
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@
1414

1515
version = 2
1616

17+
[plugins."io.containerd.grpc.v1.cri"]
18+
[plugins."io.containerd.grpc.v1.cri".containerd]
19+
snapshotter = "nydus"
20+
disable_snapshot_annotations = false
21+
1722
[proxy_plugins]
1823
[proxy_plugins.nydus]
1924
type = "snapshot"

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

0 commit comments

Comments
 (0)