Skip to content

Commit 7cc27d8

Browse files
committed
feat(ci): use AKS overlaybd
1 parent 1c39995 commit 7cc27d8

File tree

5 files changed

+42
-51
lines changed

5 files changed

+42
-51
lines changed

.github/workflows/release.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,9 @@ jobs:
6060
id-token: write # This is required for requesting the JWT from AAD.
6161
env:
6262
TAG: ${{ needs.publish.outputs.git_tag }}
63+
SUBSCRIPTION: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
6364
steps:
64-
- name: 'Az CLI login'
65+
- name: "Az CLI login"
6566
uses: azure/login@v1
6667
with:
6768
client-id: ${{ secrets.AZURE_CLIENT_ID }}
@@ -86,7 +87,7 @@ jobs:
8687
with:
8788
ref: ${{ env.TAG }}
8889

89-
- name: 'Make'
90+
- name: "Make"
9091
if: ${{ success() }}
9192
run: |
9293
PEERD_IMAGE_TAG=${{ env.TAG }} make tests-deps-install ci-aks-ctr
@@ -100,8 +101,9 @@ jobs:
100101
id-token: write # This is required for requesting the JWT from AAD.
101102
env:
102103
TAG: ${{ needs.publish.outputs.git_tag }}
104+
SUBSCRIPTION: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
103105
steps:
104-
- name: 'Az CLI login'
106+
- name: "Az CLI login"
105107
uses: azure/login@v1
106108
with:
107109
client-id: ${{ secrets.AZURE_CLIENT_ID }}
@@ -125,8 +127,8 @@ jobs:
125127
uses: actions/checkout@v2
126128
with:
127129
ref: ${{ env.TAG }}
128-
129-
- name: 'Make'
130+
131+
- name: "Make"
130132
if: ${{ success() }}
131133
run: |
132134
PEERD_IMAGE_TAG=${{ env.TAG }} make tests-deps-install ci-aks-streaming

build/ci/k8s/scanner.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ spec:
1616
labels:
1717
app: peerd-test
1818
spec:
19+
affinity:
20+
nodeAffinity:
21+
requiredDuringSchedulingIgnoredDuringExecution:
22+
nodeSelectorTerms:
23+
- matchExpressions:
24+
- key: p2p-nodepool
25+
operator: Exists
1926
initContainers:
2027
- name: sleep
2128
image: busybox

build/ci/k8s/teleport.yml

Lines changed: 13 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -11,45 +11,14 @@ data:
1111
#!/usr/bin/env bash
1212
set -xe
1313
14-
sudo apt-get update
15-
16-
pushd /tmp || exit 1
17-
18-
wget 'https://acrstreamingpackage.blob.core.windows.net/bin/latest/acr-mirror-2204.deb'
19-
sudo apt-get install './acr-mirror-2204.deb' -y --allow-downgrades
20-
rm './acr-mirror-2204.deb'
21-
popd
22-
23-
systemctl enable --now acr-mirror
24-
25-
# These libraries are needed for overlaybd-tcmu
26-
sudo /opt/acr/tools/overlaybd/install.sh
27-
sudo /opt/acr/tools/overlaybd/enable-http-auth.sh
28-
modprobe target_core_user
29-
3014
# Enable overlaybd peer-to-peer
31-
jq '.p2pConfig.enable = true' /etc/overlaybd/overlaybd.json > tmp.json
32-
sudo mv tmp.json /etc/overlaybd/overlaybd.json
33-
34-
jq '.p2pConfig.address = "localhost:30000/blobs"' /etc/overlaybd/overlaybd.json > tmp.json
35-
sudo mv tmp.json /etc/overlaybd/overlaybd.json
36-
37-
jq '.logConfig.logLevel = 0' /etc/overlaybd/overlaybd.json > tmp.json
38-
sudo mv tmp.json /etc/overlaybd/overlaybd.json
39-
40-
cat /etc/overlaybd/overlaybd.json
41-
42-
# Enabling mirror for teleportmetricstest
43-
curl -X PUT 'localhost:8578/config?ns=_default&enable_suffix=azurecr.io&stream_format=overlaybd&enable_containerd=true'
44-
45-
# Enable overlaybd
46-
sudo /opt/acr/tools/overlaybd/enable.sh
47-
touch /opt/sentinel
15+
/opt/acr/tools/overlaybd/config.sh p2pConfig.enable true
16+
/opt/acr/tools/overlaybd/config.sh p2pConfig.address \"http://localhost:30000/blobs\"
17+
/opt/acr/tools/overlaybd/config.sh logConfig.logLevel 0
4818
49-
# Install nerdctl: https://github.com/containerd/nerdctl/releases
50-
wget https://github.com/containerd/nerdctl/releases/download/v1.6.0/nerdctl-1.6.0-linux-amd64.tar.gz
51-
tar Cxzvvf /usr/local/bin nerdctl-1.6.0-linux-amd64.tar.gz
52-
rm nerdctl-1.6.0-linux-amd64.tar.gz
19+
# Restart overlaybd
20+
sudo systemctl restart overlaybd-tcmu
21+
sudo systemctl restart overlaybd-snapshotter
5322
---
5423
apiVersion: apps/v1
5524
kind: DaemonSet
@@ -67,6 +36,13 @@ spec:
6736
labels:
6837
app: *name
6938
spec:
39+
affinity:
40+
nodeAffinity:
41+
requiredDuringSchedulingIgnoredDuringExecution:
42+
nodeSelectorTerms:
43+
- matchExpressions:
44+
- key: p2p-nodepool
45+
operator: Exists
7046
hostNetwork: true
7147
hostPID: true
7248
containers:

build/ci/scripts/azure.sh

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ nodepool_deploy() {
7474
if [ "$DRY_RUN" == "false" ]; then
7575
echo "creating nodepool '$nodepool' in aks cluster '$aksName' in resource group '$rg'" && \
7676
az aks nodepool add --cluster-name $aksName --name $nodepool --resource-group $rg \
77-
--mode User --labels "p2p-nodepool=$nodepool" --node-count 3 --node-vm-size Standard_D2s_v3
77+
--mode User --labels "p2p-nodepool=true" --node-count 3 --node-vm-size Standard_D2s_v3 --enable-artifact-streaming
7878
else
7979
echo "[dry run] would have deployed nodepool '$nodepool' to aks cluster '$aksName' in resource group '$rg'"
8080
fi
@@ -85,8 +85,6 @@ peerd_helm_deploy() {
8585
local nodepool=$1
8686
local peerd_image_tag=$2
8787
local configureMirrors=$3
88-
89-
ensure_azure_token
9088

9189
echo "deploying peerd to k8s cluster, chart: '$PEERD_HELM_CHART', tag: '$peerd_image_tag'" && \
9290
kubectl cluster-info
@@ -186,6 +184,8 @@ cmd__nodepool__up () {
186184
local peerd_image_tag=$PEERD_IMAGE_TAG
187185
local configureMirrors=$PEERD_CONFIGURE_MIRRORS
188186

187+
ensure_azure_token
188+
189189
echo "get AKS credentials"
190190
get_aks_credentials $AKS_NAME $RESOURCE_GROUP
191191

@@ -240,15 +240,18 @@ cmd__test__streaming() {
240240
if [ "$DRY_RUN" == "true" ]; then
241241
echo "[dry run] would have run test 'streaming'"
242242
else
243+
echo "waiting 5 minutes"
244+
sleep 300
245+
243246
echo "deploying acr mirror"
244247
kubectl apply -f $TELEPORT_DEPLOY_TEMPLATE
245248

246-
echo "waiting 5 minutes"
247-
sleep 300
249+
echo "waiting 10 seconds"
250+
sleep 10
248251

249-
echo "deploying scanner app and waiting 2 minutes"
252+
echo "deploying scanner app and waiting 1 minute"
250253
envsubst < $SCANNER_APP_DEPLOY_TEMPLATE | kubectl apply -f -
251-
sleep 120
254+
sleep 60
252255

253256
echo "scanner logs"
254257
kubectl -n peerd-ns logs -l app=tests-scanner

build/ci/scripts/env.az.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
#!/bin/bash
22
set -e
33

4-
SUBSCRIPTION="dfb63c8c-7c89-4ef8-af13-75c1d873c895"
5-
64
ensure_azure_token() {
5+
if [ -z "$SUBSCRIPTION" ]; then
6+
echo "Error: SUBSCRIPTION is not set."
7+
exit 1
8+
fi
9+
710
az account set --subscription $SUBSCRIPTION
811
}
912

0 commit comments

Comments
 (0)