1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
: Copyright (c) 2017 Enea AB and others.
:
: All rights reserved. This program and the accompanying materials
: are made available under the terms of the Apache License, Version 2.0
: which accompanies this distribution, and is available at
: http://www.apache.org/licenses/LICENSE-2.0
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Date: Sun, 5 Nov 2017 21:02:17 +0100
Subject: [PATCH] baremetal: linux-image-generic-hwe-16.04-edge
The Salt way to pin the kernel version is via its reclass model, by
defining system.kernel.version. However, this only works with
explicit kernel package names and not with meta package names
(e.g. linux-image-4.13.0-9916-generic is expected instead of
linux-image-generic-hwe-16.04-edge, which would break the
`linux_kernel_old_absent` state).
For now, let's explicitly call `pkg.install` for the kernel and
headers packages, using the meta package name to ensure automatic
fallback to Ubuntu packages if Armband repos are missing,
respectively to automatically pick up new kernel package names
in case of meta + kernel packages bump later.
JIRA: ARMBAND-280
JIRA: ARMBAND-330
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
---
mcp/config/states/virtual_control_plane | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane
index 585a808..373281d 100755
--- a/mcp/config/states/virtual_control_plane
+++ b/mcp/config/states/virtual_control_plane
@@ -27,9 +27,12 @@ salt -C 'kvm* or cmp*' file.replace $debian_ip_source \
salt -C 'kvm*' pkg.install bridge-utils
salt -C '*' state.apply opnfv.adduser
salt -C 'kvm*' state.apply linux.network
-salt -C 'cmp*' state.apply linux.system
+salt -C 'kvm* or cmp*' state.apply linux.system
salt -C 'cmp*' state.apply linux.network || true
salt -C 'kvm*' state.apply armband.bootstrap_script_arm64 || true
+# NOTE(armband): Should be later moved to reclass as system.kernel.version
+salt -C 'kvm* or cmp*' pkg.install \
+ linux-image-generic-hwe-16.04-edge,linux-headers-generic-hwe-16.04-edge
salt -C 'kvm* or cmp*' system.reboot
wait_for 90 "! salt -C 'kvm* or cmp*' test.ping | " \
"tee /dev/stderr | grep -Fq 'Not connected'"
@@ -69,3 +72,10 @@ wait_for 10 "! salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply linux,ntp |
wait_for 10 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' ssh.set_auth_key ${SUDO_USER} \
$(awk 'NR==1{print $2}' "$(eval echo "~${SUDO_USER}/.ssh/authorized_keys")")"
+
+# NOTE(armband): Should be later moved to reclass as system.kernel.version
+salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' pkg.install \
+ linux-image-generic-hwe-16.04-edge,linux-headers-generic-hwe-16.04-edge
+salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' system.reboot
+wait_for 90 "! salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' test.ping | " \
+ "tee /dev/stderr | grep -Fq 'Not connected'"
|