Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
0e0e742
fix
zachary-bailey Sep 3, 2026
c2a5a26
fix
zachary-bailey Sep 3, 2026
8062e4b
Merge branch 'main' into zb/onboard2604CVM
zachary-bailey Sep 8, 2026
d376387
Merge branch 'main' into zb/onboard2604CVM
zachary-bailey Sep 9, 2026
5ee6476
Merge branch 'main' into zb/onboard2604CVM
zachary-bailey Sep 11, 2026
2e171fe
fix
zachary-bailey Sep 11, 2026
8bb8798
fix
zachary-bailey Sep 14, 2026
225a208
Merge branch 'main' into zb/onboard2604CVM
zachary-bailey Sep 14, 2026
da0ab43
fix
zachary-bailey Sep 14, 2026
2e5faf9
fix
zachary-bailey Sep 14, 2026
91fd820
fix
zachary-bailey Sep 14, 2026
90558a6
fix
zachary-bailey Sep 14, 2026
6a84560
fix
zachary-bailey Sep 14, 2026
794e3f5
Merge branch 'main' into zb/onboard2604CVM
zachary-bailey Sep 15, 2026
67c56cf
fix
zachary-bailey Sep 15, 2026
9a298a4
fix
zachary-bailey Sep 15, 2026
14dae51
fox
zachary-bailey Sep 15, 2026
7a7f2f8
fix
zachary-bailey Sep 15, 2026
56d56d8
fix
zachary-bailey Sep 15, 2026
19c0701
fix
zachary-bailey Sep 15, 2026
ccbb668
fix
zachary-bailey Sep 15, 2026
2b743e8
fix
zachary-bailey Sep 15, 2026
6155e9b
fix
zachary-bailey Sep 15, 2026
5b84138
fix
zachary-bailey Sep 15, 2026
fdccef1
fix
zachary-bailey Sep 16, 2026
5ca4363
fix
zachary-bailey Sep 16, 2026
f66466f
fix
zachary-bailey Sep 16, 2026
f3dc86b
Merge branch 'main' into zb/onboard2604CVM
zachary-bailey Sep 16, 2026
8444401
fix
zachary-bailey Sep 16, 2026
dd4fc0e
fix
zachary-bailey Sep 16, 2026
6ebef66
fix
zachary-bailey Sep 16, 2026
4d34211
fix
zachary-bailey Sep 16, 2026
2ee58b9
fix
zachary-bailey Sep 16, 2026
c28f7f3
Merge branch 'main' into zb/onboard2604CVM
zachary-bailey Sep 16, 2026
7a46e4c
fix
zachary-bailey Sep 16, 2026
b4a9c99
fix
zachary-bailey Sep 16, 2026
59d8665
Merge branch 'main' into zb/onboard2604CVM
zachary-bailey Sep 16, 2026
f8b6d9d
fix
zachary-bailey Sep 16, 2026
6cc30f4
fix
zachary-bailey Sep 16, 2026
fc88eda
fix
zachary-bailey Sep 17, 2026
46490c7
Merge branch 'main' into zb/onboard2604CVM
zachary-bailey Sep 17, 2026
40cccee
fix
zachary-bailey Sep 17, 2026
9b0a880
fix
zachary-bailey Sep 17, 2026
f681ef5
fix
zachary-bailey Sep 17, 2026
9888e73
Merge branch 'main' into zb/onboard2604CVM
zachary-bailey Sep 17, 2026
6150ab0
fix
zachary-bailey Sep 17, 2026
e0a8650
fix
zachary-bailey Sep 17, 2026
ca6cbd5
fix
zachary-bailey Sep 17, 2026
7e1a57d
fix
zachary-bailey Sep 17, 2026
7b85cf9
fix
zachary-bailey Sep 17, 2026
bfd1e7c
Merge branch 'main' into zb/onboard2604CVM
zachary-bailey Sep 17, 2026
dc51d9f
fix
zachary-bailey Sep 17, 2026
ab2aced
Merge branch 'main' into zb/onboard2604CVM
zachary-bailey Sep 18, 2026
02360bd
fix
zachary-bailey Sep 18, 2026
f35862c
fix
zachary-bailey Sep 18, 2026
70c6976
fix
zachary-bailey Sep 18, 2026
556d47a
fix
zachary-bailey Sep 18, 2026
3c54d70
fix
zachary-bailey Sep 18, 2026
2c041cc
fix
zachary-bailey Sep 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .pipelines/.vsts-vhd-builder-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,10 @@ parameters:
displayName: Build 2604 Minimal ARM64 Gen2 Containerd
type: boolean
default: true
- name: build2604minimalcvmgen2containerd
displayName: Build 2604 Minimal CVM Gen2 Containerd
type: boolean
default: true
- name: buildacltlgen2
displayName: Build Azure Container Linux TL Gen2
type: boolean
Expand Down Expand Up @@ -811,6 +815,30 @@ stages:
useOverrides: ${{ parameters.useOverrides }}
overrideBranch: ${{ parameters.overrideBranch }}
artifactName: 2604-minimal-arm64-gen2-containerd
- job: build2604minimalcvmgen2containerd
Comment thread
zachary-bailey marked this conversation as resolved.
condition: eq('${{ parameters.build2604minimalcvmgen2containerd }}', true)
dependsOn: [ ]
timeoutInMinutes: 360
steps:
- bash: |
echo '##vso[task.setvariable variable=OS_SKU]Ubuntu'
echo '##vso[task.setvariable variable=OS_VERSION]26.04'
echo '##vso[task.setvariable variable=IMG_PUBLISHER]Canonical'
echo '##vso[task.setvariable variable=IMG_OFFER]ubuntu-26_04-lts'
echo '##vso[task.setvariable variable=IMG_SKU]server-cvm'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_DC16ads_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]minimal,cvm'
echo '##vso[task.setvariable variable=ARCHITECTURE]X86_64'
echo '##vso[task.setvariable variable=ENABLE_FIPS]False'
echo '##vso[task.setvariable variable=ENABLE_TRUSTED_LAUNCH]False'
displayName: Setup Build Variables
- template: ./templates/.builder-release-template.yaml
parameters:
useOverrides: ${{ parameters.useOverrides }}
overrideBranch: ${{ parameters.overrideBranch }}
artifactName: 2604-minimal-cvm-gen2-containerd
- job: buildacltlgen2
condition: eq('${{ parameters.buildacltlgen2 }}', true)
dependsOn: [ ]
Expand Down
1 change: 1 addition & 0 deletions .pipelines/scripts/verify_shell.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ filesToCheck=$(find . -type f -name "*.sh" -not -path './pkg/agent/testdata/*' -
# Known bash-only scripts that intentionally use bash specific syntax.
BASH_ONLY_LIST=$(cat <<'EOF'
./vhdbuilder/packer/install-ig.sh
./vhdbuilder/packer/ubuntu-2604-cvm/trim-2604-cvm-packages.sh
./parts/linux/cloud-init/artifacts/aks-localdns-hosts-setup.sh
EOF
)
Expand Down
1 change: 1 addition & 0 deletions pkg/agent/bakerapi_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -377,6 +377,7 @@ var _ = Describe("AgentBaker API implementation tests", func() {
datamodel.AKSUbuntuArm64Containerd2404Gen2,
datamodel.AKSUbuntuContainerd2404,
datamodel.AKSUbuntuContainerd2404TLGen2,
datamodel.AKSUbuntuMinimalContainerd2604CVMGen2,
}

marinerDistros = []datamodel.Distro{
Expand Down
11 changes: 11 additions & 0 deletions pkg/agent/datamodel/sig_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ var AvailableUbuntu2404Distros = []Distro{
var AvailableUbuntu2604Distros = []Distro{
AKSUbuntuMinimalContainerd2604Gen2,
AKSUbuntuMinimalArm64Containerd2604Gen2,
AKSUbuntuMinimalContainerd2604CVMGen2,
}

//nolint:gochecknoglobals
Expand Down Expand Up @@ -175,6 +176,7 @@ var AvailableContainerdDistros = []Distro{
AKSAzureLinuxV3OSGuardGen2FIPSTL,
AKSUbuntuMinimalContainerd2604Gen2,
AKSUbuntuMinimalArm64Containerd2604Gen2,
AKSUbuntuMinimalContainerd2604CVMGen2,
}

//nolint:gochecknoglobals
Expand All @@ -196,6 +198,7 @@ var AvailableGen2Distros = []Distro{
AKSUbuntuContainerd2404TLGen2,
AKSUbuntuMinimalContainerd2604Gen2,
AKSUbuntuMinimalArm64Containerd2604Gen2,
AKSUbuntuMinimalContainerd2604CVMGen2,
AKSFlatcarGen2,
AKSFlatcarArm64Gen2,
AKSACLGen2TL,
Expand Down Expand Up @@ -612,6 +615,13 @@ var (
Version: LinuxSIGImageVersion,
}

SIGUbuntuMinimalContainerd2604CVMGen2ImageConfigTemplate = SigImageConfigTemplate{
ResourceGroup: AKSUbuntuResourceGroup,
Gallery: AKSUbuntuGalleryName,
Definition: "2604minimalgen2CVMcontainerd",
Version: LinuxSIGImageVersion,
}

SIGCBLMarinerV1ImageConfigTemplate = SigImageConfigTemplate{
ResourceGroup: AKSCBLMarinerResourceGroup,
Gallery: AKSCBLMarinerGalleryName,
Expand Down Expand Up @@ -952,6 +962,7 @@ func getSigUbuntuImageConfigMapWithOpts(opts ...SigImageConfigOpt) map[Distro]Si
AKSUbuntuContainerd2404TLGen2: SIGUbuntuContainerd2404TLGen2ImageConfigTemplate.WithOptions(opts...),
AKSUbuntuMinimalContainerd2604Gen2: SIGUbuntuMinimalContainerd2604Gen2ImageConfigTemplate.WithOptions(opts...),
AKSUbuntuMinimalArm64Containerd2604Gen2: SIGUbuntuMinimalArm64Containerd2604Gen2ImageConfigTemplate.WithOptions(opts...),
AKSUbuntuMinimalContainerd2604CVMGen2: SIGUbuntuMinimalContainerd2604CVMGen2ImageConfigTemplate.WithOptions(opts...),
}
}

Expand Down
9 changes: 8 additions & 1 deletion pkg/agent/datamodel/sig_config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ var _ = Describe("GetMaintainedLinuxSIGImageConfigMap", func() {
AKSUbuntuContainerd2404TLGen2: SIGUbuntuContainerd2404TLGen2ImageConfigTemplate.WithOptions(),
AKSUbuntuMinimalContainerd2604Gen2: SIGUbuntuMinimalContainerd2604Gen2ImageConfigTemplate.WithOptions(),
AKSUbuntuMinimalArm64Containerd2604Gen2: SIGUbuntuMinimalArm64Containerd2604Gen2ImageConfigTemplate.WithOptions(),
AKSUbuntuMinimalContainerd2604CVMGen2: SIGUbuntuMinimalContainerd2604CVMGen2ImageConfigTemplate.WithOptions(),
AKSAzureLinuxV3: SIGAzureLinuxV3Gen1ImageConfigTemplate.WithOptions(),
AKSAzureLinuxV3Gen2: SIGAzureLinuxV3Gen2ImageConfigTemplate.WithOptions(),
AKSAzureLinuxV3FIPS: SIGAzureLinuxV3Gen1FIPSImageConfigTemplate.WithOptions(),
Expand Down Expand Up @@ -95,7 +96,7 @@ var _ = Describe("GetSIGAzureCloudSpecConfig", func() {
Expect(sigConfig.SigTenantID).To(Equal("sometenantid"))
Expect(sigConfig.SubscriptionID).To(Equal("somesubid"))

Expect(len(sigConfig.SigUbuntuImageConfig)).To(Equal(19))
Expect(len(sigConfig.SigUbuntuImageConfig)).To(Equal(20))

Expect(len(sigConfig.SigCBLMarinerImageConfig)).To(Equal(9))

Expand Down Expand Up @@ -407,6 +408,12 @@ var _ = Describe("GetSIGAzureCloudSpecConfig", func() {
Expect(aksUbuntuArm64MinimalContainerd2604Gen2.Definition).To(Equal("2604minimalgen2arm64containerd"))
Expect(aksUbuntuArm64MinimalContainerd2604Gen2.Version).To(Equal(LinuxSIGImageVersion))

aksUbuntu2604MinimalCVMGen2Containerd := sigConfig.SigUbuntuImageConfig[AKSUbuntuMinimalContainerd2604CVMGen2]
Expect(aksUbuntu2604MinimalCVMGen2Containerd.ResourceGroup).To(Equal("resourcegroup"))
Expect(aksUbuntu2604MinimalCVMGen2Containerd.Gallery).To(Equal("aksubuntu"))
Expect(aksUbuntu2604MinimalCVMGen2Containerd.Definition).To(Equal("2604minimalgen2CVMcontainerd"))
Expect(aksUbuntu2604MinimalCVMGen2Containerd.Version).To(Equal(LinuxSIGImageVersion))

aclGen2 := sigConfig.SigAzureLinuxImageConfig[AKSACLGen2TL]
Expect(aclGen2.ResourceGroup).To(Equal("resourcegroup"))
Expect(aclGen2.Gallery).To(Equal("aksazurelinux"))
Expand Down
2 changes: 2 additions & 0 deletions pkg/agent/datamodel/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ const (
AKSUbuntuContainerd2404Gen2 Distro = "aks-ubuntu-containerd-24.04-gen2"
AKSUbuntuMinimalContainerd2604Gen2 Distro = "aks-ubuntu-minimal-containerd-26.04-gen2"
AKSUbuntuMinimalArm64Containerd2604Gen2 Distro = "aks-ubuntu-minimal-arm64-containerd-26.04-gen2"
AKSUbuntuMinimalContainerd2604CVMGen2 Distro = "aks-ubuntu-minimal-containerd-26.04-cvm-gen2"
AKSAzureLinuxV3CVMGen2 Distro = "aks-azurelinux-v3-cvm-gen2"
AKSUbuntuContainerd2404TLGen2 Distro = "aks-ubuntu-containerd-24.04-tl-gen2"
AKSFlatcarGen2 Distro = "aks-flatcar-gen2"
Expand Down Expand Up @@ -287,6 +288,7 @@ var AKSDistrosAvailableOnVHD = []Distro{
AKSUbuntuContainerd2404TLGen2,
AKSUbuntuMinimalContainerd2604Gen2,
AKSUbuntuMinimalArm64Containerd2604Gen2,
AKSUbuntuMinimalContainerd2604CVMGen2,
AKSFlatcarGen2,
AKSFlatcarArm64Gen2,
AKSACLGen2TL,
Expand Down
7 changes: 7 additions & 0 deletions pkg/agent/datamodel/types_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1050,6 +1050,13 @@ func TestAgentPoolProfileIs2604VHDDistro(t *testing.T) {
},
expected: true,
},
{
name: "26.04 minimal CVM Gen2 VHD distro",
ap: AgentPoolProfile{
Distro: AKSUbuntuMinimalContainerd2604CVMGen2,
},
expected: true,
},
{
name: "24.04 VHD distro is not a 2604 distro",
ap: AgentPoolProfile{
Expand Down
172 changes: 172 additions & 0 deletions spec/vhdbuilder/packer/trim_2604_cvm_packages_spec.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
#!/bin/bash

# shellcheck disable=SC1090,SC2329

Describe 'trim-2604-cvm-packages'
TRIM_SCRIPT="./vhdbuilder/packer/ubuntu-2604-cvm/trim-2604-cvm-packages.sh"

setup_trim() {
TEST_DIR="$(mktemp -d)"
source "${TRIM_SCRIPT}"
MARKED_FOR_REMOVAL_PACKAGES_FILE="${TEST_DIR}/marked-for-removal-packages.txt"
REQUIRED_PACKAGES_FILE="${TEST_DIR}/required-packages.txt"
FINAL_REQUIRED_PACKAGES_FILE="${TEST_DIR}/final-required-packages.txt"
FINAL_FORBIDDEN_PACKAGES_FILE="${TEST_DIR}/final-forbidden-packages.txt"
}

cleanup_trim() {
rm -rf "${TEST_DIR}"
}

BeforeEach 'setup_trim'
AfterEach 'cleanup_trim'

It 'filters comments and absent packages before purging'
printf '%s\n' '# comment' remove-me absent-package '' > "${MARKED_FOR_REMOVAL_PACKAGES_FILE}"
printf '%s\n' required-package > "${REQUIRED_PACKAGES_FILE}"

dpkg-query() {
for argument in "$@"; do
package="${argument}"
done
case "${package}" in
remove-me|required-package)
echo installed
;;
*)
return 1
;;
esac
}
apt-get() { echo "apt-get $*"; }
apt-mark() { echo "apt-mark $*"; }

When call main
The status should be success
The output should include "Purging 1 installed server-cvm packages marked for removal"
The output should include "apt-get -o DPkg::Lock::Timeout=300 purge -y --no-auto-remove --allow-remove-essential remove-me"
The output should not include "allow-remove-essential absent-package"
The output should include "apt-mark manual cron curl gpg jq logrotate rsyslog sudo xfsprogs"
The output should not include "apt-mark manual cron curl gpg jq logrotate rsyslog sudo xfsprogs tcpdump"
End

It 'marks installed tcpdump runtime packages as manual'
printf '%s\n' remove-me > "${MARKED_FOR_REMOVAL_PACKAGES_FILE}"
printf '%s\n' required-package > "${REQUIRED_PACKAGES_FILE}"

dpkg-query() {
for argument in "$@"; do
package="${argument}"
done
case "${package}" in
remove-me|required-package|libc6|libpcap0.8t64|libssl3t64|systemd|tcpdump)
echo installed
;;
*)
return 1
;;
esac
}
apt-get() { return 0; }
apt-mark() { echo "apt-mark $*"; }

When call main
The status should be success
The output should include "apt-mark manual cron curl gpg jq logrotate rsyslog sudo xfsprogs libc6 libpcap0.8t64 libssl3t64 systemd tcpdump"
End

It 'fails when the removal list is empty'
: > "${MARKED_FOR_REMOVAL_PACKAGES_FILE}"
printf '%s\n' required-package > "${REQUIRED_PACKAGES_FILE}"

When call main
The status should be failure
The error should include "Marked-for-removal package list is missing or empty"
End

It 'fails when a required package is missing after trimming'
printf '%s\n' absent-package > "${MARKED_FOR_REMOVAL_PACKAGES_FILE}"
printf '%s\n' required-package > "${REQUIRED_PACKAGES_FILE}"

dpkg-query() { return 1; }
apt-mark() { return 0; }

When call main
The status should be failure
The output should include "No installed server-cvm packages marked for removal were found"
The error should include "Required CVM package pattern is not installed: required-package"
End

It 'supports final verification without running another purge'
printf '%s\n' remove-me > "${MARKED_FOR_REMOVAL_PACKAGES_FILE}"
printf '%s\n' initial-required-package > "${REQUIRED_PACKAGES_FILE}"
printf '%s\n' final-required-package > "${FINAL_REQUIRED_PACKAGES_FILE}"
printf '%s\n' forbidden-package > "${FINAL_FORBIDDEN_PACKAGES_FILE}"

dpkg-query() {
for argument in "$@"; do
package="${argument}"
done
[ "${package}" = "final-required-package" ] && echo installed
}
apt-get() {
echo "unexpected apt-get"
return 1
}
apt-mark() {
echo "unexpected apt-mark"
return 1
}

When call main --verify-only
The status should be success
The output should not include "unexpected"
End

It 'fails final verification when a forbidden vanilla package is installed'
printf '%s\n' final-required-package > "${FINAL_REQUIRED_PACKAGES_FILE}"
printf '%s\n' vanilla-package > "${FINAL_FORBIDDEN_PACKAGES_FILE}"

dpkg-query() {
for argument in "$@"; do
package="${argument}"
done
case "${package}" in
final-required-package|vanilla-package)
echo installed
;;
esac
}

When call main --verify-only
The status should be failure
The error should include "Forbidden CVM package pattern is installed: vanilla-package"
End

It 'fails final verification when the required package list is empty'
: > "${FINAL_REQUIRED_PACKAGES_FILE}"

When call main --verify-only
The status should be failure
The error should include "Required package list is missing or empty"
End

It 'fails final verification when the forbidden package list is empty'
printf '%s\n' final-required-package > "${FINAL_REQUIRED_PACKAGES_FILE}"
: > "${FINAL_FORBIDDEN_PACKAGES_FILE}"

dpkg-query() {
echo installed
}

When call main --verify-only
The status should be failure
The error should include "Forbidden package list is missing or empty"
End

It 'rejects unknown arguments'
When call main --unknown
The status should be failure
The error should include "Unknown argument: --unknown"
End
End
4 changes: 4 additions & 0 deletions vhdbuilder/packer/post-install-dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,10 @@ if [ $OS = $UBUNTU_OS_NAME ]; then
ua status
detachAndCleanUpUA
fi

if [ "${UBUNTU_RELEASE}" = "26.04" ] && isMinimalImage && grep -q "cvm" <<< "$FEATURE_FLAGS"; then
/bin/bash /home/packer/trim-2604-cvm-packages.sh --verify-only || exit 1
fi
capture_benchmark "${SCRIPT_NAME}_log_and_detach_ua"
fi

Expand Down
17 changes: 11 additions & 6 deletions vhdbuilder/packer/pre-install-dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,13 @@ else
apt_get_update || exit $ERR_APT_UPDATE_TIMEOUT
apt_get_dist_upgrade || exit $ERR_APT_DIST_UPGRADE_TIMEOUT

if isUbuntu "$OS" &&
[ "$OS_VERSION" = "26.04" ] &&
isMinimalImage &&
grep -q "cvm" <<< "$FEATURE_FLAGS"; then
/bin/bash /home/packer/trim-2604-cvm-packages.sh
Comment thread
zachary-bailey marked this conversation as resolved.
fi

# shellcheck disable=SC3010
if [[ "${ENABLE_FIPS,,}" == "true" ]]; then
# This is FIPS Install for Ubuntu, it purges non FIPS Kernel and attaches UA FIPS Updates
Expand Down Expand Up @@ -177,13 +184,11 @@ if [[ ${UBUNTU_RELEASE//./} -ge 2204 && "${ENABLE_FIPS,,}" != "true" ]]; then

# Choose kernel packages based on Ubuntu version and architecture
if grep -q "cvm" <<< "$FEATURE_FLAGS"; then
KERNEL_IMAGE="linux-image-azure-fde-lts-${UBUNTU_RELEASE}"
KERNEL_IMAGE="linux-azure-fde-lts-${UBUNTU_RELEASE}"
KERNEL_PACKAGES=(
"linux-image-azure-fde-lts-${UBUNTU_RELEASE}"
"linux-tools-azure-lts-${UBUNTU_RELEASE}"
"linux-cloud-tools-azure-lts-${UBUNTU_RELEASE}"
"linux-headers-azure-lts-${UBUNTU_RELEASE}"
"${KERNEL_IMAGE}"
)
Comment thread
zachary-bailey marked this conversation as resolved.
Comment on lines 186 to 190

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zachary (@zachary-bailey) we confirmed this new logic works fine for other Ubuntu releases right?

MODULES_EXTRA_PKG="linux-modules-extra-azure-fde-lts-${UBUNTU_RELEASE}"
echo "Installing fde LTS kernel for CVM Ubuntu ${UBUNTU_RELEASE}"
else
# Use LTS kernel for other versions
Expand All @@ -194,11 +199,11 @@ if [[ ${UBUNTU_RELEASE//./} -ge 2204 && "${ENABLE_FIPS,,}" != "true" ]]; then
"linux-cloud-tools-azure-lts-${UBUNTU_RELEASE}"
"linux-headers-azure-lts-${UBUNTU_RELEASE}"
)
MODULES_EXTRA_PKG="linux-modules-extra-azure-lts-${UBUNTU_RELEASE}"
echo "Installing LTS kernel for Ubuntu ${UBUNTU_RELEASE}"
fi

# Add modules-extra only when the package exists in the current apt repo
MODULES_EXTRA_PKG="linux-modules-extra-azure-lts-${UBUNTU_RELEASE}"
if apt-cache show "${MODULES_EXTRA_PKG}" &>/dev/null; then
KERNEL_PACKAGES+=("${MODULES_EXTRA_PKG}")
else
Expand Down
Loading
Loading