Skip to content

Commit 2402c57

Browse files
authored
Replace end-of-life Ubuntu 20.04 LTS with 24.04 LTS (#618)
* rip out ubuntu 20.04 and replace with 24.04 * get workflows working? * use correct image urn
1 parent 27834a1 commit 2402c57

18 files changed

+37
-53
lines changed

.github/workflows/create-azure-machine.ps1

+3-5
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ param (
1111
[string]$Password,
1212

1313
[Parameter(Mandatory = $false)]
14-
[ValidateSet("windows-2025", "windows-2022", "windows-2019", "ubuntu-22.04", "ubuntu-20.04", "ubuntu-18.04", "mariner-2")]
14+
[ValidateSet("windows-2025", "windows-2022", "windows-2019", "ubuntu-22.04", "ubuntu-24.04", "ubuntu-18.04", "mariner-2")]
1515
[string]$Os = "windows-2022",
1616

1717
[Parameter(Mandatory = $false)]
@@ -50,10 +50,8 @@ if ($Os -eq "windows-2025") {
5050
$image = "MicrosoftWindowsServer:WindowsServer:2019-datacenter-gensecond:17763.5576.240304"
5151
} elseif ($Os -eq "ubuntu-22.04") {
5252
$image = "Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:22.04.202403010"
53-
} elseif ($Os -eq "ubuntu-20.04") {
54-
$image = "Canonical:0001-com-ubuntu-server-focal:20_04-lts-gen2:20.04.202402290"
55-
} elseif ($Os -eq "ubuntu-18.04") {
56-
$image = "Canonical:UbuntuServer:18_04-lts-gen2:18.04.202402250"
53+
} elseif ($Os -eq "ubuntu-24.04") {
54+
$image = " Canonical:ubuntu-24_04-lts:server:latest"
5755
} elseif ($Os -eq "mariner-2") {
5856
$image = "MicrosoftCBLMariner:cbl-mariner:cbl-mariner-2-gen2:2.20240223.01" # This image may not exist
5957
} else {

.github/workflows/ebpf_dynamic_vm.yml

+5-6
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,15 @@ concurrency:
4040

4141
# Need to determine why this is required.
4242
permissions: write-all
43-
43+
4444

4545
jobs:
4646
# For automated identification of the workflow.
4747
name:
4848
name: For ${{ github.event.client_payload.guid }}
4949
if: ${{ github.event_name == 'repository_dispatch' }}
5050
needs: []
51-
runs-on: ubuntu-20.04
51+
runs-on: ubuntu-24.04
5252
steps:
5353
- run: |
5454
echo "guid: ${{ github.event.client_payload.guid }}"
@@ -239,7 +239,7 @@ jobs:
239239
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
240240
with:
241241
name: cts_traffic_baseline_${{ matrix.env }}_${{ matrix.os }}_${{ matrix.arch }}
242-
path: ${{ github.workspace }}\cts-traffic\ctsTrafficResults.csv
242+
path: ${{ github.workspace }}\cts-traffic\ctsTrafficResults.csv
243243

244244
- name: Attach xdp baseline program to interface (first program in xdp.sys)
245245
working-directory: ${{ github.workspace }}\bpf_performance
@@ -293,7 +293,7 @@ jobs:
293293
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
294294
with:
295295
name: cts_traffic_xdp_${{ matrix.env }}_${{ matrix.os }}_${{ matrix.arch }}
296-
path: ${{ github.workspace }}\cts-traffic\ctsTrafficResults.csv
296+
path: ${{ github.workspace }}\cts-traffic\ctsTrafficResults.csv
297297

298298
- name: Run BPF performance tests
299299
working-directory: ${{ github.workspace }}\bpf_performance
@@ -351,11 +351,10 @@ jobs:
351351
if (Test-Path ${{ github.workspace }}\xdp) { Remove-Item -Recurse -Force ${{ github.workspace }}\xdp }
352352
if (Test-Path ${{ github.workspace }}\cts-traffic) { Remove-Item -Recurse -Force ${{ github.workspace }}\cts-traffic }
353353
if (Test-Path ${{ github.workspace }}\ETL) { Remove-Item -Recurse -Force ${{ github.workspace }}\ETL }
354-
354+
355355
- name: Restore Windows Defender exclusions
356356
if: always()
357357
run: |
358358
Remove-MpPreference -ExclusionPath ${{ github.workspace }}
359359
Update-MpSignature -Verbose
360360
Start-MpScan -ScanType QuickScan
361-

.github/workflows/ebpf_linux.yml

+4-6
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,8 @@ permissions:
3333

3434
jobs:
3535
build:
36-
runs-on:
37-
- self-hosted
38-
- os-ubuntu-20.04
39-
- x64
36+
runs-on:
37+
- ubuntu-24.04
4038

4139
steps:
4240
- name: Checkout
@@ -54,7 +52,7 @@ jobs:
5452
lcov \
5553
pkg-config \
5654
libelf-dev
57-
55+
5856
- name: Clone and build libbpf
5957
run: |
6058
git clone https://github.com/libbpf/libbpf.git
@@ -74,7 +72,7 @@ jobs:
7472
cmake \
7573
-B ${{github.workspace}}/build \
7674
-DCMAKE_BUILD_TYPE=Release
77-
75+
7876
- name: Build
7977
run: |
8078
cmake --build ${{github.workspace}}/build --config Release -- -j $(nproc)

.github/workflows/manage-azure-vms.ps1

+1-1
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ foreach ($entry in $MatrixJson) {
170170
$entry | Add-Member -MemberType NoteProperty -Name "runner_id" -Value $randomTag
171171
$AzureJson += $entry
172172
$ProcessedJson += $entry
173-
} elseif ($entry.env -match "azure" -and $entry.os -match "ubuntu-20.04") {
173+
} elseif ($entry.env -match "azure" -and $entry.os -match "ubuntu-24.04") {
174174
continue
175175
} else {
176176
$ProcessedJson += $entry

.github/workflows/prepare-matrix.ps1

+3-10
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ $FullJson = @()
1919
foreach ($entry in $MatrixJson) {
2020
if ($entry.env -match "azure") {
2121
$Windows2022Pool = "netperf-actual-boosted-winprerelease" # TODO: "boost-prerelease" name is misleading. Change it to be "boosted-windows-2022".
22-
$UbuntuPool = "netperf-boosted-linux-pool" # NOTE: This pool is using experimental boost SKUs. boosted-netperf-ubuntu-20.04-gen2.
22+
$UbuntuPool = "netperf-boosted-linux-pool" # NOTE: This pool is using experimental boost SKUs. boosted-netperf-ubuntu-24.04-gen2.
2323
$Windows2025Pool = "netperf-boosted-windows-pool" # NOTE: This runs the latest ge_current_directiof_stack build.
2424
$client = $entry.PSObject.Copy()
2525
$server = $entry.PSObject.Copy()
@@ -28,7 +28,7 @@ foreach ($entry in $MatrixJson) {
2828
if ($hasPreferredPoolSku) {
2929
if ($entry.preferred_pool_sku -eq "Standard_F8s_v2") {
3030
$Windows2022Pool = "netperf-f-series-windows-2022"
31-
$Ubuntu2004Pool = "netperf-f-series-ubuntu-20.04"
31+
$Ubuntu2404Pool = "netperf-f-series-ubuntu-24.04"
3232
}
3333
}
3434

@@ -43,13 +43,6 @@ foreach ($entry in $MatrixJson) {
4343
$server | Add-Member -MemberType NoteProperty -Name "remote_powershell_supported" -Value 'FALSE'
4444
$client.assigned_os = "managed-windows-2022-gen2-try3"
4545
$server.assigned_os = "managed-windows-2022-gen2-try3"
46-
} elseif ($entry.os -match "ubuntu-20.04") {
47-
$client | Add-Member -MemberType NoteProperty -Name "assigned_pool" -Value $UbuntuPool
48-
$server | Add-Member -MemberType NoteProperty -Name "assigned_pool" -Value $UbuntuPool
49-
$client | Add-Member -MemberType NoteProperty -Name "remote_powershell_supported" -Value 'FALSE'
50-
$server | Add-Member -MemberType NoteProperty -Name "remote_powershell_supported" -Value 'FALSE'
51-
$client.assigned_os = "boosted-netperf-ubuntu-20.04-gen2"
52-
$server.assigned_os = "boosted-netperf-ubuntu-20.04-gen2"
5346
} elseif ($entry.os -match "ubuntu-24.04") {
5447
$client | Add-Member -MemberType NoteProperty -Name "assigned_pool" -Value $UbuntuPool
5548
$server | Add-Member -MemberType NoteProperty -Name "assigned_pool" -Value $UbuntuPool
@@ -65,7 +58,7 @@ foreach ($entry in $MatrixJson) {
6558
$client.assigned_os = "nvme-enabled-ge_current_directiof_stack-try2"
6659
$server.assigned_os = "nvme-enabled-ge_current_directiof_stack-try2"
6760
} else {
68-
throw "Invalid OS entry (Must be either windows-2022 or ubuntu-20.04). Got: $($entry.os)"
61+
throw "Invalid OS entry (Must be either windows-2022 or ubuntu-24.04). Got: $($entry.os)"
6962
}
7063
$client | Add-Member -MemberType NoteProperty -Name "role" -Value "client"
7164
$server | Add-Member -MemberType NoteProperty -Name "role" -Value "server"

.github/workflows/quic.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ jobs:
153153
strategy:
154154
fail-fast: false
155155
matrix:
156-
os: ['ubuntu-20.04', 'ubuntu-24.04']
156+
os: ['ubuntu-24.04']
157157
tls: ['quictls']
158158
uses: microsoft/msquic/.github/workflows/build-reuse-unix.yml@main
159159
with:

.github/workflows/quic_matrix.json

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22
{ "env": "azure", "os": "windows-2022", "arch": "x64", "tls": "schannel", "io": "iocp", "preferred_pool_sku": "Experimental_Boost4" },
33
{ "env": "azure", "os": "windows-2022", "arch": "x64", "tls": "schannel", "io": "xdp", "preferred_pool_sku": "Experimental_Boost4" },
44
{ "env": "azure", "os": "windows-2022", "arch": "x64", "tls": "schannel", "io": "wsk", "preferred_pool_sku": "Experimental_Boost4" },
5-
{ "env": "azure", "os": "ubuntu-20.04", "arch": "x64", "tls": "quictls", "io": "epoll", "preferred_pool_sku": "Experimental_Boost4" },
65
{ "env": "azure", "os": "ubuntu-24.04", "arch": "x64", "tls": "quictls", "io": "epoll", "preferred_pool_sku": "Experimental_Boost4" },
76
{ "env": "azure", "os": "windows-2025", "arch": "x64", "tls": "schannel", "io": "iocp", "preferred_pool_sku": "Experimental_Boost4" },
87
{ "env": "azure", "os": "windows-2025", "arch": "x64", "tls": "schannel", "io": "xdp", "preferred_pool_sku": "Experimental_Boost4" },
98
{ "env": "azure", "os": "windows-2025", "arch": "x64", "tls": "schannel", "io": "wsk", "preferred_pool_sku": "Experimental_Boost4" },
109
{ "env": "lab", "os": "windows-2022", "arch": "x64", "tls": "schannel", "io": "iocp" },
1110
{ "env": "lab", "os": "windows-2022", "arch": "x64", "tls": "schannel", "io": "xdp" },
12-
{ "env": "lab", "os": "windows-2022", "arch": "x64", "tls": "schannel", "io": "wsk" },
13-
{ "env": "lab", "os": "ubuntu-20.04", "arch": "x64", "tls": "quictls", "io": "epoll" }
11+
{ "env": "lab", "os": "windows-2022", "arch": "x64", "tls": "schannel", "io": "wsk" }
1412
]

.github/workflows/update-react.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
needs: []
2424
strategy:
2525
fail-fast: false
26-
runs-on: ubuntu-20.04
26+
runs-on: ubuntu-24.04
2727
steps:
2828
- name: Checkout repository
2929
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
@@ -48,7 +48,7 @@ jobs:
4848
needs: [npm-build]
4949
strategy:
5050
fail-fast: false
51-
runs-on: ubuntu-20.04
51+
runs-on: ubuntu-24.04
5252
steps:
5353
- name: Checkout repository
5454
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

.github/workflows/xdp.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
name: For ${{ github.event.client_payload.guid }}
3030
if: ${{ github.event_name == 'repository_dispatch' }}
3131
needs: []
32-
runs-on: ubuntu-20.04
32+
runs-on: ubuntu-24.04
3333
steps:
3434
- run: |
3535
echo "guid: ${{ github.event.client_payload.guid }}"

dashboard/src/pages/hps.jsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export default function HpsPage() {
6060

6161
const [windowsOs, setWindowsOs] = useState('windows-2022-x64')
6262

63-
const [linuxOs, setLinuxOs] = useState('ubuntu-20.04-x64')
63+
const [linuxOs, setLinuxOs] = useState('ubuntu-24.04-x64')
6464

6565
const [testType, setTestType] = useState('hps-conns-100')
6666

@@ -227,7 +227,7 @@ export default function HpsPage() {
227227
onChange={handleChangeLinuxOs}
228228
defaultValue={0}
229229
>
230-
<MenuItem value='ubuntu-20.04-x64'>ubuntu-20.04-x64</MenuItem>
230+
<MenuItem value='ubuntu-24.04-x64'>ubuntu-24.04-x64</MenuItem>
231231
</Select>
232232
</FormControl>
233233
</Box>

dashboard/src/pages/latency.jsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export default function LatencyPage() {
6060

6161
const [windowsOs, setWindowsOs] = useState('windows-2022-x64')
6262

63-
const [linuxOs, setLinuxOs] = useState('ubuntu-20.04-x64')
63+
const [linuxOs, setLinuxOs] = useState('ubuntu-24.04-x64')
6464

6565
const [testType, setTestType] = useState('rps-up-512-down-4000')
6666

@@ -255,7 +255,7 @@ export default function LatencyPage() {
255255
onChange={handleChangeLinuxOs}
256256
defaultValue={0}
257257
>
258-
<MenuItem value='ubuntu-20.04-x64'>ubuntu-20.04-x64</MenuItem>
258+
<MenuItem value='ubuntu-24.04-x64'>ubuntu-24.04-x64</MenuItem>
259259
</Select>
260260
</FormControl>
261261
</Box>
@@ -325,4 +325,3 @@ export default function LatencyPage() {
325325
</>
326326
);
327327
}
328-

dashboard/src/pages/rps.jsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export default function RpsPage() {
6060

6161
const [windowsOs, setWindowsOs] = useState('windows-2022-x64')
6262

63-
const [linuxOs, setLinuxOs] = useState('ubuntu-20.04-x64')
63+
const [linuxOs, setLinuxOs] = useState('ubuntu-24.04-x64')
6464

6565
const [testType, setTestType] = useState('rps-up-512-down-4000')
6666

@@ -227,7 +227,7 @@ export default function RpsPage() {
227227
onChange={handleChangeLinuxOs}
228228
defaultValue={0}
229229
>
230-
<MenuItem value='ubuntu-20.04-x64'>ubuntu-20.04-x64</MenuItem>
230+
<MenuItem value='ubuntu-24.04-x64'>ubuntu-24.04-x64</MenuItem>
231231
</Select>
232232
</FormControl>
233233
</Box>

dashboard/src/pages/throughput.jsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export default function ThroughputPage() {
6161

6262
const [windowsOs, setWindowsOs] = useState('windows-2022-x64')
6363

64-
const [linuxOs, setLinuxOs] = useState('ubuntu-20.04-x64')
64+
const [linuxOs, setLinuxOs] = useState('ubuntu-24.04-x64')
6565

6666
const [testType, setTestType] = useState('up')
6767

@@ -225,7 +225,7 @@ export default function ThroughputPage() {
225225
onChange={handleChangeLinuxOs}
226226
defaultValue={0}
227227
>
228-
<MenuItem value='ubuntu-20.04-x64'>ubuntu-20.04-x64</MenuItem>
228+
<MenuItem value='ubuntu-24.04-x64'>ubuntu-24.04-x64</MenuItem>
229229
</Select>
230230
</FormControl>
231231
</Box>

dashboard/src/sections/overview/view/app-view.jsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export default function AppView() {
4444

4545
const [windowsOs, setWindowsOs] = useState('windows-2022-x64')
4646

47-
const [linuxOs, setLinuxOs] = useState('ubuntu-20.04-x64')
47+
const [linuxOs, setLinuxOs] = useState('ubuntu-24.04-x64')
4848

4949
const windows = useFetchData(
5050
`https://raw.githubusercontent.com/microsoft/netperf/deploy/json-test-results-${env}-${windowsOs}-schannel-iocp.json/json-test-results-${env}-${windowsOs}-schannel-iocp.json`
@@ -115,7 +115,7 @@ export default function AppView() {
115115
let windowsKernelLatencyQuic = [-1, -1, -1, -1, -1, -1, -1, -1];
116116
let commitHash = "";
117117
let windowsType = 'Windows Server 2022';
118-
let linuxType = 'Linux Ubuntu 20.04 LTS';
118+
let linuxType = 'Linux Ubuntu 24.04 LTS';
119119

120120
function index(object, keys, defaultValue) {
121121
for (const key of keys) {
@@ -292,7 +292,7 @@ export default function AppView() {
292292
onChange={handleChangeLinuxOs}
293293
defaultValue={0}
294294
>
295-
<MenuItem value='ubuntu-20.04-x64'>ubuntu-20.04-x64</MenuItem>
295+
<MenuItem value='ubuntu-24.04-x64'>ubuntu-24.04-x64</MenuItem>
296296
</Select>
297297
</FormControl>
298298
</Box>

docs/archive/next-steps.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
### What needs to be done:
1414

15-
- Stand up the 1ES Azure testing for Windows 2022, Windows Prerelease, Ubuntu 20.04, Ubuntu 22.04 using whatever means to get things functional (~2 weeks)
15+
- Stand up the 1ES Azure testing for Windows 2022, Windows Prerelease, Ubuntu 24.04, Ubuntu 22.04 using whatever means to get things functional (~2 weeks)
1616
- Stabilize the static lab machine/VMs to eliminate all the environment errors we're seeing (xdp still running!) (~2 weeks)
1717

1818
# Netperf Release V2

docs/archive/tech-specs.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ That is how we do Azure testing today with "temporary" VMs.
3939

4040
In our lab, we set the requirement of 1 VM per host. That means for our tests, we need at least 2 physical hosts.
4141

42-
We manually onboarded Windows 2022 VMs on 2 of our lab machines that we hand-picked. We added the "client" Windows 2022 VM as a self-hosted Github runner with some tags we assigned ourselves. We did the same with Ubuntu 20.04.
42+
We manually onboarded Windows 2022 VMs on 2 of our lab machines that we hand-picked. We added the "client" Windows 2022 VM as a self-hosted Github runner with some tags we assigned ourselves. We did the same with Ubuntu 24.04.
4343

4444
Whenever we need to run lab tests, our Github Actions workflow runs will reference the static VMs we added.
4545

@@ -70,4 +70,3 @@ Either 1ES hosted pool or CloudTest can worry about giving us the resources per
7070
We don't need to worry about infrastructure.
7171

7272
Either 1ES hosted pool or CloudTest can worry about giving us the resources per job (2 **test-ready** VMs) and we can just reference them in our Github Actions workflow.
73-

docs/lab_consumption.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ Write your performance test workflow like:
44
```yaml
55
jobs:
66
Your_Perf_Job:
7-
# Currently only windows-2022/ubuntu-20.04 lab runners are available.
8-
runs-on: [self-hosted, lab, <windows-2022 / ubuntu-20.04>]
7+
# Currently only windows-2022/ubuntu-24.04 lab runners are available.
8+
runs-on: [self-hosted, lab, <windows-2022 / ubuntu-24.04>]
99
steps:
1010
- ... # Checkout your project repo...
1111
- ... # Download your perf tools...

setup-runner-linux.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ fi
7878
# Installing powershell 7 (NOTE: Sometimes, will have to run this again because powershell fails to install the first run. Need investigation.)
7979
echo "================= Installing powershell 7. ================="
8080
sudo apt-get install -y wget apt-transport-https software-properties-common
81-
wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
81+
wget -q https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb
8282
sudo dpkg -i packages-microsoft-prod.deb
8383
echo "================= Updating apt-get again. ================="
8484
sudo apt-get update

0 commit comments

Comments
 (0)