
Image changes: * base image ubuntu:18.04 * MAAS version 2.8.6-8602-g.07cdffcaa-0ubuntu1~18.04.1 from ppa/2.8 * default contents of /var/lib/maas are archived in /opt/maas * updated patches: - 2.3_bios_grub_partition.patch, changed in maas [0] - 2.3_partitiontable_does_not_exist.patch, changed in maas [1] [2] - 2.3_secure_headers.patch, updated for twisted 17.9.0 [3] * removed patches: - 2.3_bios_grub_preseed.patch, changed in maas, now N/A [0] - 2.3_hostheader.patch, fixed in maas [4] - 2.3_maas_enlist.patch, fixed in maas [5] - 2.3_mac_address.patch, fixed in maas [6] * new patches: - 2.8_maas_ipmi_autodetect_tool.patch, enlistment reliability * reformatted patches due to blackening change [1]: - 2.3_configure_ipmi_user.patch - 2.3_ipmi_error.patch - 2.3_kernel_package.patch, custom req to specify kernel package - 2.3_nic_filter.patch, custom req to ignore cali* interfaces - 2.3_region_secret_rotate.patch - 2.3_route.patch Chart changes: * maas-region podport is 5240 * maas config option http_boot is no longer configurable [7] * start script restores some default files into /var/lib/maas * register-rack-controller script removes old files in /etc/maas * enlist userdata now matches commissioning/curtin userdata [8] * force_gpt option is removed [9], as GPT is now the default * update to configure remote_syslog in import resources job [10] * enlist_commissioning is disabled for backwards compatibility [11] 0:d8e234eb09
1:db30bb39fa
2:665feb7575
3: https://github.com/twisted/twisted/blob/twisted-17.9.0/src/twisted/web/server.py 4:573da69729
5:d390a1da6a
6:34631c2fe5
7:0e94c26a53
8:22641cffcc
9:97c25a0486
10:d67c359c7b
11:51b9712c20
Change-Id: I0685d76cf083ff5aa33c8db552059721289d5c53
33 lines
1.4 KiB
Diff
33 lines
1.4 KiB
Diff
diff --git a/src/maasserver/preseed.py b/src/maasserver/preseed.py
|
|
index 36c656775..5da8f0312 100644
|
|
--- a/src/maasserver/preseed.py
|
|
+++ b/src/maasserver/preseed.py
|
|
@@ -245,7 +245,27 @@ def compose_curtin_kernel_preseed(node):
|
|
The BootResourceFile table contains a mapping between hwe kernels and
|
|
Ubuntu package names. If this mapping is missing we fall back to letting
|
|
Curtin figure out which kernel should be installed"""
|
|
+
|
|
+ # previous logic to retrieve kpackage parameter
|
|
kpackage = BootResource.objects.get_kpackage_for_node(node)
|
|
+
|
|
+ # determine if this node has kernel parameters applied by drydock
|
|
+ # and override kpackage if we discover the right properties
|
|
+ kernel_opt_tag = "%s_kp" % (node.hostname)
|
|
+ if kernel_opt_tag in node.tag_names():
|
|
+
|
|
+ # the tag exists, retrieve it
|
|
+ kernel_opts = node.tags.get(name=kernel_opt_tag).kernel_opts
|
|
+
|
|
+ # parse the string and find our package param value
|
|
+ # e.g. kernel_package=linux-image-4.15.0-34-generic
|
|
+ kparams = kernel_opts.split()
|
|
+ kdict = dict(
|
|
+ kparam.split("=", 1) for kparam in kparams if "=" in kparam
|
|
+ )
|
|
+ if "kernel_package" in kdict:
|
|
+ kpackage = kdict["kernel_package"]
|
|
+
|
|
if kpackage:
|
|
kernel_config = {"kernel": {"package": kpackage, "mapping": {}}}
|
|
return [yaml.safe_dump(kernel_config)]
|