@@ -53,6 +53,11 @@ func init() {
53
53
// (see scripts/ci-automation/vendor-testing/qemu_update.sh)
54
54
return kola .UpdatePayloadFile == ""
55
55
},
56
+ // Skip AVC checks, we will do our own only on the
57
+ // last boot logs, as the older logs may come from an
58
+ // old version of Flatcar that still has some AVC
59
+ // messages.
60
+ Flags : []register.Flag {register .NoSELinuxAVCChecks },
56
61
})
57
62
register .Register (& register.Test {
58
63
Name : "cl.update.docker-btrfs-compat" ,
@@ -71,6 +76,11 @@ func init() {
71
76
SkipFunc : func (version semver.Version , channel , arch , platform string ) bool {
72
77
return kola .UpdatePayloadFile == ""
73
78
},
79
+ // Skip AVC checks, we will do our own only on the
80
+ // last boot logs, as the older logs may come from an
81
+ // old version of Flatcar that still has some AVC
82
+ // messages.
83
+ Flags : []register.Flag {register .NoSELinuxAVCChecks },
74
84
Distros : []string {"cl" },
75
85
})
76
86
register .Register (& register.Test {
@@ -118,6 +128,11 @@ systemd:
118
128
- name: chronyd.service
119
129
mask: true
120
130
` ),
131
+ // Skip AVC checks, we will do our own only on the
132
+ // last boot logs, as the older logs may come from an
133
+ // old version of Flatcar that still has some AVC
134
+ // messages.
135
+ Flags : []register.Flag {register .NoSELinuxAVCChecks },
121
136
})
122
137
register .Register (& register.Test {
123
138
Name : "cl.sysext.boot.old" ,
@@ -164,6 +179,32 @@ func Serve() error {
164
179
return omahawrapper .Serve ()
165
180
}
166
181
182
+ func checkNoAVCMessages (c cluster.TestCluster , m platform.Machine ) {
183
+ version := c .MustSSH (m , `set -euo pipefail; grep -m 1 "^VERSION=" /usr/lib/os-release | cut -d = -f 2` )
184
+ if len (version ) == 0 {
185
+ c .Fatalf ("got an empty version from os-release" )
186
+ }
187
+
188
+ sv , err := semver .NewVersion (string (version ))
189
+ if err != nil {
190
+ c .Fatalf ("failed to parse os-release version: %v" , err )
191
+ }
192
+
193
+ if sv .LessThan (semver.Version {Major : kola .AVCChecksMajorVersion }) {
194
+ // skip AVC checks altogether - too old Flatcar version
195
+ return
196
+ }
197
+
198
+ // end with "true" to return 0 in case grep selects no lines and returns 1
199
+ out , err := c .SSH (m , `journalctl -b | grep -ie 'avc:[[:space:]]*denied'; true` )
200
+ if err != nil {
201
+ c .Fatalf ("failed to get AVC messages from last boot in journal from machine %s: %v" , m .ID (), err )
202
+ }
203
+ if len (out ) > 0 {
204
+ c .Fatalf ("found AVC messages in last boot logs on machine %s" , m .ID ())
205
+ }
206
+ }
207
+
167
208
func payloadPrepareMachine (conf * conf.UserData , c cluster.TestCluster ) (string , platform.Machine ) {
168
209
addr := configureOmahaServer (c , c .Machines ()[0 ])
169
210
@@ -205,6 +246,7 @@ func payloadPerformUpdate(addr string, m platform.Machine, c cluster.TestCluster
205
246
func payload (c cluster.TestCluster ) {
206
247
addr , m := payloadPrepareMachine (nil , c )
207
248
payloadPerformUpdate (addr , m , c )
249
+ checkNoAVCMessages (c , m )
208
250
}
209
251
210
252
func btrfs_compat (c cluster.TestCluster ) {
@@ -252,6 +294,7 @@ systemd:
252
294
253
295
c .MustSSH (m , `docker image ls | grep alpine || { echo "ERROR: Container image 'alpine' disappeared after update"; docker image ls; exit 1; } ` )
254
296
c .MustSSH (m , `docker ps --all | grep docker_btrfs_driver_test || { echo "ERROR: Container 'docker_btrfs_driver_test' disappeared after update"; docker ps --all; exit 1; } ` )
297
+ checkNoAVCMessages (c , m )
255
298
}
256
299
257
300
func configureOmahaServer (c cluster.TestCluster , srv platform.Machine ) string {
@@ -391,6 +434,9 @@ func oemPayload(c cluster.TestCluster) {
391
434
arch := strings .SplitN (kola .QEMUOptions .Board , "-" , 2 )[0 ]
392
435
_ = c .MustSSH (m , `curl -fsSLO --retry-delay 1 --retry 60 --retry-connrefused --retry-max-time 60 --connect-timeout 20 https://bincache.flatcar-linux.net/images/` + arch + `/` + version + `/flatcar_test_update-oem-azure.gz` )
393
436
_ = c .MustSSH (m , `sudo flatcar-update --to-version ` + version + ` --to-payload /updates/update.gz --extension ./flatcar_test_update-oem-azure.gz --disable-afterwards --force-dev-key` )
437
+
438
+ checkNoAVCMessages (c , m )
439
+
394
440
c .Logf ("Rebooting test machine after flatcar-update run (2nd reboot)" )
395
441
if err := m .Reboot (); err != nil {
396
442
c .Fatalf ("reboot failed: %v" , err )
@@ -400,6 +446,7 @@ func oemPayload(c cluster.TestCluster) {
400
446
_ = c .MustSSH (m , `test ! -e /oem/python/shouldbedeleted && test ! -e /etc/systemd/system/waagent.service` )
401
447
_ = c .MustSSH (m , `test -e /oem/sysext/active-oem-azure` )
402
448
_ = c .MustSSH (m , `systemd-sysext status --json=pretty | jq --raw-output '.[] | select(.hierarchy == "/usr") | .extensions[]' | grep -q oem-azure` )
449
+ checkNoAVCMessages (c , m )
403
450
}
404
451
405
452
func sysextBootLogicOld (c cluster.TestCluster ) {
0 commit comments