aboutsummaryrefslogtreecommitdiff
diff options
from:
to:
context:
space:
mode:
authorGravatar Jeremy Cline <jeremycline@microsoft.com> 2024-02-22 16:16:31 -0500
committerGravatar ngompa <ngompa13@gmail.com> 2024-02-23 00:31:35 +0000
commit83a43059d3408d9ef350a3215f2b33a35d778ec7 (patch)
tree9e3a039f50cbd5b7c7a77426dc1b9773c94c2fab
parentd9584ccd70c4a1292f240cc5487c5cd17ca94de9 (diff)
downloadkiwi-descriptions-83a43059d3408d9ef350a3215f2b33a35d778ec7.tar.gz
kiwi-descriptions-83a43059d3408d9ef350a3215f2b33a35d778ec7.zip
azure: support accelerated networking feature
Azure provides an optional "Accelerated Networking" feature. Enabling this feature when creating a VM enables SR-IOV and provides the guest with a virtual function. Supporting this requires two changes. Firstly, the kernel-modules package is required as it contains the Mellanox drivers required for the VF provided to the guest. Secondly, the interface needs to be ignored by NetworkManager or it'll try and fail to bring up the device and the VM will be unreachable except by serial console. If this is observed, it's likely new hardware has been deployed and additional drivers need to be added to the NetworkManager config. See https://learn.microsoft.com/en-us/azure/virtual-network/accelerated-networking-overview for details.
-rwxr-xr-xconfig.sh9
-rw-r--r--teams/cloud/cloud.xml1
2 files changed, 10 insertions, 0 deletions
diff --git a/config.sh b/config.sh
index 23a7ad2..f4e6a70 100755
--- a/config.sh
+++ b/config.sh
@@ -118,6 +118,15 @@ cat >> /etc/chrony.conf << EOF
refclock PHC /dev/ptp_hyperv poll 3 dpoll -2 offset 0
EOF
+# Support Azure's accelerated networking feature; without this the network fails
+# to come up. It may need adjustments for additional drivers in the future.
+cat > /etc/NetworkManager/conf.d/99-azure-unmanaged-devices.conf << EOF
+# Ignore SR-IOV interface on Azure, since it's transparently bonded
+# to the synthetic interface
+[keyfile]
+unmanaged-devices=driver:mlx4_core;driver:mlx5_core
+EOF
+
# Enable the Azure Linux Agent service
systemctl enable waagent.service
fi
diff --git a/teams/cloud/cloud.xml b/teams/cloud/cloud.xml
index 996f30c..ef646c4 100644
--- a/teams/cloud/cloud.xml
+++ b/teams/cloud/cloud.xml
@@ -132,6 +132,7 @@
</packages>
<packages type="image" patternType="plusRecommended" profiles="Cloud-Base-Azure">
<package name="WALinuxAgent"/>
+ <package name="kernel-modules"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="Cloud-Base-GCE">
<package name="google-compute-engine-guest-configs"/>