From 0f2c61c0db007307a9107b028b39b8375de41a4e Mon Sep 17 00:00:00 2001 From: Zachary <123345317+zachary-bailey@users.noreply.github.com> Date: Tue, 25 Feb 2025 14:42:00 -0800 Subject: [PATCH 1/3] perf: update benchmark titles and ingest performance data into kusto (#5902) Co-authored-by: Zachary Bailey Co-authored-by: Zachary Bailey --- .pipelines/.vsts-vhd-builder-release.yaml | 1 + .pipelines/.vsts-vhd-builder.yaml | 1 + .../templates/.builder-release-template.yaml | 11 +++++ packer.mk | 2 +- .../artifacts/cse_benchmark_functions.sh | 9 +--- .../evaluate-build-performance.sh | 42 ++++++++++++------- ...ert-sig-to-classic-storage-account-blob.sh | 1 - vhdbuilder/packer/install-dependencies.sh | 26 ++++++------ .../packer/post-install-dependencies.sh | 9 ++-- vhdbuilder/packer/pre-install-dependencies.sh | 15 ++++--- 10 files changed, 66 insertions(+), 51 deletions(-) rename vhdbuilder/packer/{build-performance => buildperformance}/evaluate-build-performance.sh (50%) diff --git a/.pipelines/.vsts-vhd-builder-release.yaml b/.pipelines/.vsts-vhd-builder-release.yaml index 8fbcf5ecd69..f2b7cf1d62f 100644 --- a/.pipelines/.vsts-vhd-builder-release.yaml +++ b/.pipelines/.vsts-vhd-builder-release.yaml @@ -189,6 +189,7 @@ parameters: variables: - group: aks-vuln-to-kusto - group: "AKS Node SIG UA Token (KV)" + - group: build_performance stages: - stage: build diff --git a/.pipelines/.vsts-vhd-builder.yaml b/.pipelines/.vsts-vhd-builder.yaml index c25a65278da..30c682c4a89 100644 --- a/.pipelines/.vsts-vhd-builder.yaml +++ b/.pipelines/.vsts-vhd-builder.yaml @@ -37,6 +37,7 @@ pool: variables: - group: aks-vuln-to-kusto - group: "AKS Node SIG UA Token (KV)" + - group: build_performance stages: - stage: build diff --git a/.pipelines/templates/.builder-release-template.yaml b/.pipelines/templates/.builder-release-template.yaml index bf422d5ad2f..5a4ebca2232 100644 --- a/.pipelines/templates/.builder-release-template.yaml +++ b/.pipelines/templates/.builder-release-template.yaml @@ -205,6 +205,17 @@ steps: displayName: Convert Shared Image Gallery To VHD Blob In Classic Storage Account env: RESOURCE_GROUP_NAME: $(AZURE_RESOURCE_GROUP_NAME) + + - task: DownloadPipelineArtifact@2 + displayName: Download Build Performance Program + condition: and(succeeded(), eq(variables.ENVIRONMENT, 'test')) + inputs: + source: "specific" + downloadPath: "vhdbuilder/packer/buildperformance" + runVersion: "latest" + project: $(System.TeamProject) + pipeline: $(SOURCE_PIPELINE) + artifactName: $(BUILD_PERFORMANCE_ARTIFACT_NAME) - bash: make -f packer.mk evaluate-build-performance condition: always() diff --git a/packer.mk b/packer.mk index 8bf2db32416..c7fec5f8ea8 100755 --- a/packer.mk +++ b/packer.mk @@ -113,7 +113,7 @@ test-scan-and-cleanup: az-login @./vhdbuilder/packer/test-scan-and-cleanup.sh evaluate-build-performance: az-login - @./vhdbuilder/packer/build-performance/evaluate-build-performance.sh + @./vhdbuilder/packer/buildperformance/evaluate-build-performance.sh generate-prefetch-scripts: #ifeq (${MODE},linuxVhdMode) diff --git a/parts/linux/cloud-init/artifacts/cse_benchmark_functions.sh b/parts/linux/cloud-init/artifacts/cse_benchmark_functions.sh index 9464298af9b..760122c9d0a 100644 --- a/parts/linux/cloud-init/artifacts/cse_benchmark_functions.sh +++ b/parts/linux/cloud-init/artifacts/cse_benchmark_functions.sh @@ -18,7 +18,6 @@ check_array_size() { } capture_benchmark() { - set +x local title="$1" title="${title//[[:space:]]/_}" title="${title//-/_}" @@ -42,8 +41,6 @@ capture_benchmark() { } process_benchmarks() { - set +x - if [ -z "${PERFORMANCE_DATA_FILE}" ] ; then return fi @@ -53,17 +50,13 @@ process_benchmarks() { fi check_array_size benchmarks || { echo "Benchmarks array is empty"; return; } - # create script object, then append each section object to it in the for loop - script_object=$(jq -n --arg script_name "${SCRIPT_NAME}" '{($script_name): {}}') for ((i=0; i<${#benchmarks_order[@]}; i+=1)); do section_name=${benchmarks_order[i]} section_object=$(jq -n --arg section_name "${section_name}" --arg total_time_elapsed "${benchmarks[${section_name}]}" \ '{($section_name): $total_time_elapsed'}) - script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "${SCRIPT_NAME}" \ - '$script_object | .[$script_name] += $section_object') + jq ". += $section_object" "${PERFORMANCE_DATA_FILE}" > temp-perf-file.json && mv temp-perf-file.json "${PERFORMANCE_DATA_FILE}" done - jq ". += $script_object" "${PERFORMANCE_DATA_FILE}" > temp-perf-file.json && mv temp-perf-file.json "${PERFORMANCE_DATA_FILE}" chmod 755 "${PERFORMANCE_DATA_FILE}" } \ No newline at end of file diff --git a/vhdbuilder/packer/build-performance/evaluate-build-performance.sh b/vhdbuilder/packer/buildperformance/evaluate-build-performance.sh similarity index 50% rename from vhdbuilder/packer/build-performance/evaluate-build-performance.sh rename to vhdbuilder/packer/buildperformance/evaluate-build-performance.sh index dd2f1323164..ecda2133eb0 100755 --- a/vhdbuilder/packer/build-performance/evaluate-build-performance.sh +++ b/vhdbuilder/packer/buildperformance/evaluate-build-performance.sh @@ -22,7 +22,7 @@ if [[ $? -ne 0 ]]; then fi if [[ ${SCRIPT_COUNT} -eq 0 ]]; then - log_and_exit ${PERFORMANCE_DATA_FILE} "contains no scripts" + log_and_exit ${PERFORMANCE_DATA_FILE} "contains no data" fi echo -e "\nGenerating build performance data for ${SIG_IMAGE_NAME}...\n" @@ -35,26 +35,36 @@ jq --arg sig_name "${SIG_IMAGE_NAME}" \ --arg status "${JOB_STATUS}" \ --arg branch "${GIT_BRANCH}" \ --arg commit "${GIT_VERSION}" \ - '{sig_image_name: $sig_name, architecture: $arch, captured_sig_version: $captured_sig_version, build_id: $build_id, build_datetime: $date, - build_status: $status, branch: $branch, commit: $commit, scripts: .}' \ - ${PERFORMANCE_DATA_FILE} > ${SIG_IMAGE_NAME}-build-performance.json + 'to_entries | ([ + {key: "sig_image_name", value: $sig_name}, + {key: "architecture", value: $arch}, + {key: "captured_sig_version", value: $captured_sig_version}, + {key: "build_id", value: $build_id}, + {key: "build_datetime", value: $date}, + {key: "outcome", value: $status}, + {key: "branch", value: $branch}, + {key: "commit", value: $commit} +] + .) | from_entries' ${PERFORMANCE_DATA_FILE} > ${SIG_IMAGE_NAME}-build-performance.json rm ${PERFORMANCE_DATA_FILE} -echo "##[group]Build Information" -jq -C '. | {sig_image_name, architecture, captured_sig_version, build_id, build_datetime, build_status, branch, commit}' ${SIG_IMAGE_NAME}-build-performance.json +echo "##[group]Build Performance" +jq . -C ${SIG_IMAGE_NAME}-build-performance.json echo "##[endgroup]" -scripts=() -for entry in $(jq -rc '.scripts | to_entries[]' ${SIG_IMAGE_NAME}-build-performance.json); do - scripts+=("$(echo "$entry" | jq -r '.key')") -done +echo -e "\nENVIRONMENT is: ${ENVIRONMENT}" +if [ "${ENVIRONMENT,,}" == "test" ]; then + mv ${SIG_IMAGE_NAME}-build-performance.json vhdbuilder/packer/buildperformance + pushd vhdbuilder/packer/buildperformance || exit 0 + echo -e "\nRunning build performance evaluation program...\n" + chmod +x ${BUILD_PERFORMANCE_BINARY} + ./${BUILD_PERFORMANCE_BINARY} + rm ${BUILD_PERFORMANCE_BINARY} + popd || exit 0 +else + echo -e "Skipping build performance evaluation for prod" +fi -for script in "${scripts[@]}"; do - echo "##[group]${script}" - jq -C ".scripts.\"$script\"" ${SIG_IMAGE_NAME}-build-performance.json - echo "##[endgroup]" -done +rm vhdbuilder/packer/buildperformance/${SIG_IMAGE_NAME}-build-performance.json -rm ${SIG_IMAGE_NAME}-build-performance.json echo -e "\nBuild performance evaluation script completed." \ No newline at end of file diff --git a/vhdbuilder/packer/convert-sig-to-classic-storage-account-blob.sh b/vhdbuilder/packer/convert-sig-to-classic-storage-account-blob.sh index 2161a8b05f8..a434d8d9ea2 100755 --- a/vhdbuilder/packer/convert-sig-to-classic-storage-account-blob.sh +++ b/vhdbuilder/packer/convert-sig-to-classic-storage-account-blob.sh @@ -113,7 +113,6 @@ if [[ "$sas" == "None" ]]; then echo "sas token empty after trying both queries. Can't continue" exit 1 fi - capture_benchmark "${SCRIPT_NAME}_grant_access_to_disk" echo "Uploading $disk_resource_id to ${CLASSIC_BLOB}/${CAPTURED_SIG_VERSION}.vhd" diff --git a/vhdbuilder/packer/install-dependencies.sh b/vhdbuilder/packer/install-dependencies.sh index a0252898781..be5893e1ade 100644 --- a/vhdbuilder/packer/install-dependencies.sh +++ b/vhdbuilder/packer/install-dependencies.sh @@ -31,7 +31,7 @@ PERFORMANCE_DATA_FILE=/opt/azure/vhd-build-performance-data.json echo "" echo "Components downloaded in this VHD build (some of the below components might get deleted during cluster provisioning if they are not needed):" >> ${VHD_LOGS_FILEPATH} -capture_benchmark "${SCRIPT_NAME}_declare_variables_and_source_packer_files" +capture_benchmark "${SCRIPT_NAME}_source_packer_files_and_declare_variables" echo "Logging the kernel after purge and reinstall + reboot: $(uname -r)" # fix grub issue with cvm by reinstalling before other deps @@ -41,6 +41,7 @@ if grep -q "cvm" <<< "$FEATURE_FLAGS"; then wait_for_apt_locks apt_get_install 30 1 600 grub-efi || exit 1 fi +capture_benchmark "${SCRIPT_NAME}_reinstall_grub_for_cvm" if [[ "$OS" == "$UBUNTU_OS_NAME" ]]; then # disable and mask all UU timers/services @@ -56,7 +57,6 @@ APT::Periodic::AutocleanInterval "0"; APT::Periodic::Unattended-Upgrade "0"; EOF fi -capture_benchmark "${SCRIPT_NAME}_purge_and_reinstall_ubuntu" # If the IMG_SKU does not contain "minimal", installDeps normally if [[ "$IMG_SKU" != *"minimal"* ]]; then @@ -99,7 +99,7 @@ SystemMaxUse=1G RuntimeMaxUse=1G ForwardToSyslog=yes EOF -capture_benchmark "${SCRIPT_NAME}_install_dependencies" +capture_benchmark "${SCRIPT_NAME}_install_deps_and_set_configs" if [[ ${CONTAINER_RUNTIME:-""} != "containerd" ]]; then echo "Unsupported container runtime. Only containerd is supported for new VHD builds." @@ -124,7 +124,7 @@ if ! isMarinerOrAzureLinux "$OS"; then overrideNetworkConfig || exit 1 disableNtpAndTimesyncdInstallChrony || exit 1 fi -capture_benchmark "${SCRIPT_NAME}_check_container_runtime_and_network_configurations" +capture_benchmark "${SCRIPT_NAME}_validate_container_runtime_and_override_ubuntu_net_config" CONTAINERD_SERVICE_DIR="/etc/systemd/system/containerd.service.d" mkdir -p "${CONTAINERD_SERVICE_DIR}" @@ -139,6 +139,7 @@ net.ipv4.conf.all.forwarding = 1 net.ipv6.conf.all.forwarding = 1 net.bridge.bridge-nf-call-iptables = 1 EOF +capture_benchmark "${SCRIPT_NAME}_set_ip_forwarding" echo "set read ahead size to 15380 KB" AWK_PATH=$(command -v awk) @@ -200,6 +201,7 @@ ENV{DEVTYPE}=="partition", ENV{AZURE_DISK_TYPE}=="?*", ENV{AZURE_DISK_SERIAL}==" LABEL="azure_disk_end" EOF udevadm control --reload +capture_benchmark "${SCRIPT_NAME}_set_udev_rules" if isMarinerOrAzureLinux "$OS"; then disableSystemdResolvedCache @@ -217,6 +219,7 @@ if isMarinerOrAzureLinux "$OS"; then enableCheckRestart activateNfConntrack fi +capture_benchmark "${SCRIPT_NAME}_handle_azurelinux_configs" # doing this at vhd allows CSE to be faster with just mv unpackTgzToCNIDownloadsDIR() { @@ -241,7 +244,7 @@ downloadCNI() { echo "VHD will be built with containerd as the container runtime" updateAptWithMicrosoftPkg -capture_benchmark "${SCRIPT_NAME}_create_containerd_service_directory_and_configure_runtime_and_network" +capture_benchmark "${SCRIPT_NAME}_update_apt_with_msft_pkg" # check if COMPONENTS_FILEPATH exists if [ ! -f $COMPONENTS_FILEPATH ]; then @@ -399,7 +402,7 @@ cliTool="ctr" INSTALLED_RUNC_VERSION=$(runc --version | head -n1 | sed 's/runc version //') echo " - runc version ${INSTALLED_RUNC_VERSION}" >> ${VHD_LOGS_FILEPATH} -capture_benchmark "${SCRIPT_NAME}_artifact_streaming_download" +capture_benchmark "${SCRIPT_NAME}_configure_artifact_streaming_and_install_crictl" GPUContainerImages=$(jq -c '.GPUContainerImages[]' $COMPONENTS_FILEPATH) @@ -454,7 +457,7 @@ PRESENT_DIR=$(pwd) BCC_PID=$! echo "${CONTAINER_RUNTIME} images pre-pulled:" >> ${VHD_LOGS_FILEPATH} -capture_benchmark "${SCRIPT_NAME}_pull_nvidia_driver_image_and_run_installBcc_in_subshell" +capture_benchmark "${SCRIPT_NAME}_pull_nvidia_driver_and_start_ebpf_downloads" string_replace() { echo ${1//\*/$2} @@ -514,13 +517,12 @@ watcherStaticImg=${watcherBaseImg//\*/static} # can't use cliTool because crictl doesn't support retagging. retagContainerImage "ctr" ${watcherFullImg} ${watcherStaticImg} -capture_benchmark "${SCRIPT_NAME}_pull_and_retag_container_images" # IPv6 nftables rules are only available on Ubuntu or Mariner/AzureLinux if [[ $OS == $UBUNTU_OS_NAME ]] || isMarinerOrAzureLinux "$OS"; then systemctlEnableAndStart ipv6_nftables || exit 1 fi -capture_benchmark "${SCRIPT_NAME}_configure_networking_and_interface" +capture_benchmark "${SCRIPT_NAME}_pull_and_retag_container_images" if [[ $OS == $UBUNTU_OS_NAME && $(isARM64) != 1 ]]; then # no ARM64 SKU with GPU now NVIDIA_DEVICE_PLUGIN_VERSION="v0.14.5" @@ -528,7 +530,7 @@ NVIDIA_DEVICE_PLUGIN_VERSION="v0.14.5" DEVICE_PLUGIN_CONTAINER_IMAGE="mcr.microsoft.com/oss/nvidia/k8s-device-plugin:${NVIDIA_DEVICE_PLUGIN_VERSION}" pullContainerImage ${cliTool} ${DEVICE_PLUGIN_CONTAINER_IMAGE} fi -capture_benchmark "download_gpu_device_plugin" +capture_benchmark "${SCRIPT_NAME}_download_gpu_device_plugin" mkdir -p /var/log/azure/Microsoft.Azure.Extensions.CustomScript/events @@ -548,8 +550,7 @@ fi cat /var/log/azure/Microsoft.Azure.Extensions.CustomScript/events/* rm -r /var/log/azure/Microsoft.Azure.Extensions.CustomScript || exit 1 - -capture_benchmark "${SCRIPT_NAME}_configure_telemetry_create_logging_directory" +capture_benchmark "${SCRIPT_NAME}_configure_telemetry" # download kubernetes package from the given URL using MSI for auth for azcopy # if it is a kube-proxy package, extract image from the downloaded package @@ -588,6 +589,7 @@ if [[ $OS == $UBUNTU_OS_NAME ]]; then # multi-user.target usually start at the end of the boot sequence sed -i 's/After=network-online.target/After=multi-user.target/g' /lib/systemd/system/motd-news.service fi +capture_benchmark "${SCRIPT_NAME}_purge_and_update_ubuntu" wait $BCC_PID BCC_EXIT_CODE=$? diff --git a/vhdbuilder/packer/post-install-dependencies.sh b/vhdbuilder/packer/post-install-dependencies.sh index 3ad635642df..94857f0b8cb 100644 --- a/vhdbuilder/packer/post-install-dependencies.sh +++ b/vhdbuilder/packer/post-install-dependencies.sh @@ -16,7 +16,7 @@ PERFORMANCE_DATA_FILE=/opt/azure/vhd-build-performance-data.json # Hardcode the desired size of the OS disk so we don't accidently rely on extra disk space MAX_BLOCK_COUNT=30298176 # 30 GB -capture_benchmark "${SCRIPT_NAME}_set_variables_and_source_packer_files" +capture_benchmark "${SCRIPT_NAME}_source_packer_files_and_declare_variables" if [[ $OS == $UBUNTU_OS_NAME ]]; then # shellcheck disable=SC2021 @@ -34,6 +34,7 @@ if [[ $OS == $UBUNTU_OS_NAME ]]; then retrycmd_if_failure 10 2 60 apt-get -y autoclean || exit 1 retrycmd_if_failure 10 2 60 apt-get -y autoremove --purge || exit 1 retrycmd_if_failure 10 2 60 apt-get -y clean || exit 1 + capture_benchmark "${SCRIPT_NAME}_purge_ubuntu_kernels_and_packages" # Final step, if 18.04 or FIPS, log ua status, detach UA and clean up if [[ "${UBUNTU_RELEASE}" == "18.04" ]] || [[ "${UBUNTU_RELEASE}" == "20.04" ]] || [[ "${ENABLE_FIPS,,}" == "true" ]]; then @@ -41,8 +42,8 @@ if [[ $OS == $UBUNTU_OS_NAME ]]; then ua status detachAndCleanUpUA fi + capture_benchmark "${SCRIPT_NAME}_log_and_detach_ua" fi -capture_benchmark "${SCRIPT_NAME}_log_and_detach_ua" # shellcheck disable=SC2129 echo "kubelet/kubectl downloaded:" >> ${VHD_LOGS_FILEPATH} @@ -52,7 +53,6 @@ ls -ltr /usr/local/bin/* >> ${VHD_LOGS_FILEPATH} ls -ltr /dev/* | grep sgx >> ${VHD_LOGS_FILEPATH} echo -e "=== Installed Packages Begin\n$(listInstalledPackages)\n=== Installed Packages End" >> ${VHD_LOGS_FILEPATH} -capture_benchmark "${SCRIPT_NAME}_list_installed_packages" echo "Disk usage:" >> ${VHD_LOGS_FILEPATH} df -h >> ${VHD_LOGS_FILEPATH} @@ -64,7 +64,6 @@ usage=$(awk -v used=${used_blocks} -v capacity=${MAX_BLOCK_COUNT} 'BEGIN{print ( usage=${usage%.*} [ ${usage} -ge 99 ] && echo "ERROR: root partition on OS device (${os_device}) already passed 99% of the 30GB cap!" && exit 1 [ ${usage} -ge 75 ] && echo "WARNING: root partition on OS device (${os_device}) already passed 75% of the 30GB cap!" -capture_benchmark "${SCRIPT_NAME}_determine_disk_usage" echo -e "=== os-release Begin" >> ${VHD_LOGS_FILEPATH} cat /etc/os-release >> ${VHD_LOGS_FILEPATH} @@ -83,7 +82,7 @@ tee -a ${VHD_LOGS_FILEPATH} < /proc/version echo "Container runtime: ${CONTAINER_RUNTIME}" echo "FIPS enabled: ${ENABLE_FIPS}" } >> ${VHD_LOGS_FILEPATH} -capture_benchmark "${SCRIPT_NAME}_write_logs" +capture_benchmark "${SCRIPT_NAME}_finish_vhd_build_logs" if [[ $(isARM64) != 1 ]]; then # no asc-baseline-1.1.0-268.arm64.deb diff --git a/vhdbuilder/packer/pre-install-dependencies.sh b/vhdbuilder/packer/pre-install-dependencies.sh index 9189a712367..4527a0a1b08 100644 --- a/vhdbuilder/packer/pre-install-dependencies.sh +++ b/vhdbuilder/packer/pre-install-dependencies.sh @@ -33,7 +33,7 @@ if isMarinerOrAzureLinux "$OS"; then fi installJq || echo "WARNING: jq installation failed, VHD Build benchmarks will not be available for this build." -capture_benchmark "${SCRIPT_NAME}_source_packer_files_declare_variables_and_set_mariner_permissions" +capture_benchmark "${SCRIPT_NAME}_source_packer_files_and_declare_variables" copyPackerFiles @@ -49,12 +49,12 @@ systemctlEnableAndStart systemd-journald || exit 1 systemctlEnableAndStart rsyslog || exit 1 systemctlEnableAndStart disk_queue || exit 1 -capture_benchmark "${SCRIPT_NAME}_copy_packer_files" +capture_benchmark "${SCRIPT_NAME}_copy_packer_files_and_enable_logging" mkdir /opt/certs chmod 1666 /opt/certs systemctlEnableAndStart update_certs.path || exit 1 -capture_benchmark "${SCRIPT_NAME}_make_directory_and_update_certs" +capture_benchmark "${SCRIPT_NAME}_make_certs_directory_and_update_certs" systemctlEnableAndStart ci-syslog-watcher.path || exit 1 systemctlEnableAndStart ci-syslog-watcher.service || exit 1 @@ -62,15 +62,13 @@ systemctlEnableAndStart ci-syslog-watcher.service || exit 1 # enable AKS log collector echo -e "\n# Disable WALA log collection because AKS Log Collector is installed.\nLogs.Collect=n" >> /etc/waagent.conf || exit 1 systemctlEnableAndStart aks-log-collector.timer || exit 1 -capture_benchmark "${SCRIPT_NAME}_start_system_logs_and_aks_log_collector" # enable the modified logrotate service and remove the auto-generated default logrotate cron job if present systemctlEnableAndStart logrotate.timer || exit 1 rm -f /etc/cron.daily/logrotate -capture_benchmark "${SCRIPT_NAME}_enable_modified_log_rotate_service" systemctlEnableAndStart sync-container-logs.service || exit 1 -capture_benchmark "${SCRIPT_NAME}_sync_container_logs" +capture_benchmark "${SCRIPT_NAME}_enable_and_configure_logging_services" # enable aks-node-controller.service systemctl enable aks-node-controller.service @@ -107,13 +105,14 @@ else installFIPS fi fi -capture_benchmark "${SCRIPT_NAME}_handle_mariner_and_fips_configurations" +capture_benchmark "${SCRIPT_NAME}_upgrade_distro_and_resolve_fips_requirements" # Handle Azure Linux + CgroupV2 # CgroupV2 is enabled by default in the AzureLinux 3.0 marketplace image if [[ ${OS} == ${MARINER_OS_NAME} ]] && [[ "${ENABLE_CGROUPV2,,}" == "true" ]]; then enableCgroupV2forAzureLinux fi +capture_benchmark "${SCRIPT_NAME}_enable_cgroupv2_for_azurelinux" if [[ ${UBUNTU_RELEASE//./} -ge 2204 && "${ENABLE_FIPS,,}" != "true" ]]; then LTS_KERNEL="linux-image-azure-lts-${UBUNTU_RELEASE}" @@ -141,7 +140,7 @@ if [[ ${UBUNTU_RELEASE//./} -ge 2204 && "${ENABLE_FIPS,,}" != "true" ]]; then update-grub fi -capture_benchmark "${SCRIPT_NAME}_handle_azureLinux_and_cgroupV2" +capture_benchmark "${SCRIPT_NAME}_purge_ubuntu_kernel_if_2204" echo "pre-install-dependencies step finished successfully" capture_benchmark "${SCRIPT_NAME}_overall" true process_benchmarks \ No newline at end of file From f97093fe2d2ea57cd910794f0b69f9a16ba556cf Mon Sep 17 00:00:00 2001 From: Tim Wright Date: Wed, 26 Feb 2025 12:58:39 +1300 Subject: [PATCH 2/3] chore: add missing trigger (#5917) --- .pipelines/.vsts-vhd-builder-pr-windows.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.pipelines/.vsts-vhd-builder-pr-windows.yaml b/.pipelines/.vsts-vhd-builder-pr-windows.yaml index b2ebf1b8b1d..0a348ffa91b 100644 --- a/.pipelines/.vsts-vhd-builder-pr-windows.yaml +++ b/.pipelines/.vsts-vhd-builder-pr-windows.yaml @@ -27,6 +27,7 @@ pr: - vhdbuilder/packer/init-variables.sh - vhdbuilder/packer/windows/ - parts/common/components.json + - parts/windows exclude: - vhdbuilder/release-notes - /**/*.md From 875c0b042c5f6870f60a17a5c62ff0de59f2a031 Mon Sep 17 00:00:00 2001 From: Tim Wright Date: Wed, 26 Feb 2025 12:59:46 +1300 Subject: [PATCH 3/3] fix: use correct variable name (#5911) --- vhdbuilder/packer/windows/configure-windows-vhd.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vhdbuilder/packer/windows/configure-windows-vhd.ps1 b/vhdbuilder/packer/windows/configure-windows-vhd.ps1 index e27499ad401..79af4ff59cc 100644 --- a/vhdbuilder/packer/windows/configure-windows-vhd.ps1 +++ b/vhdbuilder/packer/windows/configure-windows-vhd.ps1 @@ -657,7 +657,7 @@ function Update-Registry if (![string]::IsNullOrEmpty($currentValue)) { Write-Log "The current value of $keyName is $currentValue" - $keyValue = ([int]$currentValue.$keyName -bor $hnsControlFlag) + $keyValue = ([int]$currentValue.$keyName -bor $keyValue) } Enable-WindowsFixInPath -Path $keyPath -Name $keyName -Value $keyValue -Type $keyType }